merge user / group / team permissions

This commit is contained in:
Élie Bouttier 2014-08-30 19:08:14 -07:00
parent f0c6691df2
commit 81df233d5a
6 changed files with 61 additions and 43 deletions

View file

@ -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)

View 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'),
),
]

View file

@ -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

View file

@ -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>

View file

@ -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 %}

View file

@ -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