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
|
@python_2_unicode_compatible
|
||||||
class PermissionModel(models.Model):
|
class PermissionModel(models.Model):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
abstract = True
|
||||||
|
|
||||||
GRANTEE_USER = 0
|
GRANTEE_USER = 0
|
||||||
GRANTEE_GROUP = 1
|
GRANTEE_GROUP = 1
|
||||||
GRANTEE_TEAM = 2
|
GRANTEE_TEAM = 2
|
||||||
|
@ -37,7 +40,7 @@ class PermissionModel(models.Model):
|
||||||
|
|
||||||
grantee_type = models.IntegerField(choices=GRANTEE_TYPE,
|
grantee_type = models.IntegerField(choices=GRANTEE_TYPE,
|
||||||
default=GRANTEE_USER, verbose_name="Grantee type")
|
default=GRANTEE_USER, verbose_name="Grantee type")
|
||||||
grantee_id = models.IntegerField(blank=True)
|
grantee_id = models.IntegerField()
|
||||||
|
|
||||||
def get_grantee(self):
|
def get_grantee(self):
|
||||||
if self.grantee_type == self.GRANTEE_USER:
|
if self.grantee_type == self.GRANTEE_USER:
|
||||||
|
@ -62,9 +65,6 @@ class PermissionModel(models.Model):
|
||||||
|
|
||||||
grantee = property(get_grantee, set_grantee)
|
grantee = property(get_grantee, set_grantee)
|
||||||
|
|
||||||
class Meta:
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
def granted_to(self, user):
|
def granted_to(self, user):
|
||||||
if not user.is_authenticated():
|
if not user.is_authenticated():
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -21,9 +21,12 @@ def global_perm_list(request):
|
||||||
def global_perm_edit(request, id=None):
|
def global_perm_edit(request, id=None):
|
||||||
if id:
|
if id:
|
||||||
perm = get_object_or_404(GlobalPermission, id=id)
|
perm = get_object_or_404(GlobalPermission, id=id)
|
||||||
|
form = GlobalPermissionForm(request.POST or None, instance=perm)
|
||||||
else:
|
else:
|
||||||
perm = None
|
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():
|
if request.method == 'POST' and form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
if id:
|
if id:
|
||||||
|
@ -76,10 +79,13 @@ def project_perm_list(request, project):
|
||||||
def project_perm_edit(request, project, id=None):
|
def project_perm_edit(request, project, id=None):
|
||||||
if id:
|
if id:
|
||||||
perm = get_object_or_404(ProjectPermission, project=project, id=id)
|
perm = get_object_or_404(ProjectPermission, project=project, id=id)
|
||||||
|
form = ProjectPermissionForm(request.POST or None, instance=perm)
|
||||||
else:
|
else:
|
||||||
perm = None
|
perm = None
|
||||||
form = ProjectPermissionForm(request.POST or None, instance=perm,
|
form = ProjectPermissionForm(request.POST or None, initial={
|
||||||
initial={'project': project.id})
|
'project': project.id,
|
||||||
|
'grantee_id': 0,
|
||||||
|
})
|
||||||
if request.method == 'POST' and form.is_valid():
|
if request.method == 'POST' and form.is_valid():
|
||||||
if not form.cleaned_data['project'] == project:
|
if not form.cleaned_data['project'] == project:
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue