Show More
@@ -829,7 +829,7 b' class NotAnonymous(object):' | |||||
829 |
|
829 | |||
830 |
|
830 | |||
831 | class _PermsDecorator(object): |
|
831 | class _PermsDecorator(object): | |
832 | """Base class for controller decorators""" |
|
832 | """Base class for controller decorators with multiple permissions""" | |
833 |
|
833 | |||
834 | def __init__(self, *required_perms): |
|
834 | def __init__(self, *required_perms): | |
835 | self.required_perms = required_perms # usually very short - a list is thus fine |
|
835 | self.required_perms = required_perms # usually very short - a list is thus fine | |
@@ -868,29 +868,35 b' class HasPermissionAnyDecorator(_PermsDe' | |||||
868 | return any(p in global_permissions for p in self.required_perms) |
|
868 | return any(p in global_permissions for p in self.required_perms) | |
869 |
|
869 | |||
870 |
|
870 | |||
871 |
class |
|
871 | class _PermDecorator(_PermsDecorator): | |
|
872 | """Base class for controller decorators with a single permission""" | |||
|
873 | ||||
|
874 | def __init__(self, required_perm): | |||
|
875 | _PermsDecorator.__init__(self, [required_perm]) | |||
|
876 | self.required_perm = required_perm | |||
|
877 | ||||
|
878 | ||||
|
879 | class HasRepoPermissionLevelDecorator(_PermDecorator): | |||
872 | """ |
|
880 | """ | |
873 | Checks the user has at least the specified permission level for the requested repository. |
|
881 | Checks the user has at least the specified permission level for the requested repository. | |
874 | """ |
|
882 | """ | |
875 |
|
883 | |||
876 | def check_permissions(self, user): |
|
884 | def check_permissions(self, user): | |
877 | repo_name = get_repo_slug(request) |
|
885 | repo_name = get_repo_slug(request) | |
878 | (level,) = self.required_perms |
|
886 | return user.has_repository_permission_level(repo_name, self.required_perm) | |
879 | return user.has_repository_permission_level(repo_name, level) |
|
|||
880 |
|
887 | |||
881 |
|
888 | |||
882 |
class HasRepoGroupPermissionLevelDecorator(_Perm |
|
889 | class HasRepoGroupPermissionLevelDecorator(_PermDecorator): | |
883 | """ |
|
890 | """ | |
884 | Checks the user has any of given permissions for the requested repository group. |
|
891 | Checks the user has any of given permissions for the requested repository group. | |
885 | """ |
|
892 | """ | |
886 |
|
893 | |||
887 | def check_permissions(self, user): |
|
894 | def check_permissions(self, user): | |
888 | repo_group_name = get_repo_group_slug(request) |
|
895 | repo_group_name = get_repo_group_slug(request) | |
889 | (level,) = self.required_perms |
|
896 | return user.has_repository_group_permission_level(repo_group_name, self.required_perm) | |
890 | return user.has_repository_group_permission_level(repo_group_name, level) |
|
|||
891 |
|
897 | |||
892 |
|
898 | |||
893 |
class HasUserGroupPermissionLevelDecorator(_Perm |
|
899 | class HasUserGroupPermissionLevelDecorator(_PermDecorator): | |
894 | """ |
|
900 | """ | |
895 | Checks for access permission for any of given predicates for specific |
|
901 | Checks for access permission for any of given predicates for specific | |
896 | user group. In order to fulfill the request any of predicates must be meet |
|
902 | user group. In order to fulfill the request any of predicates must be meet | |
@@ -898,8 +904,7 b' class HasUserGroupPermissionLevelDecorat' | |||||
898 |
|
904 | |||
899 | def check_permissions(self, user): |
|
905 | def check_permissions(self, user): | |
900 | user_group_name = get_user_group_slug(request) |
|
906 | user_group_name = get_user_group_slug(request) | |
901 | (level,) = self.required_perms |
|
907 | return user.has_user_group_permission_level(user_group_name, self.required_perm) | |
902 | return user.has_user_group_permission_level(user_group_name, level) |
|
|||
903 |
|
908 | |||
904 |
|
909 | |||
905 | #============================================================================== |
|
910 | #============================================================================== | |
@@ -907,7 +912,7 b' class HasUserGroupPermissionLevelDecorat' | |||||
907 | #============================================================================== |
|
912 | #============================================================================== | |
908 |
|
913 | |||
909 | class _PermsFunction(object): |
|
914 | class _PermsFunction(object): | |
910 | """Base function for other check functions""" |
|
915 | """Base function for other check functions with multiple permissions""" | |
911 |
|
916 | |||
912 | def __init__(self, *required_perms): |
|
917 | def __init__(self, *required_perms): | |
913 | self.required_perms = required_perms # usually very short - a list is thus fine |
|
918 | self.required_perms = required_perms # usually very short - a list is thus fine | |
@@ -934,25 +939,30 b' class HasPermissionAny(_PermsFunction):' | |||||
934 | return ok |
|
939 | return ok | |
935 |
|
940 | |||
936 |
|
941 | |||
937 |
class |
|
942 | class _PermFunction(_PermsFunction): | |
|
943 | """Base function for other check functions with a single permission""" | |||
|
944 | ||||
|
945 | def __init__(self, required_perm): | |||
|
946 | _PermsFunction.__init__(self, [required_perm]) | |||
|
947 | self.required_perm = required_perm | |||
|
948 | ||||
|
949 | ||||
|
950 | class HasRepoPermissionLevel(_PermFunction): | |||
938 |
|
951 | |||
939 | def __call__(self, repo_name, purpose=None): |
|
952 | def __call__(self, repo_name, purpose=None): | |
940 | (level,) = self.required_perms |
|
953 | return request.user.has_repository_permission_level(repo_name, self.required_perm, purpose) | |
941 | return request.user.has_repository_permission_level(repo_name, level, purpose) |
|
|||
942 |
|
954 | |||
943 |
|
955 | |||
944 |
class HasRepoGroupPermissionLevel(_Perm |
|
956 | class HasRepoGroupPermissionLevel(_PermFunction): | |
945 |
|
957 | |||
946 | def __call__(self, group_name, purpose=None): |
|
958 | def __call__(self, group_name, purpose=None): | |
947 | (level,) = self.required_perms |
|
959 | return request.user.has_repository_group_permission_level(group_name, self.required_perm, purpose) | |
948 | return request.user.has_repository_group_permission_level(group_name, level, purpose) |
|
|||
949 |
|
960 | |||
950 |
|
961 | |||
951 |
class HasUserGroupPermissionLevel(_Perm |
|
962 | class HasUserGroupPermissionLevel(_PermFunction): | |
952 |
|
963 | |||
953 | def __call__(self, user_group_name, purpose=None): |
|
964 | def __call__(self, user_group_name, purpose=None): | |
954 | (level,) = self.required_perms |
|
965 | return request.user.has_user_group_permission_level(user_group_name, self.required_perm, purpose) | |
955 | return request.user.has_user_group_permission_level(user_group_name, level, purpose) |
|
|||
956 |
|
966 | |||
957 |
|
967 | |||
958 | #============================================================================== |
|
968 | #============================================================================== |
General Comments 0
You need to be logged in to leave comments.
Login now