Skip to content

Commit ba0d3f5

Browse files
author
Youngjin Jo
authored
Merge pull request #142 from yjinjo/master
Add injected_params for service account agent mode
2 parents 9618cec + 7cd5823 commit ba0d3f5

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

src/spaceone/core/error.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,3 +291,9 @@ class ERROR_MESSAGE_FORMAT(ERROR_UNKNOWN):
291291

292292
class ERROR_CACHE_KEY_FORMAT(ERROR_UNKNOWN):
293293
_message = "Cache key format is invalid. (key = {key})"
294+
295+
296+
class ERROR_SERVICE_ACCOUNT_CANNOT_BE_DELETED_WITH_EXISTING_APP(ERROR_INVALID_ARGUMENT):
297+
_status_code = "INVALID_OPERATION"
298+
_message = """Service Account cannot be deleted as long as an associated App exists.
299+
Please delete the App before deleting the Service Account. (error_class = {error_class}, key = {key})"""

src/spaceone/core/handler/authentication_handler.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ def _update_meta(self, token_info: dict) -> None:
111111
'iat': 'int', # issued at
112112
'jti': 'str', # jwt id (token_key | client_id), Optional
113113
'permissions': 'list', # permissions, Optional
114+
'projects': 'list', # project_ids, if workspace member, Optional
115+
'injected_params': 'dict', # injected parameters, override parameters, Optional
114116
'ver': 'str', # jwt version
115117
"""
116118

@@ -122,6 +124,7 @@ def _update_meta(self, token_info: dict) -> None:
122124
workspace_id = token_info.get("wid")
123125
permissions = token_info.get("permissions")
124126
projects = token_info.get("projects")
127+
injected_params = token_info.get("injected_params")
125128

126129
self.transaction.set_meta("authorization.token_type", token_type)
127130
self.transaction.set_meta("authorization.role_type", role_type)
@@ -131,6 +134,7 @@ def _update_meta(self, token_info: dict) -> None:
131134
self.transaction.set_meta("authorization.workspace_id", workspace_id)
132135
self.transaction.set_meta("authorization.permissions", permissions)
133136
self.transaction.set_meta("authorization.projects", projects)
137+
self.transaction.set_meta("authorization.injected_params", injected_params)
134138

135139
if owner_type == "USER":
136140
self.transaction.set_meta("authorization.user_id", audience)

src/spaceone/core/handler/mutation_handler.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def request(self, params):
1212
user_projects: list = self.transaction.get_meta("authorization.projects")
1313
user_id: str = self.transaction.get_meta("authorization.user_id")
1414
set_user_id: str = self.transaction.get_meta("authorization.set_user_id")
15+
injected_params: dict = self.transaction.get_meta("authorization.injected_params")
1516

1617
if user_role_type == "SYSTEM_TOKEN":
1718
if domain_id:
@@ -35,4 +36,7 @@ def request(self, params):
3536
if set_user_id:
3637
params["user_id"] = user_id
3738

39+
if injected_params:
40+
params.update(injected_params)
41+
3842
return params

0 commit comments

Comments
 (0)