urls.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import
  3. from __future__ import division
  4. from __future__ import print_function
  5. from __future__ import unicode_literals
  6. from django.contrib.auth.models import User
  7. from rapid.registry import Action
  8. from rapid.models import Application, Profile
  9. from rapid.forms import ManageUsers
  10. from rapid import register
  11. from rapid import permissions
  12. def _can_manage_users(request):
  13. if not request.user.is_authenticated():
  14. return []
  15. p = []
  16. for a in request.user.managed_applications.all():
  17. p.extend(a.profile_set.all())
  18. return p
  19. _manage_users_permission = permissions.Permission(
  20. lambda r: False,
  21. _can_manage_users
  22. )
  23. urlpatterns = register.crud(Application, write_set=permissions.to_superusers(), read_set=permissions.to_all()) +\
  24. register.crud(Profile, write_set=permissions.to_superusers(), read_set=permissions.to_staff()) +\
  25. register.instance_form(Profile, 'manage_users', 'Gerenciar Usuários',
  26. ManageUsers, _manage_users_permission, icon="fa-users",
  27. visibility=Action.Visibility.list) +\
  28. register.select(User, ['username'], permissions.to_staff(), 'usuario')