users.py 8.6 KB

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