0003_default_roles.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.db import models, migrations
  4. from django.utils.translation import ugettext as _
  5. import base64
  6. try:
  7. import cPickle as pickle
  8. except ImportError:
  9. import pickle
  10. def pickle_permissions(role, permissions):
  11. role.pickled_permissions = base64.encodestring(
  12. pickle.dumps(permissions, pickle.HIGHEST_PROTOCOL))
  13. def create_default_roles(apps, schema_editor):
  14. Role = apps.get_model('misago_acl', 'Role')
  15. role = Role(name=_("Member"), special_role='authenticated')
  16. pickle_permissions(role,
  17. {
  18. # account perms
  19. 'name_changes_allowed': 2,
  20. 'name_changes_expire': 180,
  21. 'can_use_signature': False,
  22. 'allow_signature_links': False,
  23. 'allow_signature_images': False,
  24. # profiles perms
  25. 'can_search_users': True,
  26. 'can_see_users_emails': False,
  27. 'can_see_users_ips': False,
  28. 'can_see_hidden_users': False,
  29. # destroy users perms
  30. 'can_destroy_user_newer_than': 0,
  31. 'can_destroy_users_with_less_posts_than': 0,
  32. })
  33. role.save()
  34. role = Role(name=_("Guest"), special_role='anonymous')
  35. pickle_permissions(role,
  36. {
  37. # account perms
  38. 'name_changes_allowed': 0,
  39. 'name_changes_expire': 0,
  40. 'can_use_signature': False,
  41. 'allow_signature_links': False,
  42. 'allow_signature_images': False,
  43. # profiles perms
  44. 'can_search_users': True,
  45. 'can_see_users_emails': False,
  46. 'can_see_users_ips': False,
  47. 'can_see_hidden_users': False,
  48. # destroy users perms
  49. 'can_destroy_user_newer_than': 0,
  50. 'can_destroy_users_with_less_posts_than': 0,
  51. })
  52. role.save()
  53. role = Role(name=_("Moderator"))
  54. pickle_permissions(role,
  55. {
  56. # account perms
  57. 'name_changes_allowed': 5,
  58. 'name_changes_expire': 14,
  59. 'can_use_signature': True,
  60. 'allow_signature_links': True,
  61. 'allow_signature_images': False,
  62. # profiles perms
  63. 'can_search_users': True,
  64. 'can_see_users_emails': True,
  65. 'can_see_users_ips': True,
  66. 'can_see_hidden_users': True,
  67. # destroy users perms
  68. 'can_destroy_user_newer_than': 0,
  69. 'can_destroy_users_with_less_posts_than': 0,
  70. })
  71. role.save()
  72. role = Role(name=_("Spam accounts destroyer"))
  73. pickle_permissions(role,
  74. {
  75. # destroy users perms
  76. 'can_destroy_user_newer_than': 2,
  77. 'can_destroy_users_with_less_posts_than': 20,
  78. })
  79. role.save()
  80. class Migration(migrations.Migration):
  81. dependencies = [
  82. ('misago_acl', '0002_acl_version_tracker'),
  83. ]
  84. operations = [
  85. migrations.RunPython(create_default_roles),
  86. ]