Beispiel #1
0
 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
Beispiel #2
0
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