Rechte-Gruppen-System fertig
This commit is contained in:
parent
77a604f5be
commit
8fc7455cff
Binary file not shown.
Binary file not shown.
|
|
@ -32,7 +32,7 @@ ALLOWED_HOSTS = ['digitale-agentur.com', 'www.digitale-agentur.com', 'localhost'
|
|||
# Application definition
|
||||
INSTALLED_APPS = [
|
||||
'users.apps.UsersConfig',
|
||||
'settings.apps.SettingsConfig',
|
||||
'dasettings.apps.DASettingsConfig',
|
||||
'areas.apps.AreasConfig',
|
||||
'orga.apps.OrgaConfig',
|
||||
'cloud.apps.CloudConfig',
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ urlpatterns = [
|
|||
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
|
||||
path('', include('users.urls'), name="dashboard-first"),
|
||||
path('admin/', admin.site.urls),
|
||||
path('settings/', include('settings.urls'), name="settings"),
|
||||
path('dasettings/', include('dasettings.urls'), name="dasettings"),
|
||||
path('dashboard/', include('users.urls'), name="dashboard"),
|
||||
path('areas/', include('areas.urls'), name="areas-management"),
|
||||
path('tasks/', include('tasks.urls'), name="tasks-management"),
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,5 +1,6 @@
|
|||
from django import template
|
||||
|
||||
from django.contrib.auth.models import Group
|
||||
from users.models import AgencyGroup
|
||||
register = template.Library()
|
||||
|
||||
b = 0
|
||||
|
|
@ -22,6 +23,28 @@ def incvar():
|
|||
return ''
|
||||
|
||||
|
||||
@register.filter(name='has_group')
|
||||
def has_group(user, group_name):
|
||||
group = Group.objects.get(name=group_name)
|
||||
return True if group in user.groups.all() else False
|
||||
|
||||
# usergperm
|
||||
'''
|
||||
|
||||
Gibt TRUE zurück, wenn der User über eine Gruppe das gewünschte Recht hat.
|
||||
Gibt FALSE zurück, wenn der User über eine Gruppe das gewünschte Recht NICHT hat.
|
||||
|
||||
@param:
|
||||
user - einglogger Nutzer
|
||||
perm - recht
|
||||
|
||||
'''
|
||||
@register.filter(name="usergperm")
|
||||
def usergperm(user, perm):
|
||||
stat = False
|
||||
if user.has_perm('users.'+perm):
|
||||
stat = True
|
||||
return stat
|
||||
'''
|
||||
class Counter:
|
||||
count = 0
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -184,12 +184,13 @@ class AgencyGroup(models.Model):
|
|||
class Meta:
|
||||
|
||||
permissions = [
|
||||
('agency', 'Agenturinformationen verändern'),
|
||||
('users', 'Benutzer bearbeiten'),
|
||||
('group', 'Gruppen bearbeiten'),
|
||||
('areas', 'Bereiche bearbeiten'),
|
||||
('tasks', 'Tätigkeiten bearbeiten'),
|
||||
('standard', 'Standards bearbeiten und freischalten'),
|
||||
('news', 'News bearbeiten und veröffentlichen'),
|
||||
('quciklinks', 'Quicklinks bearbeiten und erstellen')
|
||||
('agencyinfo', 'Agenturinformationen verändern'),
|
||||
('usermanager', 'Benutzer bearbeiten'),
|
||||
('groupmanager', 'Gruppen bearbeiten'),
|
||||
('areaconfig', 'Bereiche bearbeiten'),
|
||||
('activityconfig', 'Tätigkeiten bearbeiten'),
|
||||
('standardmanager', 'Standards bearbeiten und freischalten'),
|
||||
('modulenews', 'News bearbeiten und veröffentlichen'),
|
||||
('modulesconfig', 'Module verwalten'),
|
||||
('modulequicklinks', 'Quicklinks bearbeiten und erstellen')
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
from django.db.models.signals import post_save, pre_delete
|
||||
from django.db.models.signals import post_save, pre_delete, m2m_changed
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.dispatch import receiver
|
||||
from .models import Profile, Agency, AgencyGroup
|
||||
from django.contrib.auth.models import Permission
|
||||
|
||||
# SIGNALS FOR USER
|
||||
@receiver(post_save, sender=User)
|
||||
def create_profile(sender, instance, created, **kwargs):
|
||||
|
|
@ -29,15 +28,17 @@ def save_profile(sender, instance, **kwargs):
|
|||
|
||||
|
||||
# SIGNALS FOR GROUPS
|
||||
'''
|
||||
@receiver(post_save, sender=Group)
|
||||
def create_group(sender, instance, created, **kwargs):
|
||||
print("NEW GROUP SIGNAL")
|
||||
if created:
|
||||
AgencyGroup.objects.create(group=instance, agency=instance.agency)
|
||||
|
||||
@receiver(post_save, sender=Group)
|
||||
def save_group(sender, instance, **kwargs):
|
||||
print("GROUP SAVED SIGNAL")
|
||||
#instance.group.save()
|
||||
'''
|
||||
@receiver(signal=m2m_changed, sender=User.groups.through)
|
||||
def adjust_group_notifications(instance, action, reverse, model, pk_set, using, *args, **kwargs):
|
||||
# USERGROUP IS CHANGED
|
||||
if isinstance(instance, Group):
|
||||
group_touched = AgencyGroup.objects.get(group=instance)
|
||||
user_touched = User.objects.get(pk=list(pk_set)[0])
|
||||
# A USER WAS REMOVED FROM A GROUP
|
||||
if(action == 'post_remove'):
|
||||
print("USER REMOVED " + user_touched.first_name + " FROM GROUP " + group_touched.agencygroupname)
|
||||
# A USER WAS ADDED TO A GROUP
|
||||
elif(action == 'post_add'):
|
||||
print("USER ADDED " + user_touched.first_name + " TO GROUP " + group_touched.agencygroupname)
|
||||
|
||||
|
|
@ -46,6 +46,9 @@
|
|||
|
||||
</head>
|
||||
<body>
|
||||
{% if perms.users.agencyinfo %}
|
||||
<script type="text/javascript">alert(0);</script>
|
||||
{% endif %}
|
||||
<!-- Page Wrapper -->
|
||||
<div id="wrapper">
|
||||
<!-- Sidebar -->
|
||||
|
|
@ -214,12 +217,12 @@
|
|||
</style>
|
||||
<div id="bottom_info">
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
{% if active_link == 'settings' %}
|
||||
{% if active_link == 'dasettings' %}
|
||||
<li class="nav-item active">
|
||||
{% else%}
|
||||
<li class="nav-item">
|
||||
{%endif%}
|
||||
<a class="nav-link " href="{% url 'settings' %}" aria-expanded="true" style="margin-top: -15px">
|
||||
<a class="nav-link " href="{% url 'dasettings' %}" aria-expanded="true" style="margin-top: -15px">
|
||||
<i class="fas fa-cog"></i>
|
||||
<span>Einstellungen</span>
|
||||
</a>
|
||||
|
|
|
|||
Loading…
Reference in New Issue