merge user / group / team permissions
This commit is contained in:
parent
f0c6691df2
commit
81df233d5a
6 changed files with 61 additions and 43 deletions
|
@ -26,14 +26,14 @@ def profile(request):
|
|||
# Users #
|
||||
#########
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_list(request):
|
||||
return render(request, 'accounts/user_list.html', {
|
||||
'users': User.objects.all(),
|
||||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_details(request, user):
|
||||
tab = request.session.pop('user-tab', 'group')
|
||||
return render(request, 'accounts/user_details.html', {
|
||||
|
@ -43,7 +43,7 @@ def user_details(request, user):
|
|||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_edit(request, user=None):
|
||||
|
||||
if user:
|
||||
|
@ -64,7 +64,7 @@ def user_edit(request, user=None):
|
|||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_activate(request, user):
|
||||
user = get_object_or_404(User, id=user)
|
||||
if user.is_active:
|
||||
|
@ -76,7 +76,7 @@ def user_activate(request, user):
|
|||
return redirect('show-user', user.id)
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_disable(request, user):
|
||||
user = get_object_or_404(User, id=user)
|
||||
if user.is_active:
|
||||
|
@ -89,7 +89,7 @@ def user_disable(request, user):
|
|||
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_delete(request, user):
|
||||
user = get_object_or_404(User, id=user)
|
||||
user.delete()
|
||||
|
@ -97,7 +97,7 @@ def user_delete(request, user):
|
|||
return redirect('list-user')
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_add_group(request, user):
|
||||
user = get_object_or_404(User, id=user)
|
||||
if request.method == 'POST':
|
||||
|
@ -135,7 +135,7 @@ def user_add_group(request, user):
|
|||
return JsonResponse(response, safe=False)
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_remove_group(request, user, group):
|
||||
user = get_object_or_404(User, pk=user)
|
||||
group = get_object_or_404(Group, pk=group)
|
||||
|
@ -144,7 +144,7 @@ def user_remove_group(request, user, group):
|
|||
return HttpResponse()
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_add_team(request, user):
|
||||
user = get_object_or_404(User, id=user)
|
||||
if request.method == 'POST':
|
||||
|
@ -184,7 +184,7 @@ def user_add_team(request, user):
|
|||
return JsonResponse(response, safe=False)
|
||||
|
||||
|
||||
@project_perm_required('manage_user')
|
||||
@project_perm_required('manage_accounts')
|
||||
def user_remove_team(request, user, team):
|
||||
user = get_object_or_404(User, pk=user)
|
||||
team = get_object_or_404(Team, pk=team)
|
||||
|
@ -201,21 +201,21 @@ def user_remove_team(request, user, team):
|
|||
# Groups #
|
||||
##########
|
||||
|
||||
@project_perm_required('manage_group')
|
||||
@project_perm_required('manage_accounts')
|
||||
def group_list(request):
|
||||
return render(request, 'accounts/group_list.html', {
|
||||
'groups': Group.objects.all(),
|
||||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_group')
|
||||
@project_perm_required('manage_accounts')
|
||||
def group_details(request, group):
|
||||
return render(request, 'accounts/group_details.html', {
|
||||
'group': get_object_or_404(Group, id=group),
|
||||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_group')
|
||||
@project_perm_required('manage_accounts')
|
||||
def group_edit(request, group=None):
|
||||
|
||||
if group:
|
||||
|
@ -237,7 +237,7 @@ def group_edit(request, group=None):
|
|||
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@project_perm_required('manage_group')
|
||||
@project_perm_required('manage_accounts')
|
||||
def group_delete(request, group):
|
||||
group = get_object_or_404(Group, id=group)
|
||||
group.delete()
|
||||
|
@ -245,7 +245,7 @@ def group_delete(request, group):
|
|||
return redirect('list-group')
|
||||
|
||||
|
||||
@project_perm_required('manage_group')
|
||||
@project_perm_required('manage_accounts')
|
||||
def group_add_user(request, group):
|
||||
group = get_object_or_404(Group, id=group)
|
||||
if request.method == 'POST':
|
||||
|
@ -283,7 +283,7 @@ def group_add_user(request, group):
|
|||
return JsonResponse(response, safe=False)
|
||||
|
||||
|
||||
@project_perm_required('manage_group')
|
||||
@project_perm_required('manage_accounts')
|
||||
def group_remove_user(request, group, user):
|
||||
group = get_object_or_404(Group, id=group)
|
||||
user = get_object_or_404(User, id=user)
|
||||
|
@ -296,14 +296,14 @@ def group_remove_user(request, group, user):
|
|||
# Teams #
|
||||
#########
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_list(request):
|
||||
return render(request, 'accounts/team_list.html', {
|
||||
'teams': Team.objects.all(),
|
||||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_details(request, team):
|
||||
tab = request.session.pop('team-tab', 'user')
|
||||
return render(request, 'accounts/team_details.html', {
|
||||
|
@ -312,7 +312,7 @@ def team_details(request, team):
|
|||
})
|
||||
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_edit(request, team=None):
|
||||
|
||||
if team:
|
||||
|
@ -336,7 +336,7 @@ def team_edit(request, team=None):
|
|||
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_delete(request, team):
|
||||
team = get_object_or_404(Team, pk=team)
|
||||
team.delete()
|
||||
|
@ -344,7 +344,7 @@ def team_delete(request, team):
|
|||
return redirect('list-team')
|
||||
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_add_user(request, team):
|
||||
team = get_object_or_404(Team, id=team)
|
||||
if request.method == 'POST':
|
||||
|
@ -386,7 +386,7 @@ def team_add_user(request, team):
|
|||
return JsonResponse(response, safe=False)
|
||||
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_remove_user(request, team, user):
|
||||
team = get_object_or_404(Team, pk=team)
|
||||
user = get_object_or_404(User, pk=user)
|
||||
|
@ -395,7 +395,7 @@ def team_remove_user(request, team, user):
|
|||
return HttpResponse()
|
||||
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_add_group(request, team):
|
||||
team = get_object_or_404(Team, id=team)
|
||||
if request.method == 'POST':
|
||||
|
@ -433,7 +433,7 @@ def team_add_group(request, team):
|
|||
return JsonResponse(response, safe=False)
|
||||
|
||||
|
||||
@project_perm_required('manage_team')
|
||||
@project_perm_required('manage_accounts')
|
||||
def team_remove_group(request, team, group):
|
||||
team = get_object_or_404(Team, pk=team)
|
||||
group = get_object_or_404(Group, pk=group)
|
||||
|
|
32
permissions/migrations/0003_auto_20140830_2304.py
Normal file
32
permissions/migrations/0003_auto_20140830_2304.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('permissions', '0002_auto_20140829_2335'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='globalpermission',
|
||||
old_name='manage_user',
|
||||
new_name='manage_accounts',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='globalpermission',
|
||||
name='manage_group',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='globalpermission',
|
||||
name='manage_team',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='projectpermission',
|
||||
name='project',
|
||||
field=models.ForeignKey(to='tracker.Project'),
|
||||
),
|
||||
]
|
|
@ -91,9 +91,7 @@ class GlobalPermission(PermissionModel):
|
|||
delete_project = models.BooleanField(default=False)
|
||||
|
||||
manage_settings = models.BooleanField(default=False)
|
||||
manage_user = models.BooleanField(default=False)
|
||||
manage_group = models.BooleanField(default=False)
|
||||
manage_team = models.BooleanField(default=False)
|
||||
manage_accounts = models.BooleanField(default=False)
|
||||
manage_global_permission = models.BooleanField(default=False)
|
||||
|
||||
# Project permissions, given on ALL projects
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if request.user.is_authenticated %}
|
||||
{% if perm.manage_settings or perm.manage_user or perm_manage_group or perm.manage_team or perm.manage_global_permission %}
|
||||
{% if perm.manage_settings or perm.manage_accounts or perm.manage_global_permission %}
|
||||
<li{% block admintab %}{% endblock %}><a href="{% url 'admin' %}" rel="tooltip" data-toggle="tooltip" data-placement="bottom" title="Administration"><span class="glyphicon glyphicon-cog"></span></a></li>
|
||||
{% endif %}
|
||||
<li{% block profiletab %}{% endblock %}><a href="{% url 'profile' %}" rel="tooltip" data-toggle="tooltip" data-placement="bottom" title="Profile"><span class="glyphicon glyphicon-user"></span> {{ request.user }}</a></li>
|
||||
|
|
|
@ -10,13 +10,9 @@
|
|||
{% if perm.manage_settings %}
|
||||
<li{% block settingtab %}{% endblock %}><a href="{% url 'settings' %}"><b>Settings</b></a></li>
|
||||
{% endif %}
|
||||
{% if perm.manage_user %}
|
||||
{% if perm.manage_accounts %}
|
||||
<li{% block usertab %}{% endblock %}><a href="{% url 'list-user' %}"><b>User</b></a></li>
|
||||
{% endif %}
|
||||
{% if perm.manage_group %}
|
||||
<li{% block grouptab %}{% endblock %}><a href="{% url 'list-group' %}"><b>Group</b></a></li>
|
||||
{% endif %}
|
||||
{% if perm.manage_team %}
|
||||
<li{% block teamtab %}{% endblock %}><a href="{% url 'list-team' %}"><b>Team</b></a></li>
|
||||
{% endif %}
|
||||
{% if perm.manage_global_permission %}
|
||||
|
|
|
@ -55,16 +55,8 @@
|
|||
<a href="javascript:void(0);" class="pull-right perm-toggle" data-href="{% url 'toggle-global-permission' perm.id 'manage-settings' %}">{{ perm.manage_settings|boolean }}</a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
Manage users
|
||||
<a href="javascript:void(0);" class="pull-right perm-toggle" data-href="{% url 'toggle-global-permission' perm.id 'manage-user' %}">{{ perm.manage_user|boolean }}</a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
Manage groups
|
||||
<a href="javascript:void(0);" class="pull-right perm-toggle" data-href="{% url 'toggle-global-permission' perm.id 'manage-group' %}">{{ perm.manage_group|boolean }}</a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
Manage teams
|
||||
<a href="javascript:void(0);" class="pull-right perm-toggle" data-href="{% url 'toggle-global-permission' perm.id 'manage-team' %}">{{ perm.manage_team|boolean }}</a>
|
||||
Manage users, groups and teams
|
||||
<a href="javascript:void(0);" class="pull-right perm-toggle" data-href="{% url 'toggle-global-permission' perm.id 'manage-accounts' %}">{{ perm.manage_accounts|boolean }}</a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
Manage permissions
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue