auth_code is class Auth_API object!! not string
(
session,
new_user,
auth_code)
| 172 | |
| 173 | |
| 174 | def process_project_auth_code( |
| 175 | session, |
| 176 | new_user, |
| 177 | auth_code): |
| 178 | """ |
| 179 | auth_code is class Auth_API object!! not string |
| 180 | """ |
| 181 | |
| 182 | new_user.signup_code = auth_code |
| 183 | |
| 184 | if auth_code.permission_level is not None: |
| 185 | new_user.current_project_string_id = auth_code.project_string_id |
| 186 | |
| 187 | project = Project.get(session, auth_code.project_string_id) |
| 188 | new_user.project_current = project |
| 189 | |
| 190 | new_user.projects.append(project) |
| 191 | |
| 192 | # We default the new user's email to being verified |
| 193 | # Otherwise could be confusing to have to redeem a code twice |
| 194 | new_user.security_email_verified = True |
| 195 | |
| 196 | # Do we want to record this too? |
| 197 | # Could be confusing since it's a different type of code? |
| 198 | # But may be good for history |
| 199 | new_user.verify_email_code = auth_code |
| 200 | |
| 201 | # Do we even need this anymore? |
| 202 | # UserbaseProject is not imported ... |
| 203 | """ |
| 204 | UserbaseProject.set_working_dir(session = session, |
| 205 | user_id = new_user.id, |
| 206 | project_id = project.id, |
| 207 | working_dir_id = project.directory_default_id) |
| 208 | """ |
| 209 | log = regular_log.default() |
| 210 | permission_result, log = Project_permissions.add( |
| 211 | session = session, |
| 212 | permission = auth_code.permission_level, |
| 213 | user = new_user, |
| 214 | sub_type = auth_code.project_string_id, |
| 215 | log = log) |
| 216 | RoleMemberObject.new( |
| 217 | session = session, |
| 218 | default_role_name = ProjectDefaultRoles[auth_code.permission_level.lower()], |
| 219 | member_id = new_user.member_id, |
| 220 | object_id = project.id, |
| 221 | object_type = ValidObjectTypes.project |
| 222 | ) |
| 223 | if regular_log.log_has_error(log): |
| 224 | logger.error(f'Error with auth code: {log}') |
no test coverage detected