diff --git a/admin/src/admin/lib/admin.py b/admin/src/admin/lib/admin.py index 601f42a..9eda8a2 100644 --- a/admin/src/admin/lib/admin.py +++ b/admin/src/admin/lib/admin.py @@ -173,18 +173,30 @@ class Admin(): return self.external['roles'] def upload_json(self,data): + groups=[] + for g in data['data']['groups']: + # for m in data['data']['d_members']: + + groups.append({'provider':data['provider'], + "id": g['id'], + "name": g['name'], + "description": g['description']}) + self.external['groups']=groups + + users=[] for u in data['data']['users']: users.append({'provider':data['provider'], 'id':u['id'], 'email': u['primaryEmail'], - 'firstname': u['name']['givenName'], - 'lastname': u['name']['givenName'], - 'username': u['customerId'], + 'first': u['name']['givenName'], + 'last': u['name']['familyName'], + 'username': u['primaryEmail'].split('@')[0], 'groups':[u['orgUnitPath']], 'roles':[]}) - self.external['users']=set(self.external['users']+users) - return self.external['users'] + self.external['users']=users + + return True # with open(os.path.join(app.root_path, "../custom/jsons/google_all_imported_espinalt.json"),"r") as crt: diff --git a/admin/src/admin/static/js/external.js b/admin/src/admin/static/js/external.js index 593eb82..362b898 100644 --- a/admin/src/admin/static/js/external.js +++ b/admin/src/admin/static/js/external.js @@ -24,18 +24,20 @@ $(document).ready(function() { data: JSON.stringify(formdata), success: function(data) { - console.log(data) + $("#modalImport").modal('hide'); + users_table.ajax.reload(); + groups_table.ajax.reload(); }, error: function(data) { - console.log(data) + alert('Something went wrong on our side...') } }); } }); //DataTable Main renderer - var table = $('#users').DataTable({ + var users_table = $('#users').DataTable({ "ajax": { "url": "/isard-sso-admin/external_users_list", "dataSrc": "" @@ -63,9 +65,37 @@ $(document).ready(function() { { "data": "groups", "width": "10px"}, { "data": "roles", "width": "10px"}, ], - "order": [[4, 'asc']], + "order": [[3, 'asc']], "columnDefs": [ ] - } ); + } ); + + var groups_table = $('#groups').DataTable({ + "ajax": { + "url": "/isard-sso-admin/external_groups_list", + "dataSrc": "" + }, + "language": { + "loadingRecords": 'Loading...', + "emptyTable": "

You don't have any user created yet.


Create one using the +Add new button on top right of this page.

" + }, + "rowId": "id", + "deferRender": true, + "columns": [ + { + "className": 'details-control', + "orderable": false, + "data": null, + "width": "10px", + "defaultContent": '' + }, + { "data": "id", "width": "10px" }, + { "data": "provider", "width": "10px" }, + { "data": "name", "width": "10px" }, + { "data": "description", "width": "10px"}, + ], + "order": [[2, 'asc']], + "columnDefs": [ ] +} ); }); function readFile (evt) { diff --git a/admin/src/admin/static/templates/pages/external.html b/admin/src/admin/static/templates/pages/external.html index 99c205d..f6a2e8d 100644 --- a/admin/src/admin/static/templates/pages/external.html +++ b/admin/src/admin/static/templates/pages/external.html @@ -18,8 +18,8 @@ Upload Download - -
+ +

@@ -41,6 +41,22 @@
+
+

+ + + + + + + + + + + + +
IdProviderNameDescription
+
diff --git a/admin/src/admin/views/MenuViews.py b/admin/src/admin/views/MenuViews.py index ac5b453..319d7ef 100644 --- a/admin/src/admin/views/MenuViews.py +++ b/admin/src/admin/views/MenuViews.py @@ -48,11 +48,15 @@ def groups_list(): # @login_required def external(): if request.method == 'POST': - pprint(request.get_json(force=True)) return json.dumps(app.admin.upload_json(request.get_json(force=True))), 200, {'Content-Type': 'application/json'} return render_template('pages/external.html', title="External", nav="External") @app.route('/isard-sso-admin/external_users_list') # @login_required -def external_list(): - return json.dumps(app.admin.get_external_users()), 200, {'Content-Type': 'application/json'} \ No newline at end of file +def external_users_list(): + return json.dumps(app.admin.get_external_users()), 200, {'Content-Type': 'application/json'} + +@app.route('/isard-sso-admin/external_groups_list') +# @login_required +def external_groups_list(): + return json.dumps(app.admin.get_external_groups()), 200, {'Content-Type': 'application/json'} \ No newline at end of file