Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from django.forms.util import ErrorList
- from django.utils.encoding import force_unicode
- from django.utils.html import conditional_escape
- from django.utils.safestring import mark_safe
- def get_object_or_none(model, *args, **kwargs):
- try:
- return model.objects.get(*args, **kwargs)
- except model.DoesNotExist:
- return None
- #функция получилось какой-то полукаррированной из-за использования в нескольких различных фильтрах
- #смотри templatetags.monitoringengine_iu_tags
- def has_perm(perm):
- def has_perm_on_object(user, obj):
- return (user.
- user_permissions.
- filter(pk=obj.perms.get(perm_type=perm).permission.id).
- exists())
- return has_perm_on_object
- def get_available_objects_of_type(t):
- def objects_for_user(user):
- return t.objects.filter(perms__permission__in=user.user_permissions.all()).distinct()
- return objects_for_user
- def get_users_for_object(obj, perm):
- """
- Получает пользователей, которые имеют право perm на объект obj
- @type perm: string
- @param perm: тип доступа к объекту (чтение, запись либо управление пользователями)
- @param obj: объект, для которого поиск пользователей (на данный момент аккаунт, ресурс либо представление)
- """
- return obj.perms.get(perm_type=perm).permission.user_set.all()
- def filter_objects_for_user(objs, perm):
- """
- Получает объекты, на которые пользователь имеет право perm
- @type perm: string
- @param obj: объекты для фильтрации (на данный момент аккаунт, ресурс либо представление)
- """
- return filter(lambda obj: has_perm(perm)(user, obj), objs)
- class BootstrappedErrorList(ErrorList):
- def as_ul(self):
- if not self:
- return u''
- return mark_safe(u'<ul class="errorlist text-danger">%s</ul>'
- % ''.join([u'<li>%s</li>' % conditional_escape(force_unicode(e)) for e in self]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement