Adding an initial list of permissions

remotes/origin/enhancement/email-actions
Jesús Espino 2013-03-22 00:24:33 +01:00
parent 005029cd1e
commit e0e41c7c95
3 changed files with 56 additions and 100 deletions

View File

@ -4,30 +4,7 @@
"model": "profile.role",
"fields": {
"name": "Developer",
"slug": "developer",
"project_view": true,
"project_edit": false,
"project_delete": false,
"userstory_view": true,
"userstory_create": true,
"userstory_edit": true,
"userstory_delete": true,
"milestone_view": true,
"milestone_create": true,
"milestone_edit": true,
"milestone_delete": true,
"task_view": true,
"task_create": true,
"task_edit": true,
"task_delete": true,
"wiki_view": true,
"wiki_create": true,
"wiki_edit": true,
"wiki_delete": true,
"question_view": true,
"question_create": true,
"question_edit": true,
"question_delete": true
"slug": "developer"
}
},
{
@ -35,30 +12,7 @@
"model": "profile.role",
"fields": {
"name": "Product Owner",
"slug": "product-owner",
"project_view": true,
"project_edit": false,
"project_delete": false,
"userstory_view": true,
"userstory_create": true,
"userstory_edit": true,
"userstory_delete": true,
"milestone_view": true,
"milestone_create": false,
"milestone_edit": false,
"milestone_delete": false,
"task_view": true,
"task_create": false,
"task_edit": false,
"task_delete": false,
"wiki_view": true,
"wiki_create": true,
"wiki_edit": true,
"wiki_delete": true,
"question_view": true,
"question_create": true,
"question_edit": true,
"question_delete": true
"slug": "product-owner"
}
},
{
@ -66,30 +20,7 @@
"model": "profile.role",
"fields": {
"name": "Observer",
"slug": "observer",
"project_view": true,
"project_edit": false,
"project_delete": false,
"userstory_view": true,
"userstory_create": false,
"userstory_edit": false,
"userstory_delete": false,
"milestone_view": true,
"milestone_create": false,
"milestone_edit": false,
"milestone_delete": false,
"task_view": true,
"task_create": false,
"task_edit": false,
"task_delete": false,
"wiki_view": true,
"wiki_create": false,
"wiki_edit": false,
"wiki_delete": false,
"question_view": true,
"question_create": false,
"question_edit": false,
"question_delete": false
"slug": "observer"
}
}
]

View File

@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import Permission
class Profile(models.Model):
@ -21,34 +23,8 @@ class Profile(models.Model):
class Role(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=250, unique=True, blank=True)
project_view = models.BooleanField(default=True)
project_edit = models.BooleanField(default=False)
project_delete = models.BooleanField(default=False)
userstory_view = models.BooleanField(default=True)
userstory_create = models.BooleanField(default=False)
userstory_edit = models.BooleanField(default=False)
userstory_delete = models.BooleanField(default=False)
milestone_view = models.BooleanField(default=True)
milestone_create = models.BooleanField(default=False)
milestone_edit = models.BooleanField(default=False)
milestone_delete = models.BooleanField(default=False)
task_view = models.BooleanField(default=True)
task_create = models.BooleanField(default=False)
task_edit = models.BooleanField(default=False)
task_delete = models.BooleanField(default=False)
wiki_view = models.BooleanField(default=True)
wiki_create = models.BooleanField(default=False)
wiki_edit = models.BooleanField(default=False)
wiki_delete = models.BooleanField(default=False)
question_view = models.BooleanField(default=True)
question_create = models.BooleanField(default=True)
question_edit = models.BooleanField(default=True)
question_delete = models.BooleanField(default=False)
document_view = models.BooleanField(default=True)
document_create = models.BooleanField(default=True)
document_edit = models.BooleanField(default=True)
document_delete = models.BooleanField(default=True)
permissions = models.ManyToManyField(Permission,
verbose_name=_('permissions'), blank=True)
from . import sigdispatch

View File

@ -75,6 +75,55 @@ class Project(models.Model):
objects = ProjectManager()
class Meta:
permissions = (
# global permissions
('list_projects', 'Can list projects'),
('list_my_projects', 'Can list my projects'),
# per project permissions
('view_projects', 'Can view projects'),
('create_tasks', 'Can create tasks'),
('comment_tasks', 'Can comment tasks'),
('modify_tasks', 'Can modify tasks'),
('delete_task', 'Can delete tasks'),
('modify_owned_tasks', 'Can modify owned tasks'),
('modify_assigned_tasks', 'Can modify assigned tasks'),
('assign_tasks_to_others', 'Can assign tasks to others'),
('assign_tasks_to_myself', 'Can assign tasks to myself'),
('change_tasks_state', 'Can change the task state'),
('add_tasks_to_us', 'Can add tasks to a user story'),
('create_us', 'Can create user stories'),
('comment_us', 'Can comment user stories'),
('modify_us', 'Can modify user stories'),
('delete_us', 'Can delete user stories'),
('modify_owned_us', 'Can modify owned user stories'),
('add_us_to_milestones', 'Can add user stories to milestones'),
('create_questions', 'Can create questions'),
('reply_questions', 'Can reply questions'),
('modify_questions', 'Can modify questions'),
('delete_questions', 'Can delete questions'),
('modify_owned_questions', 'Can modify owned questions'),
('create_wiki_page', 'Can create wiki pages'),
('modify_wiki_page', 'Can modify wiki pages'),
('delete_wiki_page', 'Can delete wiki pages'),
('modify_owned_wiki_page', 'Can modify owned wiki pages'),
('create_documents', 'Can create documents'),
('modify_documents', 'Can modify documents'),
('delete_documents', 'Can delete documents'),
('modify_owned_documents', 'Can modify owned documents'),
('create_milestone', 'Can create milestones'),
('modify_milestone', 'Can modify milestones'),
('manage_users', 'Can manage users'),
)
def __unicode__(self):
return self.name