Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
e837975f
Commit
e837975f
authored
Nov 28, 2017
by
LEVY-FALK Hugo
Committed by
root
Jan 06, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
can_create avec choix du model
parent
b22b15ee
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
8 deletions
+15
-8
users/models.py
users/models.py
+9
-2
users/views.py
users/views.py
+6
-6
No files found.
users/models.py
View file @
e837975f
...
...
@@ -762,12 +762,12 @@ class User(AbstractBaseUser):
num
+=
1
return
composed_pseudo
(
num
)
def
can_create
(
user
,
perms
=
(
'cableur'
,)
):
def
can_create
(
user
):
options
,
_created
=
OptionalUser
.
objects
.
get_or_create
()
if
options
.
all_can_create
:
return
True
else
:
return
user
.
has_perms
(
perms
)
return
user
.
has_perms
(
(
'cableur'
,)
)
def
can_edit
(
self
,
user
):
if
self
.
is_class_club
and
user
.
is_class_adherent
:
...
...
@@ -911,6 +911,13 @@ class ServiceUser(AbstractBaseUser):
def
__str__
(
self
):
return
self
.
pseudo
def
can_create
(
user
):
options
,
_created
=
OptionalUser
.
objects
.
get_or_create
()
if
options
.
all_can_create
:
return
True
else
:
return
user
.
has_perms
((
'infra'
,))
@
receiver
(
post_save
,
sender
=
ServiceUser
)
def
service_user_post_save
(
sender
,
**
kwargs
):
...
...
users/views.py
View file @
e837975f
...
...
@@ -109,11 +109,11 @@ def password_change_action(u_form, user, request, req=False):
kwargs
=
{
'userid'
:
str
(
user
.
id
)}
))
def
can_create
(
perms
=
(
'cableur'
,)
):
"""D
écorateur qui vérifie si l'utilisateur peut créer un objet.
"""
def
can_create
(
model
):
"""D
ecorator to check if an user can create a model.
"""
def
decorator
(
view
):
def
wrapper
(
request
,
*
args
,
**
kwargs
):
if
not
request
.
user
.
can_create
(
perms
=
perms
):
if
not
model
.
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
)}
...
...
@@ -123,7 +123,7 @@ def can_create(perms=('cableur',)):
return
decorator
@
login_required
@
can_create
()
@
can_create
(
Adherent
)
def
new_user
(
request
):
""" Vue de création d'un nouvel utilisateur,
envoie un mail pour le mot de passe"""
...
...
@@ -145,7 +145,7 @@ def new_user(request):
@
login_required
@
can_create
()
@
can_create
(
Club
)
def
new_club
(
request
):
""" Vue de création d'un nouveau club,
envoie un mail pour le mot de passe"""
...
...
@@ -310,7 +310,7 @@ def password(request, userid):
@
login_required
@
can_create
(
(
'infra'
,)
)
@
can_create
(
ServiceUser
)
def
new_serviceuser
(
request
):
""" Vue de création d'un nouvel utilisateur service"""
user
=
ServiceUserForm
(
request
.
POST
or
None
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment