123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- from django.db import migrations
- _ = lambda s: s
- def create_default_roles(apps, schema_editor):
- Role = apps.get_model("misago_acl", "Role")
- Role.objects.create(
- name=_("Member"),
- special_role="authenticated",
- permissions={
- # account
- "misago.users.permissions.account": {
- "name_changes_allowed": 2,
- "name_changes_expire": 180,
- "can_have_signature": 0,
- "allow_signature_links": 0,
- "allow_signature_images": 0,
- },
- # profiles
- "misago.users.permissions.profiles": {
- "can_browse_users_list": 1,
- "can_search_users": 1,
- "can_follow_users": 1,
- "can_be_blocked": 1,
- "can_see_users_name_history": 0,
- "can_see_users_emails": 0,
- "can_see_users_ips": 0,
- "can_see_hidden_users": 0,
- },
- # attachments
- "misago.threads.permissions.attachments": {
- "max_attachment_size": 4 * 1024,
- "can_download_other_users_attachments": True,
- },
- # polls
- "misago.threads.permissions.polls": {
- "can_start_polls": 1,
- "can_edit_polls": 1,
- },
- # search
- "misago.search.permissions": {"can_search": 1},
- },
- )
- Role.objects.create(
- name=_("Guest"),
- special_role="anonymous",
- permissions={
- # account
- "misago.users.permissions.account": {
- "name_changes_allowed": 0,
- "name_changes_expire": 0,
- "can_have_signature": 0,
- "allow_signature_links": 0,
- "allow_signature_images": 0,
- },
- # profiles
- "misago.users.permissions.profiles": {
- "can_browse_users_list": 1,
- "can_search_users": 1,
- "can_see_users_name_history": 0,
- "can_see_users_emails": 0,
- "can_see_users_ips": 0,
- "can_see_hidden_users": 0,
- },
- # attachments
- "misago.threads.permissions.attachments": {
- "can_download_other_users_attachments": True
- },
- # search
- "misago.search.permissions": {"can_search": 1},
- },
- )
- Role.objects.create(
- name=_("Moderator"),
- permissions={
- # account
- "misago.users.permissions.account": {
- "name_changes_allowed": 5,
- "name_changes_expire": 14,
- "can_have_signature": 1,
- "allow_signature_links": 1,
- "allow_signature_images": 0,
- },
- # profiles
- "misago.users.permissions.profiles": {
- "can_browse_users_list": 1,
- "can_search_users": 1,
- "can_be_blocked": 0,
- "can_see_users_name_history": 1,
- "can_see_ban_details": 1,
- "can_see_users_emails": 1,
- "can_see_users_ips": 1,
- "can_see_hidden_users": 1,
- },
- # attachments
- "misago.threads.permissions.attachments": {
- "max_attachment_size": 8 * 1024,
- "can_download_other_users_attachments": True,
- "can_delete_other_users_attachments": True,
- },
- # polls
- "misago.threads.permissions.polls": {
- "can_start_polls": 2,
- "can_edit_polls": 2,
- "can_delete_polls": 2,
- "can_always_see_poll_voters": 1,
- },
- # moderation
- "misago.threads.permissions.threads": {
- "can_see_unapproved_content_lists": True,
- "can_see_reported_content_lists": True,
- "can_omit_flood_protection": True,
- },
- "misago.users.permissions.moderation": {
- "can_warn_users": 1,
- "can_moderate_avatars": 1,
- "can_moderate_signatures": 1,
- "can_moderate_profile_details": 1,
- },
- # delete users
- "misago.users.permissions.delete": {
- "can_delete_users_newer_than": 0,
- "can_delete_users_with_less_posts_than": 0,
- },
- },
- )
- Role.objects.create(
- name=_("Renaming users"),
- permissions={
- # rename users
- "misago.users.permissions.moderation": {"can_rename_users": 1}
- },
- )
- Role.objects.create(
- name=_("Banning users"),
- permissions={
- # ban users
- "misago.users.permissions.profiles": {"can_see_ban_details": 1},
- "misago.users.permissions.moderation": {
- "can_ban_users": 1,
- "max_ban_length": 14,
- "can_lift_bans": 1,
- "max_lifted_ban_length": 14,
- },
- },
- )
- Role.objects.create(
- name=_("Deleting users"),
- permissions={
- # delete users
- "misago.users.permissions.delete": {
- "can_delete_users_newer_than": 3,
- "can_delete_users_with_less_posts_than": 7,
- }
- },
- )
- Role.objects.create(
- name=_("Can't be blocked"),
- permissions={
- # profiles
- "misago.users.permissions.profiles": {"can_be_blocked": 0}
- },
- )
- Role.objects.create(
- name=_("Private threads"),
- permissions={
- # private threads
- "misago.threads.permissions.privatethreads": {
- "can_use_private_threads": 1,
- "can_start_private_threads": 1,
- "max_private_thread_participants": 3,
- "can_add_everyone_to_private_threads": 0,
- "can_report_private_threads": 1,
- "can_moderate_private_threads": 0,
- }
- },
- )
- Role.objects.create(
- name=_("Private threads moderator"),
- permissions={
- # private threads
- "misago.threads.permissions.privatethreads": {
- "can_use_private_threads": 1,
- "can_start_private_threads": 1,
- "max_private_thread_participants": 15,
- "can_add_everyone_to_private_threads": 1,
- "can_report_private_threads": 1,
- "can_moderate_private_threads": 1,
- }
- },
- )
- class Migration(migrations.Migration):
- dependencies = [("misago_acl", "0002_acl_version_tracker")]
- operations = [migrations.RunPython(create_default_roles)]
|