def generate_user_info(self, user: UserModelWrapper, scopes: typing.Iterable[str]) -> UserInfo: obj = user.obj info = UserInfo( sub=obj.key, updated_at=obj.updated_at.replace(tzinfo=timezone.utc).isoformat(), ) if "email" in scopes: info.update( email=obj.email, email_verified=obj.email_verified, ) if "profile" in scopes: info.update( name=obj.name, given_name=obj.given_name, family_name=obj.family_name, middle_name=obj.middle_name, nickname=obj.nickname, preferred_username=obj.preferred_username, profile=obj.profile, picture=obj.picture, website=obj.website, gender=obj.gender, birthdate=obj.birthdate, zoneinfo=obj.zoneinfo, locale=obj.locale, phone_number=obj.phone_number, phone_number_verified=obj.phone_number_verified, address=obj.address, ) info["cognito:username"] = obj.key info["cognito:groups"] = ([g.name for g in obj.groups], ) info["cognito:mfa_enabled"] = False return info
def generate_user_info( user, scope, ): user_info = UserInfo(sub=str(user.uuid)) scope_list = scope.split() if 'profile' in scope_list: user_info.update({ 'name': user.get_full_name(), 'given_name': user.given_name, 'family_name': user.family_name, 'middle_name': user.middle_name, 'nickname': user.nickname, 'locale': user.locale, 'updated_at': user.updated_at }) if 'email' in scope_list: user_info['email'] = user.email return user_info