Browse Source

Starting with warnings perms. #37

Rafał Pitoń 11 years ago
parent
commit
8d3224c0a1
2 changed files with 32 additions and 0 deletions
  1. 31 0
      misago/acl/permissions/warnings.py
  2. 1 0
      misago/settings_base.py

+ 31 - 0
misago/acl/permissions/warnings.py

@@ -0,0 +1,31 @@
+from django.utils.translation import ugettext_lazy as _
+import floppyforms as forms
+from misago.acl.builder import BaseACL
+from misago.forms import YesNoSwitch
+
+def make_form(request, role, form):
+    if role.special != 'guest':
+        form.base_fields['can_warn_members'] = forms.BooleanField(label=_("Can warn members"),
+                                                                  widget=YesNoSwitch, initial=False, required=False)
+
+        form.fieldsets.append((
+                               _("Warning Members"),
+                               ('can_warn_members',)
+                              ))
+
+
+class WarningsACL(BaseACL):
+    def can_warn_members(self):
+        return self.acl['can_warn_members']
+
+
+def build(acl, roles):
+    acl.warnings = WarningsACL()
+    acl.warnings.acl['can_warn_members'] = False
+
+    for role in roles:
+        try:
+            if role['can_warn_members']:
+                acl.warnings.acl['can_warn_members'] = True
+        except KeyError:
+            pass

+ 1 - 0
misago/settings_base.py

@@ -145,6 +145,7 @@ PERMISSION_PROVIDERS = (
     'misago.acl.permissions.threads',
     'misago.acl.permissions.threads',
     'misago.acl.permissions.privatethreads',
     'misago.acl.permissions.privatethreads',
     'misago.acl.permissions.reports',
     'misago.acl.permissions.reports',
+    'misago.acl.permissions.warnings',
     'misago.acl.permissions.destroyusers',
     'misago.acl.permissions.destroyusers',
     'misago.acl.permissions.acpaccess',
     'misago.acl.permissions.acpaccess',
 )
 )