SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 478cbfbe authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Moved permissions from Meta of Contributor to management command add_groups_and_permissions

parent 5d7860ac
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,6 @@ from django.utils import timezone
from django.db import models
from django.contrib.auth.models import User
from .models import *
SCIPOST_JOURNALS = (
......
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from django.contrib.auth.models import User, Permission
from scipost.models import *
......@@ -24,3 +24,5 @@ admin.site.register(RegistrationInvitation)
admin.site.register(AuthorshipClaim)
#admin.site.register(Opinion)
admin.site.register(Permission)
from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from scipost.models import Contributor
class Command(BaseCommand):
help = 'Defines groups and permissions'
def handle(self, *args, **options):
# Create Groups
SciPostAdmin, created = Group.objects.get_or_create(name='SciPost Administrators')
AdvisoryBoard, created = Group.objects.get_or_create(name='Advisory Board')
EditorialCollege, created = Group.objects.get_or_create(name='Editorial College')
VettingEditors, created = Group.objects.get_or_create(name='Vetting Editors')
RegisteredContributors, created = Group.objects.get_or_create(name='Registered Contributors')
# Create Permissions
content_type = ContentType.objects.get_for_model(Contributor)
# Registration
can_manage_registration_invitations = Permission.objects.get(codename='can_manage_registration_invitations')
can_vet_registration_requests = Permission.objects.get(codename='can_vet_registration_requests')
can_manage_registration_invitations, created = Permission.objects.get_or_create(
codename='can_manage_registration_invitations',
name= 'Can manage registration invitations',
content_type=content_type)
can_vet_registration_requests, created = Permission.objects.get_or_create(
codename='can_vet_registration_requests',
name= 'Can vet registration requests',
content_type=content_type)
# Vetting of simple objects
can_vet_commentary_requests = Permission.objects.get(codename='can_vet_commentary_requests')
can_vet_thesislink_requests = Permission.objects.get(codename='can_vet_thesislink_requests')
can_vet_authorship_claims = Permission.objects.get(codename='can_vet_authorship_claims')
can_vet_comments = Permission.objects.get(codename='can_vet_comments')
can_vet_commentary_requests, created = Permission.objects.get_or_create(
codename='can_vet_commentary_requests',
name= 'Can vet Commentary page requests',
content_type=content_type)
can_vet_thesislink_requests, created = Permission.objects.get_or_create(
codename='can_vet_thesislink_requests',
name= 'Can vet Thesis Link requests',
content_type=content_type)
can_vet_authorship_claims, created = Permission.objects.get_or_create(
codename='can_vet_authorship_claims',
name= 'Can vet Authorship claims',
content_type=content_type)
can_vet_comments, created = Permission.objects.get_or_create(
codename='can_vet_comments',
name= 'Can vet submitted Comments',
content_type=content_type)
# Submission handling
can_process_incoming_submissions = Permission.objects.get(codename='can_process_incoming_submissions')
can_vet_submitted_reports = Permission.objects.get(codename='can_vet_submitted_reports')
can_process_incoming_submissions, created = Permission.objects.get_or_create(
codename='can_process_incoming_submissions',
name= 'Can process incoming Submissions',
content_type=content_type)
can_vet_submitted_reports, created = Permission.objects.get_or_create(
codename='can_vet_submitted_reports',
name='Can vet submitted Reports',
content_type=content_type)
# Assign permissions to groups
SciPostAdmin.permissions.add(can_manage_registration_invitations,
can_vet_registration_requests,
can_vet_commentary_requests, can_vet_thesislink_requests,
can_vet_authorship_claims, can_vet_comments,
can_vet_commentary_requests,
can_vet_thesislink_requests,
can_vet_authorship_claims,
can_vet_comments,
)
VettingEditors.permissions.add(can_vet_commentary_requests, can_vet_thesislink_requests,
can_vet_authorship_claims, can_vet_comments,
VettingEditors.permissions.add(can_vet_commentary_requests,
can_vet_thesislink_requests,
can_vet_authorship_claims,
can_vet_comments,
)
self.stdout.write(self.style.SUCCESS('Successfully created groups and permissions'))
......@@ -56,17 +56,6 @@ class Contributor(models.Model):
personalwebpage = models.URLField(verbose_name='personal web page', blank=True)
vetted_by = models.OneToOneField('self', blank=True, null=True)
class Meta:
permissions = (
('can_manage_registration_invitations', 'Can manage registration invitations'),
('can_vet_registration_requests', 'Can vet registration requests'),
('can_vet_commentary_requests', 'Can vet Commentary page requests'),
('can_vet_thesislink_requests', 'Can vet Thesis Link requests'),
('can_vet_authorship_claims', 'Can vet Authorship claims'),
('can_vet_comments', 'Can vet submitted comments'),
('can_process_incoming_submissions', 'Can process incoming Submissions'),
('can_vet_submitted_reports', 'Can vet submitted Reports'),
)
def __str__ (self):
return self.user.last_name + ', ' + self.user.first_name
......
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import datetime
import hashlib
import random
......
......@@ -4,9 +4,10 @@ from django.contrib.auth.models import User
from .models import *
from scipost.models import *
from journals.models import *
from scipost.models import Contributor
from scipost.models import SCIPOST_DISCIPLINES
from journals.models import SCIPOST_JOURNALS_SUBMIT, SCIPOST_JOURNALS_DOMAINS, SCIPOST_JOURNALS_SPECIALIZATIONS
from journals.models import journals_submit_dict, journals_domains_dict, journals_spec_dict
###############
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment