MCPcopy Index your code
hub / github.com/diffgram/diffgram / register_user

Function register_user

shared/tests/test_utils/data_mocking.py:142–219  ·  view source on GitHub ↗

:param user_data: Example user_data={ 'username': 'test_user', 'email': 'test@test.com', 'password': 'diffgram123', 'project_string_id': 'myproject' } :return:

(user_data: dict, session)

Source from the content-addressed store, hash-verified

140
141
142def register_user(user_data: dict, session):
143 """
144
145 :param user_data:
146 Example
147 user_data={
148 'username': 'test_user',
149 'email': 'test@test.com',
150 'password': 'diffgram123',
151 'project_string_id': 'myproject'
152
153 }
154 :return:
155 """
156 # User registration
157 password_hash = hashing_functions.make_password_hash(
158 user_data['email'],
159 user_data['password'])
160
161 # TODO could insert logic here to attach a user to a project based on say the sigup code
162 # ie signup_code.something?
163
164 username = user_data['username']
165 user_email = user_data['email']
166
167 new_user = User(
168 email = user_email,
169 password_hash = password_hash,
170 username = username,
171 api_enabled_builder = True,
172 api_enabled_trainer = True,
173 security_email_verified = True,
174 last_builder_or_trainer_mode = 'builder',
175 member_id = user_data.get('member_id'),
176 permissions_general = {'general': ['normal_user']}
177
178 )
179 member = register_member(new_user, session = session)
180 new_user.permissions_projects = {
181 user_data.get('project_string_id'): user_data.get('project_roles', ['admin'])
182 }
183 project = Project.get_by_string_id(session = session, project_string_id = user_data.get('project_string_id'))
184 if project and not user_data.get('no_roles'):
185 from shared.database.project_perms import ProjectDefaultRoles
186 project.create_default_roles(session = session)
187 for role_name in user_data.get('project_roles', ['admin']):
188 default_roles_list = [x.value for x in list(ProjectDefaultRoles)]
189 if role_name in default_roles_list:
190 RoleMemberObject.new(
191 session = session,
192 member_id = member.id,
193 object_id = project.id,
194 object_type = ValidObjectTypes.project,
195 default_role_name = ProjectDefaultRoles[role_name]
196 )
197 session.add(new_user)
198
199 if 'project_string_id' in user_data:

Callers 1

Calls 9

UserClass · 0.90
register_memberFunction · 0.85
create_default_rolesMethod · 0.80
new_user_working_dirMethod · 0.80
commitMethod · 0.80
getMethod · 0.45
get_by_string_idMethod · 0.45
newMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected