11from enum import auto
22from pathlib import Path
3- from typing import Final , Literal , Self , TypeAlias
3+ from typing import Final , Literal , TypeAlias
44
55from pydantic import (
66 AnyUrl ,
@@ -221,13 +221,14 @@ class Cluster(BaseCluster):
221221 },
222222 )
223223
224- @model_validator (mode = "after" )
225- def _check_owner_has_access_rights (self ) -> Self :
226- is_default_cluster = bool (self .id == DEFAULT_CLUSTER_ID )
227- owner_gid = self .owner
224+ @model_validator (mode = "before" )
225+ @classmethod
226+ def check_owner_has_access_rights (cls , values ):
227+ is_default_cluster = bool (values ["id" ] == DEFAULT_CLUSTER_ID )
228+ owner_gid = values ["owner" ]
228229
229230 # check owner is in the access rights, if not add it
230- access_rights = self . access_rights or {}
231+ access_rights = values . get ( " access_rights" , values . get ( "accessRights" , {}))
231232 if owner_gid not in access_rights :
232233 access_rights [owner_gid ] = (
233234 CLUSTER_USER_RIGHTS if is_default_cluster else CLUSTER_ADMIN_RIGHTS
@@ -238,5 +239,5 @@ def _check_owner_has_access_rights(self) -> Self:
238239 ):
239240 msg = f"the cluster owner access rights are incorrectly set: { access_rights [owner_gid ]} "
240241 raise ValueError (msg )
241- self . access_rights = access_rights
242- return self
242+ values [ " access_rights" ] = access_rights
243+ return values
0 commit comments