123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from django.utils.translation import ugettext_lazy as _
- from misago.acl import algebra
- from misago.acl.models import Role
- from misago.core import forms
- """
- Admin Permissions Form
- """
- class PermissionsForm(forms.Form):
- legend = _("Account settings")
- name_changes_allowed = forms.IntegerField(
- label=_("Allowed username changes number"),
- min_value=0,
- initial=1)
- name_changes_expire = forms.IntegerField(
- label=_("Don't count username changes older than"),
- help_text=_("Number of days since name change that makes that change no longer count to limit. Enter zero to make all changes count."),
- min_value=0,
- initial=0)
- can_have_signature = forms.YesNoSwitch(
- label=_("Can have signature"))
- allow_signature_links = forms.YesNoSwitch(
- label=_("Can put links in signature"))
- allow_signature_images = forms.YesNoSwitch(
- label=_("Can put images in signature"))
- def change_permissions_form(role):
- if isinstance(role, Role) and role.special_role != 'anonymous':
- return PermissionsForm
- else:
- return None
- """
- ACL Builder
- """
- def build_acl(acl, roles, key_name):
- new_acl = {
- 'name_changes_allowed': 0,
- 'name_changes_expire': 0,
- 'can_have_signature': 0,
- 'allow_signature_links': 0,
- 'allow_signature_images': 0,
- }
- new_acl.update(acl)
- return algebra.sum_acls(
- new_acl, roles=roles, key=key_name,
- name_changes_allowed=algebra.greater,
- name_changes_expire=algebra.lower,
- can_have_signature=algebra.greater,
- allow_signature_links=algebra.greater,
- allow_signature_images=algebra.greater
- )
|