Skip to content

Commit 0fdf65e

Browse files
Formatted
1 parent ba528f0 commit 0fdf65e

File tree

2 files changed

+14
-66
lines changed

2 files changed

+14
-66
lines changed

src/masonite_permission/mixins/has_permissions.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,22 @@ class HasPermissions:
77
def permissions(self):
88
from ..models.permission import Permission
99

10-
return (
11-
Permission.where_in("id", lambda q: (
10+
return Permission.where_in(
11+
"id",
12+
lambda q: (
1213
q.table("model_has_permissions")
1314
.select("model_has_permissions.permission_id")
14-
.where_raw(f"""
15+
.where_raw(
16+
f"""
1517
(model_has_permissions.permissionable_type = 'users' and model_has_permissions.permissionable_id = {self.id})
1618
or
1719
(model_has_permissions.permissionable_type = 'roles' and model_has_permissions.permissionable_id in (
1820
select role_user.role_id from role_user where role_user.user_id = {self.id}
1921
))
20-
""")
21-
)).get()
22-
)
22+
"""
23+
)
24+
),
25+
).get()
2326

2427
def attach_permission(self, permission):
2528
"""Assign a permission to a role
@@ -155,7 +158,11 @@ def sync_permissions(self, *args):
155158
ids = []
156159

157160
if len(permission_ids) > 0 and len(permission_slugs) > 0:
158-
ids = Permission.where_raw(f"(id in {permission_ids}) or slug in {permission_slugs}").get().pluck("id")
161+
ids = (
162+
Permission.where_raw(f"(id in {permission_ids}) or slug in {permission_slugs}")
163+
.get()
164+
.pluck("id")
165+
)
159166
elif len(permission_ids) > 0:
160167
ids = list(Permission.where_in("id", permission_ids).get().pluck("id"))
161168
elif len(permission_slugs) > 0:

tests/integrations/app/controllers/WelcomeController.py

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22
from masonite.views import View
33
from masonite.controllers import Controller
44

5-
from src.masonite_permission.models.permission import Permission
65
from src.masonite_permission.models.role import Role
76
from tests.integrations.app.models.User import User
8-
from masoniteorm.expressions import JoinClause
9-
from masoniteorm.query import QueryBuilder
107

118

129
class WelcomeController(Controller):
@@ -21,61 +18,5 @@ def show(self, view: View):
2118

2219
def test(self):
2320
user = User.first()
24-
role = Role.first()
25-
26-
# user.sync_permissions(["create-post", "edit-user"])
27-
# role.sync_permissions(["create-user", "edit-user", "delete-user"])
2821

2922
return user.permissions()
30-
31-
# user_two = User.create(
32-
# {
33-
# "name": "John",
34-
# "email": "john@example.com",
35-
# "password": "OK",
36-
# "phone": "+123456789",
37-
# }
38-
# )
39-
40-
# user_two.sync_permissions("delete-user")
41-
42-
return (
43-
QueryBuilder().table("permissions").select_raw("permissions.id, permissions.name").where_in("id", lambda q: (
44-
q.table("model_has_permissions")
45-
.select("model_has_permissions.permission_id")
46-
.where_raw(f"""
47-
(model_has_permissions.permissionable_type = 'users' and model_has_permissions.permissionable_id = {user.id})
48-
or
49-
(model_has_permissions.permissionable_type = 'roles' and model_has_permissions.permissionable_id in (
50-
select role_user.role_id from role_user where role_user.user_id = {user.id}
51-
))
52-
""")
53-
)).get()
54-
)
55-
56-
return (
57-
QueryBuilder().table("permissions")
58-
.select_raw("permissions.id, permissions.name, permissions.slug, users.id")
59-
.join(pivot_query)
60-
.join(role_permission_query)
61-
.join(user_permission_query)
62-
.group_by("permissions.id, users.id")
63-
.where("users.id", 1)
64-
.get()
65-
)
66-
67-
user = User.first()
68-
admin = Role.where("slug", "admin").first()
69-
70-
71-
user.attach_permission("edit-user")
72-
73-
admin.sync_permissions(["create-post", "edit-post", "delete-post"])
74-
75-
user.sync_roles(['admin', 'editor'])
76-
77-
return user.permissions()
78-
79-
return {
80-
"roles": permission.roles().serialize(),
81-
}

0 commit comments

Comments
 (0)