aclforall 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ Metadata-Version: 2.1
2
+ Name: aclforall
3
+ Version: 0.1.0
4
+ Summary: ACL package for permission management
5
+ Author: Your Name
6
+ Requires-Python: >=3.6
@@ -0,0 +1,12 @@
1
+ # Make acl_package a proper Python package
2
+ from acl_package.models.user import User
3
+ from acl_package.models.role import Role
4
+ from acl_package.models.permission import Permission
5
+ from acl_package.models.group import Group
6
+ from acl_package.models.object_permission import ObjectPermission
7
+ from acl_package.mixins.permission_mixin import PermissionMixin
8
+
9
+ __all__ = [
10
+ 'User', 'Role', 'Permission', 'Group',
11
+ 'ObjectPermission', 'PermissionMixin'
12
+ ]
@@ -0,0 +1,7 @@
1
+ # Mixins package
2
+ from acl_package.mixins.permission_mixin import PermissionMixin
3
+
4
+ __all__ = ['PermissionMixin']
5
+ from acl_package.mixins.permission_mixin import PermissionMixin
6
+ __all__ = ['PermissionMixin']
7
+
@@ -0,0 +1,24 @@
1
+ class PermissionMixin:
2
+ def has_perm(self, permission_name, obj_type=None, obj_id=None):
3
+
4
+ if getattr(self, 'is_super_admin', False):
5
+ return True
6
+
7
+
8
+ for op in getattr(self, 'object_permissions', []):
9
+ if op.permission_name == permission_name:
10
+ if obj_type == op.object_type and obj_id == op.object_id:
11
+ return True
12
+
13
+ for role in getattr(self, 'roles', []):
14
+ for p in role.permissions:
15
+ if p.permission_name == permission_name:
16
+ return True
17
+
18
+ for group in getattr(self, 'groups', []):
19
+ for role in group.roles:
20
+ for p in role.permissions:
21
+ if p.permission_name == permission_name:
22
+ return True
23
+
24
+ return False
@@ -0,0 +1,9 @@
1
+ from acl_package.models.user import User
2
+ from acl_package.models.role import Role
3
+ from acl_package.models.permission import Permission
4
+ from acl_package.models.group import Group
5
+ from acl_package.models.user_role import UserRole
6
+ from acl_package.models.user_group import UserGroup
7
+ from acl_package.models.role_permission import RolePermission
8
+ from acl_package.models.group_role import GroupRole
9
+ from acl_package.models.object_permission import ObjectPermission
@@ -0,0 +1,7 @@
1
+
2
+ class Group:
3
+ def __init__(self, id, name, created_at=None):
4
+ self.id = id
5
+ self.name = name
6
+ self.created_at = created_at
7
+ self.roles = []
@@ -0,0 +1,7 @@
1
+
2
+ class GroupRole:
3
+ def __init__(self, id, group_id, role_id, created_at=None):
4
+ self.id = id
5
+ self.group_id = group_id
6
+ self.role_id = role_id
7
+ self.created_at = created_at
@@ -0,0 +1,12 @@
1
+ class ObjectPermission:
2
+
3
+ def __init__(self,id,user,group_id,object_type,object_id,permission_name,created_at=None):
4
+ self.id = id
5
+ self.user = user
6
+ self.group_id = group_id
7
+ self.object_type=object_type
8
+ self.object_id=object_id
9
+ self.permission_name=permission_name
10
+ self.created_at = created_at
11
+
12
+
@@ -0,0 +1,8 @@
1
+
2
+
3
+ class Permission:
4
+ def __init__(self, id, permission_name, label, created_at=None):
5
+ self.id = id
6
+ self.permission_name = permission_name
7
+ self.label = label
8
+ self.created_at = created_at
@@ -0,0 +1,8 @@
1
+
2
+
3
+ class Role:
4
+ def __init__(self, id, name, created_at=None):
5
+ self.id = id
6
+ self.name = name
7
+ self.created_at = created_at
8
+ self.permissions = []
@@ -0,0 +1,7 @@
1
+ class RolePermission:
2
+
3
+ def __init__(self,id,role_id,permission_id,created_at=None):
4
+ self.id = id
5
+ self.role_id = role_id
6
+ self.permission_id = permission_id
7
+ self.created_at = created_at
@@ -0,0 +1,15 @@
1
+
2
+ from acl_package.mixins.permission_mixin import PermissionMixin
3
+
4
+ class User(PermissionMixin):
5
+ def __init__(self, id, username, email, password, is_super_admin, is_admin, created_at=None):
6
+ self.id = id
7
+ self.username = username
8
+ self.email = email
9
+ self.password = password
10
+ self.is_super_admin = is_super_admin
11
+ self.is_admin = is_admin
12
+ self.created_at = created_at
13
+ self.roles = []
14
+ self.groups = []
15
+ self.object_permissions = []
@@ -0,0 +1,7 @@
1
+ class UserGroup:
2
+
3
+ def __init__(self,id,user_id,group_id,created_at=None):
4
+ self.id = id
5
+ self.group_id = group_id
6
+ self.user_id = user_id
7
+ self.created_at = created_at
@@ -0,0 +1,9 @@
1
+ class UserRole:
2
+
3
+ def __init__(self,id,user_id,role_id,created_at=None):
4
+ self.id = id
5
+ self.user_id = user_id
6
+ self.role_id = role_id
7
+ self.created_at = created_at
8
+
9
+
@@ -0,0 +1,3 @@
1
+ from acl_package.registry.permission_registry import PermissionRegistry
2
+
3
+ __all__ = ['PermissionRegistry']
@@ -0,0 +1,6 @@
1
+ class PermissionRegistry:
2
+ def __init__(self):
3
+ self.permissions = {}
4
+
5
+ def add_permission(self, permission_obj):
6
+ self.permissions[permission_obj.permission_name] = permission_obj
@@ -0,0 +1,6 @@
1
+ Metadata-Version: 2.1
2
+ Name: aclforall
3
+ Version: 0.1.0
4
+ Summary: ACL package for permission management
5
+ Author: Your Name
6
+ Requires-Python: >=3.6
@@ -0,0 +1,20 @@
1
+ setup.py
2
+ acl_package/__init__.py
3
+ acl_package/mixins/__init__.py
4
+ acl_package/mixins/permission_mixin.py
5
+ acl_package/models/__init__.py
6
+ acl_package/models/group.py
7
+ acl_package/models/group_role.py
8
+ acl_package/models/object_permission.py
9
+ acl_package/models/permission.py
10
+ acl_package/models/role.py
11
+ acl_package/models/role_permission.py
12
+ acl_package/models/user.py
13
+ acl_package/models/user_group.py
14
+ acl_package/models/user_role.py
15
+ acl_package/registry/__init__.py
16
+ acl_package/registry/permission_registry.py
17
+ aclforall.egg-info/PKG-INFO
18
+ aclforall.egg-info/SOURCES.txt
19
+ aclforall.egg-info/dependency_links.txt
20
+ aclforall.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ acl_package
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,11 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name='aclforall',
5
+ version='0.1.0',
6
+ packages=find_packages(),
7
+ install_requires=[],
8
+ author='Your Name',
9
+ description='ACL package for permission management',
10
+ python_requires='>=3.6',
11
+ )