22
33from ai .backend .manager .actions .monitors .monitor import ActionMonitor
44from ai .backend .manager .actions .processor import ActionProcessor
5+ from ai .backend .manager .actions .processor .scope import ScopeActionProcessor
6+ from ai .backend .manager .actions .processor .single_entity import SingleEntityActionProcessor
57from ai .backend .manager .actions .types import AbstractProcessorPackage , ActionSpec
68from ai .backend .manager .actions .validators import ActionValidators
79from ai .backend .manager .services .auth .actions .authorize import (
4951class AuthProcessors (AbstractProcessorPackage ):
5052 signout : ActionProcessor [SignoutAction , SignoutActionResult ]
5153 update_full_name : ActionProcessor [UpdateFullNameAction , UpdateFullNameActionResult ]
52- get_ssh_keypair : ActionProcessor [GetSSHKeypairAction , GetSSHKeypairActionResult ]
53- generate_ssh_keypair : ActionProcessor [GenerateSSHKeypairAction , GenerateSSHKeypairActionResult ]
54- upload_ssh_keypair : ActionProcessor [UploadSSHKeypairAction , UploadSSHKeypairActionResult ]
54+ get_ssh_keypair : SingleEntityActionProcessor [GetSSHKeypairAction , GetSSHKeypairActionResult ]
55+ generate_ssh_keypair : ScopeActionProcessor [
56+ GenerateSSHKeypairAction , GenerateSSHKeypairActionResult
57+ ]
58+ upload_ssh_keypair : ScopeActionProcessor [UploadSSHKeypairAction , UploadSSHKeypairActionResult ]
5559 get_role : ActionProcessor [GetRoleAction , GetRoleActionResult ]
5660 authorize : ActionProcessor [AuthorizeAction , AuthorizeActionResult ]
5761 signup : ActionProcessor [SignupAction , SignupActionResult ]
@@ -72,9 +76,15 @@ def __init__(
7276 ) -> None :
7377 self .signout = ActionProcessor (service .signout , action_monitors )
7478 self .update_full_name = ActionProcessor (service .update_full_name , action_monitors )
75- self .get_ssh_keypair = ActionProcessor (service .get_ssh_keypair , action_monitors )
76- self .generate_ssh_keypair = ActionProcessor (service .generate_ssh_keypair , action_monitors )
77- self .upload_ssh_keypair = ActionProcessor (service .upload_ssh_keypair , action_monitors )
79+ self .get_ssh_keypair = SingleEntityActionProcessor (
80+ service .get_ssh_keypair , action_monitors , validators = [validators .rbac .single_entity ]
81+ )
82+ self .generate_ssh_keypair = ScopeActionProcessor (
83+ service .generate_ssh_keypair , action_monitors , validators = [validators .rbac .scope ]
84+ )
85+ self .upload_ssh_keypair = ScopeActionProcessor (
86+ service .upload_ssh_keypair , action_monitors , validators = [validators .rbac .scope ]
87+ )
7888 self .get_role = ActionProcessor (service .get_role , action_monitors )
7989 self .authorize = ActionProcessor (service .authorize , action_monitors )
8090 self .signup = ActionProcessor (service .signup , action_monitors )
0 commit comments