Skip to content

Commit

Permalink
Merge pull request #157 from ImMin5/master
Browse files Browse the repository at this point in the history
Add role_id at UserResponse
  • Loading branch information
ImMin5 authored Jan 2, 2024
2 parents 5024817 + 5a3fbe1 commit c81aea6
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/spaceone/identity/model/user/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class User(MongoModel):
email = StringField(max_length=255, default="")
email_verified = BooleanField(default=False)
auth_type = StringField(max_length=20, choices=("LOCAL", "EXTERNAL"))
role_id = StringField(max_length=40, default=None, null=True)
role_type = StringField(
max_length=20,
default="USER",
Expand All @@ -47,6 +48,7 @@ class User(MongoModel):
"state",
"email",
"email_verified",
"role_id",
"role_type",
"mfa",
"language",
Expand Down
1 change: 1 addition & 0 deletions src/spaceone/identity/model/user/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class UserResponse(BaseModel):
email: Union[str, None] = None
email_verified: Union[bool, None] = None
auth_type: Union[AuthType, None] = None
role_id: Union[str, None] = None
role_type: Union[RoleType, None] = None
mfa: Union[dict, None] = None
language: Union[str, None] = None
Expand Down
11 changes: 8 additions & 3 deletions src/spaceone/identity/service/role_binding_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,12 @@ def create_role_binding(self, params: dict):
latest_role_type = self._get_latest_role_type(
user_vo.role_type, role_vo.role_type
)
self.user_mgr.update_user_by_vo({"role_type": latest_role_type}, user_vo)

user_role_info = {"role_type": latest_role_type}
if role_vo.role_type in ["DOMAIN_ADMIN"]:
user_role_info.update({"role_id": role_vo.role_id})

self.user_mgr.update_user_by_vo(user_role_info, user_vo)

# Create role binding
return self.role_binding_manager.create_role_binding(params)
Expand Down Expand Up @@ -309,7 +314,7 @@ def stat(self, params: RoleBindingStatQueryRequest) -> dict:

def check_duplicate_domain_admin_role(
self, domain_id: str, user_id: str, role_type: str
):
) -> None:
rb_vos = self.role_binding_manager.filter_role_bindings(
domain_id=domain_id,
user_id=user_id,
Expand All @@ -321,7 +326,7 @@ def check_duplicate_domain_admin_role(

def check_duplicate_workspace_role(
self, domain_id: str, workspace_id: str, user_id: str
):
) -> None:
rb_vos = self.role_binding_manager.filter_role_bindings(
domain_id=domain_id, workspace_id=workspace_id, user_id=user_id
)
Expand Down

0 comments on commit c81aea6

Please sign in to comment.