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
intranet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nounous-archives
intranet
Commits
66a58d53
Commit
66a58d53
authored
Nov 23, 2015
by
Daniel STAN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[login] par défaut, pas de crans_* (sauf crans_ma)
parent
bfe58091
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
12 deletions
+20
-12
intranet/login.py
intranet/login.py
+20
-12
No files found.
intranet/login.py
View file @
66a58d53
...
...
@@ -48,6 +48,7 @@ DROITS_SPECIAUX = { # Dictionnaire de groupe devant contenir les droits correspo
"crans_imprimeur"
:
[
CRANS_MULTIMACHINES
],
"crans_apprenti"
:
[
CRANS_MULTIMACHINES
],
"crans_bureau"
:
[
CRANS_MULTIMACHINES
],
"crans_ma"
:
[
CRANS_MULTIMACHINES
],
}
...
...
@@ -65,22 +66,29 @@ def get_or_create_cransgroup(name):
group
.
save
()
return
group
def
refresh_droits
(
user
,
cl_user
):
def
refresh_droits
(
user
,
cl_user
,
allow_staff
=
False
):
"""Rafraîchit les droits de l'utilisateur django `user' depuis
l'utilisateur LDAP `cl_user'"""
l'utilisateur LDAP `cl_user'.
N'ajoute pas les droits crans si allow_staff=False (default)
"""
cl_droits
=
[
x
.
value
for
x
in
cl_user
.
get
(
'droits'
,
[])]
if
u
"Nounou"
in
cl_droits
:
user
.
is_staff
=
True
user
.
is_superuser
=
True
cl_droits_reels
=
set
(
x
.
value
for
x
in
cl_user
.
get
(
'droits'
,
[]))
if
allow_staff
:
cl_droits
=
cl_droits_reels
else
:
user
.
is_staff
=
False
user
.
is_superuser
=
False
if
u
"Apprenti"
in
cl_droits
:
user
.
is_staff
=
True
if
u
"Imprimeur"
in
cl_droits
:
user
.
is_staff
=
True
cl_droits
=
set
()
# Droit membre actif générique
if
cl_droits_reels
:
cl_droits
.
add
(
u
"MA"
)
if
cl_droits_reels
and
allow_staff
:
cl_droits
.
add
(
u
"enabled"
)
# Fais le calcul des droits d'accès
user
.
is_staff
=
not
cl_droits
.
isdisjoint
([
u
"Nounou"
,
u
"Apprenti"
,
u
"Imprimeur"
])
user
.
is_superuser
=
not
cl_droits
.
isdisjoint
([
u
"Nounou"
])
# et celui des groupes
groups
=
[]
for
cl_droit
in
cl_droits
:
groups
.
append
(
get_or_create_cransgroup
(
name
=
u
"crans_%s"
%
cl_droit
.
lower
()))
...
...
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