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 #
|
# Users #
|
||||||
#########
|
#########
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_list(request):
|
def user_list(request):
|
||||||
return render(request, 'accounts/user_list.html', {
|
return render(request, 'accounts/user_list.html', {
|
||||||
'users': User.objects.all(),
|
'users': User.objects.all(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_details(request, user):
|
def user_details(request, user):
|
||||||
tab = request.session.pop('user-tab', 'group')
|
tab = request.session.pop('user-tab', 'group')
|
||||||
return render(request, 'accounts/user_details.html', {
|
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):
|
def user_edit(request, user=None):
|
||||||
|
|
||||||
if user:
|
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):
|
def user_activate(request, user):
|
||||||
user = get_object_or_404(User, id=user)
|
user = get_object_or_404(User, id=user)
|
||||||
if user.is_active:
|
if user.is_active:
|
||||||
|
@ -76,7 +76,7 @@ def user_activate(request, user):
|
||||||
return redirect('show-user', user.id)
|
return redirect('show-user', user.id)
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_disable(request, user):
|
def user_disable(request, user):
|
||||||
user = get_object_or_404(User, id=user)
|
user = get_object_or_404(User, id=user)
|
||||||
if user.is_active:
|
if user.is_active:
|
||||||
|
@ -89,7 +89,7 @@ def user_disable(request, user):
|
||||||
|
|
||||||
|
|
||||||
@require_http_methods(["POST"])
|
@require_http_methods(["POST"])
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_delete(request, user):
|
def user_delete(request, user):
|
||||||
user = get_object_or_404(User, id=user)
|
user = get_object_or_404(User, id=user)
|
||||||
user.delete()
|
user.delete()
|
||||||
|
@ -97,7 +97,7 @@ def user_delete(request, user):
|
||||||
return redirect('list-user')
|
return redirect('list-user')
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_add_group(request, user):
|
def user_add_group(request, user):
|
||||||
user = get_object_or_404(User, id=user)
|
user = get_object_or_404(User, id=user)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -135,7 +135,7 @@ def user_add_group(request, user):
|
||||||
return JsonResponse(response, safe=False)
|
return JsonResponse(response, safe=False)
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_remove_group(request, user, group):
|
def user_remove_group(request, user, group):
|
||||||
user = get_object_or_404(User, pk=user)
|
user = get_object_or_404(User, pk=user)
|
||||||
group = get_object_or_404(Group, pk=group)
|
group = get_object_or_404(Group, pk=group)
|
||||||
|
@ -144,7 +144,7 @@ def user_remove_group(request, user, group):
|
||||||
return HttpResponse()
|
return HttpResponse()
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_add_team(request, user):
|
def user_add_team(request, user):
|
||||||
user = get_object_or_404(User, id=user)
|
user = get_object_or_404(User, id=user)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -184,7 +184,7 @@ def user_add_team(request, user):
|
||||||
return JsonResponse(response, safe=False)
|
return JsonResponse(response, safe=False)
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_user')
|
@project_perm_required('manage_accounts')
|
||||||
def user_remove_team(request, user, team):
|
def user_remove_team(request, user, team):
|
||||||
user = get_object_or_404(User, pk=user)
|
user = get_object_or_404(User, pk=user)
|
||||||
team = get_object_or_404(Team, pk=team)
|
team = get_object_or_404(Team, pk=team)
|
||||||
|
@ -201,21 +201,21 @@ def user_remove_team(request, user, team):
|
||||||
# Groups #
|
# Groups #
|
||||||
##########
|
##########
|
||||||
|
|
||||||
@project_perm_required('manage_group')
|
@project_perm_required('manage_accounts')
|
||||||
def group_list(request):
|
def group_list(request):
|
||||||
return render(request, 'accounts/group_list.html', {
|
return render(request, 'accounts/group_list.html', {
|
||||||
'groups': Group.objects.all(),
|
'groups': Group.objects.all(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_group')
|
@project_perm_required('manage_accounts')
|
||||||
def group_details(request, group):
|
def group_details(request, group):
|
||||||
return render(request, 'accounts/group_details.html', {
|
return render(request, 'accounts/group_details.html', {
|
||||||
'group': get_object_or_404(Group, id=group),
|
'group': get_object_or_404(Group, id=group),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_group')
|
@project_perm_required('manage_accounts')
|
||||||
def group_edit(request, group=None):
|
def group_edit(request, group=None):
|
||||||
|
|
||||||
if group:
|
if group:
|
||||||
|
@ -237,7 +237,7 @@ def group_edit(request, group=None):
|
||||||
|
|
||||||
|
|
||||||
@require_http_methods(["POST"])
|
@require_http_methods(["POST"])
|
||||||
@project_perm_required('manage_group')
|
@project_perm_required('manage_accounts')
|
||||||
def group_delete(request, group):
|
def group_delete(request, group):
|
||||||
group = get_object_or_404(Group, id=group)
|
group = get_object_or_404(Group, id=group)
|
||||||
group.delete()
|
group.delete()
|
||||||
|
@ -245,7 +245,7 @@ def group_delete(request, group):
|
||||||
return redirect('list-group')
|
return redirect('list-group')
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_group')
|
@project_perm_required('manage_accounts')
|
||||||
def group_add_user(request, group):
|
def group_add_user(request, group):
|
||||||
group = get_object_or_404(Group, id=group)
|
group = get_object_or_404(Group, id=group)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -283,7 +283,7 @@ def group_add_user(request, group):
|
||||||
return JsonResponse(response, safe=False)
|
return JsonResponse(response, safe=False)
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_group')
|
@project_perm_required('manage_accounts')
|
||||||
def group_remove_user(request, group, user):
|
def group_remove_user(request, group, user):
|
||||||
group = get_object_or_404(Group, id=group)
|
group = get_object_or_404(Group, id=group)
|
||||||
user = get_object_or_404(User, id=user)
|
user = get_object_or_404(User, id=user)
|
||||||
|
@ -296,14 +296,14 @@ def group_remove_user(request, group, user):
|
||||||
# Teams #
|
# Teams #
|
||||||
#########
|
#########
|
||||||
|
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_list(request):
|
def team_list(request):
|
||||||
return render(request, 'accounts/team_list.html', {
|
return render(request, 'accounts/team_list.html', {
|
||||||
'teams': Team.objects.all(),
|
'teams': Team.objects.all(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_details(request, team):
|
def team_details(request, team):
|
||||||
tab = request.session.pop('team-tab', 'user')
|
tab = request.session.pop('team-tab', 'user')
|
||||||
return render(request, 'accounts/team_details.html', {
|
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):
|
def team_edit(request, team=None):
|
||||||
|
|
||||||
if team:
|
if team:
|
||||||
|
@ -336,7 +336,7 @@ def team_edit(request, team=None):
|
||||||
|
|
||||||
|
|
||||||
@require_http_methods(["POST"])
|
@require_http_methods(["POST"])
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_delete(request, team):
|
def team_delete(request, team):
|
||||||
team = get_object_or_404(Team, pk=team)
|
team = get_object_or_404(Team, pk=team)
|
||||||
team.delete()
|
team.delete()
|
||||||
|
@ -344,7 +344,7 @@ def team_delete(request, team):
|
||||||
return redirect('list-team')
|
return redirect('list-team')
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_add_user(request, team):
|
def team_add_user(request, team):
|
||||||
team = get_object_or_404(Team, id=team)
|
team = get_object_or_404(Team, id=team)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -386,7 +386,7 @@ def team_add_user(request, team):
|
||||||
return JsonResponse(response, safe=False)
|
return JsonResponse(response, safe=False)
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_remove_user(request, team, user):
|
def team_remove_user(request, team, user):
|
||||||
team = get_object_or_404(Team, pk=team)
|
team = get_object_or_404(Team, pk=team)
|
||||||
user = get_object_or_404(User, pk=user)
|
user = get_object_or_404(User, pk=user)
|
||||||
|
@ -395,7 +395,7 @@ def team_remove_user(request, team, user):
|
||||||
return HttpResponse()
|
return HttpResponse()
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_add_group(request, team):
|
def team_add_group(request, team):
|
||||||
team = get_object_or_404(Team, id=team)
|
team = get_object_or_404(Team, id=team)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -433,7 +433,7 @@ def team_add_group(request, team):
|
||||||
return JsonResponse(response, safe=False)
|
return JsonResponse(response, safe=False)
|
||||||
|
|
||||||
|
|
||||||
@project_perm_required('manage_team')
|
@project_perm_required('manage_accounts')
|
||||||
def team_remove_group(request, team, group):
|
def team_remove_group(request, team, group):
|
||||||
team = get_object_or_404(Team, pk=team)
|
team = get_object_or_404(Team, pk=team)
|
||||||
group = get_object_or_404(Group, pk=group)
|
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)
|
delete_project = models.BooleanField(default=False)
|
||||||
|
|
||||||
manage_settings = models.BooleanField(default=False)
|
manage_settings = models.BooleanField(default=False)
|
||||||
manage_user = models.BooleanField(default=False)
|
manage_accounts = models.BooleanField(default=False)
|
||||||
manage_group = models.BooleanField(default=False)
|
|
||||||
manage_team = models.BooleanField(default=False)
|
|
||||||
manage_global_permission = models.BooleanField(default=False)
|
manage_global_permission = models.BooleanField(default=False)
|
||||||
|
|
||||||
# Project permissions, given on ALL projects
|
# Project permissions, given on ALL projects
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
{% if request.user.is_authenticated %}
|
{% 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>
|
<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 %}
|
{% 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>
|
<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 %}
|
{% if perm.manage_settings %}
|
||||||
<li{% block settingtab %}{% endblock %}><a href="{% url 'settings' %}"><b>Settings</b></a></li>
|
<li{% block settingtab %}{% endblock %}><a href="{% url 'settings' %}"><b>Settings</b></a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perm.manage_user %}
|
{% if perm.manage_accounts %}
|
||||||
<li{% block usertab %}{% endblock %}><a href="{% url 'list-user' %}"><b>User</b></a></li>
|
<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>
|
<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>
|
<li{% block teamtab %}{% endblock %}><a href="{% url 'list-team' %}"><b>Team</b></a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perm.manage_global_permission %}
|
{% 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>
|
<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>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
Manage users
|
Manage users, groups and teams
|
||||||
<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>
|
<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 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>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
Manage permissions
|
Manage permissions
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue