Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BDE
Note Kfet 2015 django
Commits
9b367fda
Commit
9b367fda
authored
Aug 26, 2013
by
Vincent Le gallic
Browse files
[factorisation de code] Meilleure gestion des droits/surdroits pour la modification de compte
parent
6df9a831
Changes
1
Hide whitespace changes
Inline
Side-by-side
note/views.py
View file @
9b367fda
...
@@ -1222,9 +1222,6 @@ def modifier_compte(request, idbde=None):
...
@@ -1222,9 +1222,6 @@ def modifier_compte(request, idbde=None):
form
=
forms
.
CompteForm
(
request
.
POST
)
form
=
forms
.
CompteForm
(
request
.
POST
)
if
form
.
is_valid
():
if
form
.
is_valid
():
fields
=
form
.
cleaned_data
fields
=
form
.
cleaned_data
# on s'occupe des cases à cocher pour les droits
droits
=
[
champ
[
7
:]
for
(
champ
,
valeur
)
in
request
.
POST
.
items
()
if
(
champ
[:
7
]
==
"droits_"
)
and
(
valeur
==
"on"
)]
surdroits
=
[
champ
[
10
:]
for
(
champ
,
valeur
)
in
request
.
POST
.
items
()
if
(
champ
[:
10
]
==
"surdroits_"
)
and
(
valeur
==
"on"
)]
# on va chercher la valeur actuelle de tous les champs du compte
# on va chercher la valeur actuelle de tous les champs du compte
variables
.
update
(
variables_standard
)
variables
.
update
(
variables_standard
)
variables
.
update
(
_prepare_variables
(
sock
,
idbde
,
request
,
form
=
True
,
whoami
=
variables
[
"whoami"
]))
variables
.
update
(
_prepare_variables
(
sock
,
idbde
,
request
,
form
=
True
,
whoami
=
variables
[
"whoami"
]))
...
@@ -1236,17 +1233,16 @@ def modifier_compte(request, idbde=None):
...
@@ -1236,17 +1233,16 @@ def modifier_compte(request, idbde=None):
# on regarde les champs qui sont différents
# on regarde les champs qui sont différents
tosend
=
{
k
:
v
for
(
k
,
v
)
in
form
.
cleaned_data
.
items
()
if
k
in
keyscompte
and
(
v
!=
compte
[
k
])}
tosend
=
{
k
:
v
for
(
k
,
v
)
in
form
.
cleaned_data
.
items
()
if
k
in
keyscompte
and
(
v
!=
compte
[
k
])}
# les droits ça se gère un peu spécialement
# les droits ça se gère un peu spécialement
# ATTENTION : u''.split(",") == [u''] c'est débile, mais c'est comme ça
# avec des virgules et des cases à cocher
listedroits
=
compte
[
"droits"
].
split
(
","
)
for
champ
in
[
"droits"
,
"surdroits"
]:
if
listedroits
==
[
u
''
]:
n
=
len
(
champ
)
+
1
listedroits
=
[]
droitsousur
=
[
case
[
n
:]
for
(
case
,
valeur
)
in
request
.
POST
.
items
()
if
case
.
startswith
(
"droits_"
)
and
(
valeur
==
"on"
)]
if
set
(
droits
)
!=
set
(
listedroits
):
liste
=
compte
[
champ
].
split
(
","
)
tosend
[
"droits"
]
=
u
","
.
join
(
droits
)
# ATTENTION : u''.split(",") == [u''] c'est débile, mais c'est comme ça
listesurdroits
=
compte
[
"surdroits"
].
split
(
","
)
if
liste
==
[
u
''
]:
if
listesurdroits
==
[
u
''
]:
liste
=
[]
listesurdroits
=
[]
if
set
(
droitsousur
)
!=
set
(
liste
):
if
set
(
surdroits
)
!=
set
(
listesurdroits
):
tosend
[
champ
]
=
u
","
.
join
(
droits
)
tosend
[
"surdroits"
]
=
u
","
.
join
(
surdroits
)
if
tosend
!=
{}:
# si il y a vraiment quelque chose à faire
if
tosend
!=
{}:
# si il y a vraiment quelque chose à faire
# on rajoute l'idbde
# on rajoute l'idbde
tosend
[
"idbde"
]
=
idbde
tosend
[
"idbde"
]
=
idbde
...
...
Write
Preview
Supports
Markdown
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