Skip to content

Commit 8ee8476

Browse files
author
Nicolas Beguier
committed
Server : Add all admin status
1 parent 063e483 commit 8ee8476

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

server/server.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,31 @@
8888
print('Option reading error (ssl).')
8989
exit(1)
9090

91-
def sql_to_json(result):
91+
def sql_to_json(result, list=False):
9292
"""
9393
This function prettify a sql result into json
9494
"""
95-
d_result = {}
96-
if result is not None:
95+
if result is None:
96+
return None
97+
if list:
98+
d_result = {}
99+
for res in result:
100+
d_sub_result = {}
101+
d_sub_result['username'] = res[0]
102+
d_sub_result['realname'] = res[1]
103+
d_sub_result['status'] = STATES[res[2]]
104+
d_sub_result['expiration'] = datetime.fromtimestamp(res[3]).strftime('%Y-%m-%d %H:%M:%S')
105+
d_sub_result['ssh_key_hash'] = res[4]
106+
d_result[res[0]] = d_sub_result
107+
return dumps(d_result, indent=4, sort_keys=True)
108+
else:
109+
d_result = {}
97110
d_result['username'] = result[0]
98111
d_result['realname'] = result[1]
99112
d_result['status'] = STATES[result[2]]
100113
d_result['expiration'] = datetime.fromtimestamp(result[3]).strftime('%Y-%m-%d %H:%M:%S')
101114
d_result['ssh_key_hash'] = result[4]
102-
return dumps(d_result, indent=4, sort_keys=True)
115+
return dumps(d_result, indent=4, sort_keys=True)
103116

104117
def pg_connection(
105118
dbname=SERVER_OPTS['db_name'],
@@ -129,6 +142,7 @@ def list_keys(username=None, realname=None):
129142
if pg_conn is None:
130143
return message
131144
cur = pg_conn.cursor()
145+
is_list = False
132146

133147
if realname is not None:
134148
cur.execute("""SELECT * FROM USERS WHERE lower(REALNAME)=lower('%s')""" % realname)
@@ -139,9 +153,10 @@ def list_keys(username=None, realname=None):
139153
else:
140154
cur.execute("""SELECT * FROM USERS""")
141155
result = cur.fetchall()
156+
is_list = True
142157
cur.close()
143158
pg_conn.close()
144-
return sql_to_json(result)
159+
return sql_to_json(result, list=is_list)
145160

146161
def ldap_authentification(admin=False):
147162
"""
@@ -199,6 +214,9 @@ def GET(self, username):
199214
return message
200215
cur = pg_conn.cursor()
201216

217+
if username == 'all' and do_status:
218+
return list_keys()
219+
202220
# Search if key already exists
203221
cur.execute("""SELECT * FROM USERS WHERE NAME='%s'""" % username)
204222
user = cur.fetchone()

0 commit comments

Comments
 (0)