def add_users(fixtures, created_models): user_models = {} for fixture in fixtures: user = User(fixture.get('private_id')) user.db_id = fixture.get('db_id', None) user.id = fixture.get('id', None) user.authentication_type = fixture.get('authentication_type', None) user.person_id = fixture.get('person_id', None) user.created_on = fixture.get('created_on', None) user.auth_token = fixture.get('auth_token', None) user.auth_timestamp = fixture.get('auth_timestamp', None) user.credentials = [created_models["credential_models"][credential_id] for credential_id in fixture.get('credential_ids')] user.roles = [created_models["role_models"][role_name] for role_name in fixture.get('role_names')] profile = Profile() profile.national_id_number = fixture.get('profile').get('national_id_number', None) profile.active_directory_id = fixture.get('profile').get('active_directory_id', None) profile.first_name = fixture.get('profile').get('first_name', None) profile.last_name = fixture.get('profile').get('last_name', None) profile.email = fixture.get('profile').get('email', None) profile.phone = fixture.get('profile').get('phone', None) user.profile = profile user_models[user.db_id] = user app.db_session.add(user) created_models["user_models"] = user_models return created_models
def create_or_update(self, request_json): private_id = request_json["private_id"] authentication_type = request_json["authentication_type"] user = None try: # update user = self.find_by_private_id(private_id) user.renew_auth() except: # create user = User(private_id, authentication_type=authentication_type) profile = Profile() if user.authentication_type == AuthenticationTypeEnum.ID_PORTEN: profile.national_id_number = private_id if user.authentication_type == AuthenticationTypeEnum.ACTIVE_DIRECTORY: profile.active_directory_id = private_id user.profile = profile current_app.db_session.add(user) current_app.db_session.commit() current_app.db_session.refresh(user) return user