users.py 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. from django.conf.urls import patterns, include, url
  2. from django.utils.translation import ugettext_lazy as _
  3. from misago.admin import AdminAction
  4. from misago.acl.models import Role
  5. from misago.banning.models import Ban
  6. from misago.users.models import User, Rank, Newsletter, Pruning
  7. ADMIN_ACTIONS=(
  8. AdminAction(
  9. section='users',
  10. id='users',
  11. name=_("Users List"),
  12. help=_("Search and browse users"),
  13. icon='user',
  14. model=User,
  15. actions=[
  16. {
  17. 'id': 'list',
  18. 'name': _("Browse Users"),
  19. 'help': _("Browse all registered user accounts"),
  20. 'route': 'admin_users'
  21. },
  22. {
  23. 'id': 'new',
  24. 'name': _("Add User"),
  25. 'help': _("Create new user account"),
  26. 'route': 'admin_users_new'
  27. },
  28. ],
  29. route='admin_users',
  30. urlpatterns=patterns('misago.users.admin.users.views',
  31. url(r'^$', 'List', name='admin_users'),
  32. url(r'^(?P<page>\d+)/$', 'List', name='admin_users'),
  33. url(r'^inactive/$', 'inactive', name='admin_users_inactive'),
  34. url(r'^new/$', 'New', name='admin_users_new'),
  35. url(r'^edit/(?P<slug>[a-z0-9]+)-(?P<target>\d+)/$', 'Edit', name='admin_users_edit'),
  36. url(r'^delete/(?P<slug>[a-z0-9]+)-(?P<target>\d+)/$', 'Delete', name='admin_users_delete'),
  37. ),
  38. ),
  39. AdminAction(
  40. section='users',
  41. id='roles',
  42. name=_("Roles"),
  43. help=_("Manage User Roles"),
  44. icon='adjust',
  45. model=Role,
  46. actions=[
  47. {
  48. 'id': 'list',
  49. 'name': _("Browse Roles"),
  50. 'help': _("Browse all existing roles"),
  51. 'route': 'admin_users_roles'
  52. },
  53. {
  54. 'id': 'new',
  55. 'name': _("Add Role"),
  56. 'help': _("Create new role"),
  57. 'route': 'admin_users_roles_new'
  58. },
  59. ],
  60. route='admin_users_roles',
  61. urlpatterns=patterns('misago.users.admin.roles.views',
  62. url(r'^$', 'List', name='admin_users_roles'),
  63. url(r'^new/$', 'New', name='admin_users_roles_new'),
  64. url(r'^edit/(?P<slug>([a-z0-9]|-)+)-(?P<target>\d+)/$', 'Edit', name='admin_users_roles_edit'),
  65. url(r'^delete/(?P<slug>([a-z0-9]|-)+)-(?P<target>\d+)/$', 'Delete', name='admin_users_roles_delete'),
  66. ),
  67. ),
  68. AdminAction(
  69. section='users',
  70. id='ranks',
  71. name=_("Ranks"),
  72. help=_("Administrate User Ranks"),
  73. icon='star',
  74. model=Rank,
  75. actions=[
  76. {
  77. 'id': 'list',
  78. 'name': _("Browse Ranks"),
  79. 'help': _("Browse all existing ranks"),
  80. 'route': 'admin_users_ranks'
  81. },
  82. {
  83. 'id': 'new',
  84. 'name': _("Add Rank"),
  85. 'help': _("Create new rank"),
  86. 'route': 'admin_users_ranks_new'
  87. },
  88. ],
  89. route='admin_users_ranks',
  90. urlpatterns=patterns('misago.users.admin.ranks.views',
  91. url(r'^$', 'List', name='admin_users_ranks'),
  92. url(r'^new/$', 'New', name='admin_users_ranks_new'),
  93. url(r'^edit/(?P<slug>([a-z0-9]|-)+)-(?P<target>\d+)/$', 'Edit', name='admin_users_ranks_edit'),
  94. url(r'^delete/(?P<slug>([a-z0-9]|-)+)-(?P<target>\d+)/$', 'Delete', name='admin_users_ranks_delete'),
  95. ),
  96. ),
  97. AdminAction(
  98. section='users',
  99. id='bans',
  100. name=_("Banning"),
  101. help=_("Ban or unban users from forums."),
  102. icon='lock',
  103. model=Ban,
  104. actions=[
  105. {
  106. 'id': 'list',
  107. 'name': _("Browse Bans"),
  108. 'help': _("Browse all existing bans"),
  109. 'route': 'admin_users_bans'
  110. },
  111. {
  112. 'id': 'new',
  113. 'name': _("Set Ban"),
  114. 'help': _("Set new Ban"),
  115. 'route': 'admin_users_bans_new'
  116. },
  117. ],
  118. route='admin_users_bans',
  119. urlpatterns=patterns('misago.banning.admin.views',
  120. url(r'^$', 'List', name='admin_users_bans'),
  121. url(r'^(?P<page>\d+)/$', 'List', name='admin_users_bans'),
  122. url(r'^new/$', 'New', name='admin_users_bans_new'),
  123. url(r'^edit/(?P<target>\d+)/$', 'Edit', name='admin_users_bans_edit'),
  124. url(r'^delete/(?P<target>\d+)/$', 'Delete', name='admin_users_bans_delete'),
  125. ),
  126. ),
  127. AdminAction(
  128. section='users',
  129. id='pruning',
  130. name=_("Prune Users"),
  131. help=_("Delete multiple Users"),
  132. icon='remove',
  133. model=Pruning,
  134. actions=[
  135. {
  136. 'id': 'list',
  137. 'name': _("Pruning Policies"),
  138. 'help': _("Browse all existing pruning policies"),
  139. 'route': 'admin_users_pruning'
  140. },
  141. {
  142. 'id': 'new',
  143. 'name': _("Set New Policy"),
  144. 'help': _("Set new pruning policy"),
  145. 'route': 'admin_users_pruning_new'
  146. },
  147. ],
  148. route='admin_users_pruning',
  149. urlpatterns=patterns('misago.users.admin.pruning.views',
  150. url(r'^$', 'List', name='admin_users_pruning'),
  151. url(r'^new/$', 'New', name='admin_users_pruning_new'),
  152. url(r'^edit/(?P<target>\d+)/$', 'Edit', name='admin_users_pruning_edit'),
  153. url(r'^delete/(?P<target>\d+)/$', 'Delete', name='admin_users_pruning_delete'),
  154. ),
  155. ),
  156. AdminAction(
  157. section='users',
  158. id='newsletters',
  159. name=_("Newsletters"),
  160. help=_("Manage and send Newsletters"),
  161. icon='envelope',
  162. model=Newsletter,
  163. actions=[
  164. {
  165. 'id': 'list',
  166. 'name': _("Browse Newsletters"),
  167. 'help': _("Browse all existing Newsletters"),
  168. 'route': 'admin_users_newsletters'
  169. },
  170. {
  171. 'id': 'new',
  172. 'name': _("New Newsletter"),
  173. 'help': _("Create new Newsletter"),
  174. 'route': 'admin_users_newsletters_new'
  175. },
  176. ],
  177. route='admin_users_newsletters',
  178. urlpatterns=patterns('misago.users.admin.newsletters.views',
  179. url(r'^$', 'List', name='admin_users_newsletters'),
  180. url(r'^(?P<page>\d+)/$', 'List', name='admin_users_newsletters'),
  181. url(r'^new/$', 'New', name='admin_users_newsletters_new'),
  182. url(r'^send/(?P<target>\d+)/(?P<token>[a-zA-Z0-9]+)/$', 'send', name='admin_users_newsletters_send'),
  183. url(r'^edit/(?P<target>\d+)/$', 'Edit', name='admin_users_newsletters_edit'),
  184. url(r'^delete/(?P<target>\d+)/$', 'Delete', name='admin_users_newsletters_delete'),
  185. ),
  186. ),
  187. )