Rafał Pitoń 11 лет назад
Родитель
Сommit
e710a784ea

+ 3 - 3
misago/acl/builder.py

@@ -53,19 +53,19 @@ class ACL(object):
                 yield self.__dict__[attr]
 
 
-def acl(request, user):
+def acl(user):
     acl_key = user.make_acl_key()
     try:
         user_acl = cache.get(acl_key)
         if user_acl.version != monitor['acl_version']:
             raise InvalidCacheBackendError()
     except (AttributeError, InvalidCacheBackendError):
-        user_acl = build_acl(request, user.get_roles())
+        user_acl = build_acl(user.get_roles())
         cache.set(acl_key, user_acl, 2592000)
     return user_acl
 
 
-def build_acl(request, roles):
+def build_acl(roles):
     new_acl = ACL(monitor['acl_version'])
     forums = Forum.objects.get(special='root').get_descendants().order_by('lft')
     perms = []

+ 2 - 2
misago/auth.py

@@ -77,7 +77,7 @@ def auth_remember(request, ip):
         cookie_token = request.COOKIES[cookie_token]
         if len(cookie_token) != 42:
             raise AuthException()
-            
+
         try:
             token_rk = Token.objects.select_related().get(pk=cookie_token)
         except Token.DoesNotExist:
@@ -108,7 +108,7 @@ def auth_admin(request, email, password):
     Admin auth - check ACP permissions
     """
     user = get_user(email, password, True)
-    if not user.is_god() and not user.acl(request).special.is_admin():
+    if not user.is_god() and not user.acl().special.is_admin():
         raise AuthException(NOT_ADMIN, _("Your account does not have admin privileges."))
     return user;
 

+ 3 - 3
misago/middleware/acl.py

@@ -2,13 +2,13 @@ from misago.acl.builder import acl
 
 class ACLMiddleware(object):
     def process_request(self, request):
-        request.acl = acl(request, request.user)
-        
+        request.acl = request.user.acl()
+
         if (request.user.is_authenticated() and
             (request.acl.team or request.user.is_god()) != request.user.is_team):
             request.user.is_team = (request.acl.team or request.user.is_god())
             request.user.save(force_update=True)
-            
+
         if request.session.team != request.user.is_team:
             request.session.team = request.user.is_team
             request.session.save()

+ 1 - 2
misago/models/postmodel.py

@@ -143,7 +143,6 @@ class Post(models.Model):
         merge_post.send(sender=self, new_post=post)
 
     def notify_mentioned(self, request, thread_type, users):
-        from misago.acl.builder import acl as build_acl
         from misago.acl.exceptions import ACLError403, ACLError404
 
         mentioned = self.mentions.all()
@@ -151,7 +150,7 @@ class Post(models.Model):
             if user.pk != request.user.pk and user not in mentioned:
                 self.mentions.add(user)
                 try:
-                    user_acl = build_acl(request, user)
+                    user_acl = user.acl()
                     user_acl.forums.allow_forum_view(self.forum)
                     user_acl.threads.allow_thread_view(user, self.thread)
                     user_acl.threads.allow_post_view(user, self.thread, self)

+ 1 - 2
misago/models/threadmodel.py

@@ -213,7 +213,6 @@ class Thread(models.Model):
         self.deleted = start_post.deleted
 
     def email_watchers(self, request, thread_type, post):
-        from misago.acl.builder import acl
         from misago.acl.exceptions import ACLError403, ACLError404
         from misago.models import ThreadRead, WatchedThread
 
@@ -222,7 +221,7 @@ class Thread(models.Model):
             user = watch.user
             if user.pk != request.user.pk:
                 try:
-                    user_acl = acl(request, user)
+                    user_acl = user.acl()
                     user_acl.forums.allow_forum_view(self.forum)
                     user_acl.threads.allow_thread_view(user, self)
                     user_acl.threads.allow_post_view(user, self, post)

+ 2 - 2
misago/models/usermodel.py

@@ -433,8 +433,8 @@ class User(models.Model):
         self.save(update_fields=('acl_key',))
         return self.acl_key
 
-    def acl(self, request):
-        return acl(request, self)
+    def acl(self):
+        return acl(self)
 
     @property
     def avatar_crop(self):