def add_user_to_object(request, model, pk): obj = get_object_or_404(get_model('monitoringengine_ui', model), pk=pk) if has_perm('manage')(request.user, obj) and 'email' in request.GET and request.GET['email']: redirect = '/' if 'redirect' in request.GET: redirect = request.GET['redirect'] user = get_object_or_404(User, email=request.GET['email']) perm = obj.perms.get(perm_type='read').permission user.user_permissions.add(perm) return HttpResponseRedirect(redirect) raise Http404
def manage_perm(request, action, model, pk, username, perm_type): obj = get_object_or_404(get_model('monitoringengine_ui', model), pk=pk) if has_perm('manage')(request.user, obj): redirect = '/' if 'redirect' in request.GET: redirect = request.GET['redirect'] perm = obj.perms.get(perm_type=perm_type).permission user = User.objects.get(username=username) if action == 'remove': user.user_permissions.remove(perm) return HttpResponseRedirect(redirect) elif action == 'add': user.user_permissions.add(perm) return HttpResponseRedirect(redirect) else: raise Http404
def users(obj, perm=''): if perm: return get_users_for_object(obj, perm) else: return (get_users_for_object(obj, 'read') | get_users_for_object(obj, 'edit') | get_users_for_object(obj, 'manage')).distinct() register.filter('accounts', get_available_objects_of_type(Account)) register.filter('resources', get_available_objects_of_type(Resource)) register.filter('views', get_available_objects_of_type(View)) register.filter('choose_subdomain_include', choose_subdomain_include) register.filter('can_read', has_perm('read')) register.filter('can_edit', has_perm('edit')) register.filter('can_manage', has_perm('manage')) register.filter('subscriptions_number', account_subscriptions_number) @register.filter def class_verbose(obj): return obj._meta.verbose_name @register.filter def class_name(obj): return obj.__class__.__name__