mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-22 11:23:10 +00:00
Fonction can_create sur un user
This commit is contained in:
parent
772fdcaa1b
commit
57f74f380a
6 changed files with 48 additions and 9 deletions
20
preferences/migrations/0024_optionaluser_all_can_create.py
Normal file
20
preferences/migrations/0024_optionaluser_all_can_create.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.7 on 2017-11-21 04:42
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('preferences', '0023_auto_20171015_2033'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='optionaluser',
|
||||||
|
name='all_can_create',
|
||||||
|
field=models.BooleanField(default=False, help_text="Tous les users peuvent en créer d'autres"),
|
||||||
|
),
|
||||||
|
]
|
|
@ -42,6 +42,10 @@ class OptionalUser(models.Model):
|
||||||
default=0
|
default=0
|
||||||
)
|
)
|
||||||
gpg_fingerprint = models.BooleanField(default=True)
|
gpg_fingerprint = models.BooleanField(default=True)
|
||||||
|
all_can_create = models.BooleanField(
|
||||||
|
default=False,
|
||||||
|
help_text="Tous les users peuvent en créer d'autres",
|
||||||
|
)
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
"""Creation du mode de paiement par solde"""
|
"""Creation du mode de paiement par solde"""
|
||||||
|
|
|
@ -52,6 +52,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<td>{{ useroptions.solde_negatif }}</td>
|
<td>{{ useroptions.solde_negatif }}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Creations d'users par tous</th>
|
||||||
|
<td>{{ useroptions.all_can_create }}</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<h4>Préférences machines</h4>
|
<h4>Préférences machines</h4>
|
||||||
{% if is_bureau %}
|
{% if is_bureau %}
|
||||||
|
|
|
@ -758,16 +758,23 @@ class User(AbstractBaseUser):
|
||||||
num += 1
|
num += 1
|
||||||
return composed_pseudo(num)
|
return composed_pseudo(num)
|
||||||
|
|
||||||
|
def can_create(user):
|
||||||
|
options, _created = OptionalUser.objects.get_or_create()
|
||||||
|
if options.all_can_create:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return user.has_perms(('cableur',))
|
||||||
|
|
||||||
def can_edit(self, user):
|
def can_edit(self, user):
|
||||||
if self.is_class_club and user.is_class_adherent:
|
if self.is_class_club and user.is_class_adherent:
|
||||||
return self == user or user.has_perms(('cableur',))or\
|
return self == user or user.has_perms(('cableur',)) or\
|
||||||
user.adherent in self.club.administrators.all()
|
user.adherent in self.club.administrators.all()
|
||||||
else:
|
else:
|
||||||
return self == user or user.has_perms(('cableur',))
|
return self == user or user.has_perms(('cableur',))
|
||||||
|
|
||||||
def can_view(self, user):
|
def can_view(self, user):
|
||||||
if self.is_class_club and user.is_class_adherent:
|
if self.is_class_club and user.is_class_adherent:
|
||||||
return self == user or user.has_perms(('cableur',))or\
|
return self == user or user.has_perms(('cableur',)) or\
|
||||||
user.adherent in self.club.administrators.all() or\
|
user.adherent in self.club.administrators.all() or\
|
||||||
user.adherent in self.club.members.all()
|
user.adherent in self.club.members.all()
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -26,21 +26,20 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
{% block sidebar %}
|
{% block sidebar %}
|
||||||
{% if is_cableur %}
|
{% if is_cableur %}
|
||||||
<a class="list-group-item list-group-item-success" href="{% url "users:new-user" %}">
|
|
||||||
<i class="glyphicon glyphicon-plus"></i>
|
|
||||||
Créer un adhérent
|
|
||||||
</a>
|
|
||||||
<a class="list-group-item list-group-item-success" href="{% url "users:new-club" %}">
|
<a class="list-group-item list-group-item-success" href="{% url "users:new-club" %}">
|
||||||
<i class="glyphicon glyphicon-plus"></i>
|
<i class="glyphicon glyphicon-plus"></i>
|
||||||
Créer un club/association
|
Créer un club/association
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_cableur %}
|
<a class="list-group-item list-group-item-success" href="{% url "users:new-user" %}">
|
||||||
|
<i class="glyphicon glyphicon-plus"></i>
|
||||||
|
Créer un adhérent
|
||||||
|
</a>
|
||||||
<a class="list-group-item list-group-item-info" href="{% url "users:index-clubs" %}">
|
<a class="list-group-item list-group-item-info" href="{% url "users:index-clubs" %}">
|
||||||
<i class="glyphicon glyphicon-list"></i>
|
<i class="glyphicon glyphicon-list"></i>
|
||||||
Clubs et assos
|
Clubs et assos
|
||||||
</a>
|
</a>
|
||||||
|
{% if is_cableur %}
|
||||||
<a class="list-group-item list-group-item-info" href="{% url "users:index" %}">
|
<a class="list-group-item list-group-item-info" href="{% url "users:index" %}">
|
||||||
<i class="glyphicon glyphicon-list"></i>
|
<i class="glyphicon glyphicon-list"></i>
|
||||||
Adherents
|
Adherents
|
||||||
|
|
|
@ -111,10 +111,15 @@ def password_change_action(u_form, user, request, req=False):
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('cableur')
|
|
||||||
def new_user(request):
|
def new_user(request):
|
||||||
""" Vue de création d'un nouvel utilisateur,
|
""" Vue de création d'un nouvel utilisateur,
|
||||||
envoie un mail pour le mot de passe"""
|
envoie un mail pour le mot de passe"""
|
||||||
|
if not User.can_create(request.user):
|
||||||
|
messages.error(request, "Vous ne pouvez pas accéder à ce menu")
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
user = AdherentForm(request.POST or None)
|
user = AdherentForm(request.POST or None)
|
||||||
if user.is_valid():
|
if user.is_valid():
|
||||||
user = user.save(commit=False)
|
user = user.save(commit=False)
|
||||||
|
|
Loading…
Reference in a new issue