improve & fix permissions forms
This commit is contained in:
parent
be02d3657d
commit
90a3e749e5
2 changed files with 13 additions and 7 deletions
|
@ -26,6 +26,9 @@ class ProjectPermissionField(PermissionField):
|
|||
@python_2_unicode_compatible
|
||||
class PermissionModel(models.Model):
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
GRANTEE_USER = 0
|
||||
GRANTEE_GROUP = 1
|
||||
GRANTEE_TEAM = 2
|
||||
|
@ -37,7 +40,7 @@ class PermissionModel(models.Model):
|
|||
|
||||
grantee_type = models.IntegerField(choices=GRANTEE_TYPE,
|
||||
default=GRANTEE_USER, verbose_name="Grantee type")
|
||||
grantee_id = models.IntegerField(blank=True)
|
||||
grantee_id = models.IntegerField()
|
||||
|
||||
def get_grantee(self):
|
||||
if self.grantee_type == self.GRANTEE_USER:
|
||||
|
@ -62,9 +65,6 @@ class PermissionModel(models.Model):
|
|||
|
||||
grantee = property(get_grantee, set_grantee)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def granted_to(self, user):
|
||||
if not user.is_authenticated():
|
||||
return False
|
||||
|
|
|
@ -21,9 +21,12 @@ def global_perm_list(request):
|
|||
def global_perm_edit(request, id=None):
|
||||
if id:
|
||||
perm = get_object_or_404(GlobalPermission, id=id)
|
||||
form = GlobalPermissionForm(request.POST or None, instance=perm)
|
||||
else:
|
||||
perm = None
|
||||
form = GlobalPermissionForm(request.POST or None, instance=perm)
|
||||
form = GlobalPermissionForm(request.POST or None, initial={
|
||||
'grantee_id': 0,
|
||||
})
|
||||
if request.method == 'POST' and form.is_valid():
|
||||
form.save()
|
||||
if id:
|
||||
|
@ -76,10 +79,13 @@ def project_perm_list(request, project):
|
|||
def project_perm_edit(request, project, id=None):
|
||||
if id:
|
||||
perm = get_object_or_404(ProjectPermission, project=project, id=id)
|
||||
form = ProjectPermissionForm(request.POST or None, instance=perm)
|
||||
else:
|
||||
perm = None
|
||||
form = ProjectPermissionForm(request.POST or None, instance=perm,
|
||||
initial={'project': project.id})
|
||||
form = ProjectPermissionForm(request.POST or None, initial={
|
||||
'project': project.id,
|
||||
'grantee_id': 0,
|
||||
})
|
||||
if request.method == 'POST' and form.is_valid():
|
||||
if not form.cleaned_data['project'] == project:
|
||||
raise PermissionDenied()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue