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
OSUG
RESIF
ws-eidaauth
Commits
7e0483e8
Commit
7e0483e8
authored
Feb 17, 2020
by
Jonathan Schaeffer
Browse files
Trying to better delete accounts
parent
c0330ce6
Changes
1
Hide whitespace changes
Inline
Side-by-side
eidawsauth/eidawsauth.py
View file @
7e0483e8
...
...
@@ -139,6 +139,9 @@ def cleanup():
Clean old temporary logins and passwords in both databases.
"""
logging
.
info
(
"Cleaning up expired temporary accounts"
)
nb_expired_accounts
=
0
old_users_entries
=
0
old_users
=
""
try
:
conn
=
psycopg2
.
connect
(
dbname
=
application
.
config
[
'AUTHDBNAME'
],
port
=
application
.
config
[
'AUTHDBPORT'
],
...
...
@@ -147,6 +150,10 @@ def cleanup():
password
=
application
.
config
[
'AUTHDBPASSWORD'
])
cur
=
conn
.
cursor
()
logging
.
debug
(
"Connected to users database"
)
cur
.
execute
(
"select user_index,login from users where expires_at < now();"
)
nb_expired_accounts
=
cur
.
rowcount
old_users_entries
=
cur
.
fetchall
()[:
1000
]
old_users
=
','
.
join
(
str
(
u
[
0
])
for
u
in
old_users_entries
)
except
Exception
as
e
:
logging
.
error
(
"Unable to connect to database %s as %s@%s:%s"
%
(
application
.
config
[
'AUTHDBNAME'
],
application
.
config
[
'AUTHDBUSER'
],
...
...
@@ -154,10 +161,6 @@ def cleanup():
application
.
config
[
'AUTHDBPORT'
]))
raise
e
cur
.
execute
(
"select user_index,login from users where expires_at < now();"
)
nb_expired_accounts
=
cur
.
rowcount
old_users_entries
=
cur
.
fetchall
()[:
1000
]
old_users
=
','
.
join
(
str
(
u
[
0
])
for
u
in
old_users_entries
)
logging
.
debug
(
"%d users to delete"
%
(
len
(
old_users_entries
)))
if
len
(
old_users_entries
)
>
0
:
try
:
...
...
@@ -177,19 +180,19 @@ def cleanup():
password
=
application
.
config
[
'PRIVILEGEDBPASSWORD'
])
cur
=
conn
.
cursor
()
logging
.
debug
(
"Connected to privlieges database"
)
old_users
=
','
.
join
(
str
(
u
[
1
])
for
u
in
old_users_entries
)
logging
.
debug
(
"Deleting from privileges database: %s"
,
old_users
)
cur
.
execute
(
"""
delete from eida_temp_users where name in (%s);
"""
,
(
AsIs
(
old_users
),))
conn
.
commit
()
conn
.
close
()
except
Exception
as
e
:
logging
.
error
(
"Unable to connect to database %s as %s@%s:%s"
%
(
application
.
config
[
'PRIVILEGEDBNAME'
],
application
.
config
[
'PRIVILEGEDBUSER'
],
application
.
config
[
'PRIVILEGEDBHOST'
],
application
.
config
[
'PRIVILEGEDBPORT'
]))
raise
e
logging
.
debug
(
"Deleting from privileges database"
)
old_users
=
','
.
join
(
str
(
u
[
1
])
for
u
in
old_users_entries
)
cur
.
execute
(
"""
delete from eida_temp_users where name in (%s);
"""
,
(
old_users
,))
conn
.
commit
()
conn
.
close
()
logging
.
info
(
"Deleted %d over %d expired accounts"
%
(
len
(
old_users_entries
),
nb_expired_accounts
))
return
Response
(
"Deleted %d expired accounts."
%
(
len
(
old_users_entries
)),
status
=
200
)
...
...
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