Reordering permissions on models

remotes/origin/enhancement/email-actions
Jesús Espino 2013-03-30 12:11:01 +01:00
parent 3245393b55
commit 1c80e4f6f9
5 changed files with 58 additions and 53 deletions

View File

@ -30,4 +30,6 @@ class Document(models.Model):
permissions = ( permissions = (
('can_download_from_my_projects', 'Can download the documents from my projects'), ('can_download_from_my_projects', 'Can download the documents from my projects'),
('can_download_from_other_projects', 'Can download the documents from other projects'), ('can_download_from_other_projects', 'Can download the documents from other projects'),
('can_change_owned_documents', 'Can modify owned documents'),
('can_view_documents', 'Can modify owned documents'),
) )

View File

@ -26,6 +26,12 @@ class Question(models.Model):
blank=True) blank=True)
tags = DictField() tags = DictField()
class Meta:
permissions = (
('can_reply_question', 'Can reply questions'),
('can_change_owned_question', 'Can modify owned questions'),
)
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.slug: if not self.slug:
self.slug = slugify_uniquely(self.subject, self.__class__) self.slug = slugify_uniquely(self.subject, self.__class__)

View File

@ -136,53 +136,9 @@ class Project(models.Model):
class Meta: class Meta:
permissions = ( permissions = (
# global permissions ('can_list_projects', 'Can list projects'),
('list_projects', 'Can list projects'), ('can_view_project', 'Can view project'),
('list_my_projects', 'Can list my projects'), ('can_manage_users', 'Can manage users'),
# 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'),
('view_milestone', 'Can view milestones'),
('delete_milestone', 'Can delete milestones'),
('manage_users', 'Can manage users'),
) )
def __unicode__(self): def __unicode__(self):
@ -226,6 +182,9 @@ class Milestone(models.Model):
class Meta: class Meta:
ordering = ['-created_date'] ordering = ['-created_date']
unique_together = ('name', 'project') unique_together = ('name', 'project')
permissions = (
('can_view_milestone', 'Can view milestones'),
)
@property @property
def total_points(self): def total_points(self):
@ -273,6 +232,13 @@ class UserStory(models.Model):
class Meta: class Meta:
ordering = ['order'] ordering = ['order']
unique_together = ('ref', 'project') unique_together = ('ref', 'project')
permissions = (
('can_comment_userstory', 'Can comment user stories'),
('can_view_userstory', 'Can view user stories'),
('can_change_owned_userstory', 'Can modify owned user stories'),
('can_add_userstory_to_milestones', 'Can add user stories to milestones'),
)
def __repr__(self): def __repr__(self):
return u"<UserStory %s>" % (self.id) return u"<UserStory %s>" % (self.id)
@ -347,6 +313,16 @@ class Task(models.Model):
class Meta: class Meta:
unique_together = ('ref', 'project') unique_together = ('ref', 'project')
permissions = [
('can_comment_task', 'Can comment tasks'),
('can_change_owned_task', 'Can modify owned tasks'),
('can_change_assigned_task', 'Can modify assigned tasks'),
('can_assign_task_to_other', 'Can assign tasks to others'),
('can_assign_task_to_myself', 'Can assign tasks to myself'),
('can_change_task_state', 'Can change the task state'),
('can_add_task_to_us', 'Can add tasks to a user story'),
]
def __unicode__(self): def __unicode__(self):
return self.subject return self.subject
@ -395,6 +371,14 @@ class Issue(models.Model):
class Meta: class Meta:
unique_together = ('ref', 'project') unique_together = ('ref', 'project')
permissions = [
('can_comment_issue', 'Can comment issues'),
('can_change_owned_issue', 'Can modify owned issues'),
('can_change_assigned_issue', 'Can modify assigned issues'),
('can_assign_issue_to_other', 'Can assign issues to others'),
('can_assign_issue_to_myself', 'Can assign issues to myself'),
('can_change_issue_state', 'Can change the issue state'),
]
def __unicode__(self): def __unicode__(self):
return self.subject return self.subject

View File

@ -40,15 +40,22 @@ class BaseDetailPermission(permissions.BasePermission):
return False return False
class ProjectDetailPermission(BaseDetailPermission): class ProjectDetailPermission(BaseDetailPermission):
get_permission = "view_projects" get_permission = "can_view_project"
put_permission = "modify_projects" put_permission = "can_change_project"
delete_permission = "delete_projects" delete_permission = "can_delete_project"
safe_methods = ['HEAD', 'OPTIONS'] safe_methods = ['HEAD', 'OPTIONS']
path_to_project = [] path_to_project = []
class MilestoneDetailPermission(BaseDetailPermission): class MilestoneDetailPermission(BaseDetailPermission):
get_permission = "view_milestone" get_permission = "can_view_milestone"
put_permission = "modify_milestone" put_permission = "can_change_milestone"
delete_permission = "delete_milestone" delete_permission = "can_delete_milestone"
safe_methods = ['HEAD', 'OPTIONS']
path_to_project = ['project']
class UserStoryDetailPermission(BaseDetailPermission):
get_permission = "can_view_userstory"
put_permission = "can_change_userstory"
delete_permission = "can_delete_userstory"
safe_methods = ['HEAD', 'OPTIONS'] safe_methods = ['HEAD', 'OPTIONS']
path_to_project = ['project'] path_to_project = ['project']

View File

@ -16,6 +16,12 @@ class WikiPage(models.Model):
created_date = models.DateTimeField(auto_now_add=True) created_date = models.DateTimeField(auto_now_add=True)
tags = DictField() tags = DictField()
class Meta:
permissions = (
('can_view_wikipage', 'Can modify owned wiki pages'),
('can_change_owned_wikipage', 'Can modify owned wiki pages'),
)
class WikiPageAttachment(models.Model): class WikiPageAttachment(models.Model):
wikipage = models.ForeignKey('WikiPage', related_name='attachments') wikipage = models.ForeignKey('WikiPage', related_name='attachments')