diff --git a/admin/src/admin/lib/admin.py b/admin/src/admin/lib/admin.py index 20f2a85..0fa3ea5 100644 --- a/admin/src/admin/lib/admin.py +++ b/admin/src/admin/lib/admin.py @@ -114,50 +114,56 @@ class Admin(): try: log.warning('MOODLE: Adding default group admin') - self.moodle.add_system_cohort('admin','system admins') + self.moodle.add_system_cohort('/admin','system admins') log.warning('MOODLE: OK') except: log.warning('MOODLE: Seems to be there already') try: log.warning('MOODLE: Adding default group manager') - self.moodle.add_system_cohort('manager','system managers') + self.moodle.add_system_cohort('/manager','system managers') log.warning('MOODLE: OK') except: log.warning('MOODLE: Seems to be there already') try: log.warning('MOODLE: Adding default group teacher') - self.moodle.add_system_cohort('teacher','system teacher') + self.moodle.add_system_cohort('/teacher','system teacher') log.warning('MOODLE: OK') except: log.warning('MOODLE: Seems to be there already') try: log.warning('MOODLE: Adding default group student') - self.moodle.add_system_cohort('student','system student') + self.moodle.add_system_cohort('/student','system student') log.warning('MOODLE: OK') except: log.warning('MOODLE: Seems to be there already') + try: + log.warning('NEXTCLOUD: Adding default group admin') + self.nextcloud.add_group('/admin') + log.warning('NEXTCLOUD: OK') + except ProviderItemExists: + log.warning('NEXTCLOUD: Seems to be there already') try: log.warning('NEXTCLOUD: Adding default group manager') - self.nextcloud.add_group('manager') + self.nextcloud.add_group('/manager') log.warning('NEXTCLOUD: OK') except ProviderItemExists: log.warning('NEXTCLOUD: Seems to be there already') try: log.warning('NEXTCLOUD: Adding default group teacher') - self.nextcloud.add_group('teacher') + self.nextcloud.add_group('/teacher') log.warning('NEXTCLOUD: OK') except ProviderItemExists: log.warning('NEXTCLOUD: Seems to be there already') try: log.warning('NEXTCLOUD: Adding default group student') - self.nextcloud.add_group('student') + self.nextcloud.add_group('/student') log.warning('NEXTCLOUD: OK') except ProviderItemExists: log.warning('NEXTCLOUD: Seems to be there already') @@ -200,7 +206,7 @@ class Admin(): try: log.warning('NEXTCLOUD: Adding user ddadmin and adding to group admin') - self.nextcloud.add_user(dduser,ddpassword,group='admin',email=ddmail,displayname='DD Admin') + self.nextcloud.add_user(dduser,ddpassword,group='/admin',email=ddmail,displayname='DD Admin') log.warning('NEXTCLOUD: OK') except ProviderItemExists: log.warning('NEXTCLOUD: Seems to be there already') @@ -360,7 +366,7 @@ class Admin(): mgroups=[] if mgroups is None else mgroups ngroups=[] if ngroups is None else ngroups - kgroups_names=[g['name'] for g in kgroups] + kgroups_names=[g['path'] for g in kgroups] mgroups_names=[g['name'] for g in mgroups] ngroups_names=ngroups @@ -369,7 +375,7 @@ class Admin(): groups=[] for name in all_groups_names: thegroup={} - keycloak_exists=[g for g in kgroups if g['name'] == name] + keycloak_exists=[g for g in kgroups if g['path'] == name] if len(keycloak_exists): thegroup=keycloak_exists[0] thegroup['keycloak']=True @@ -784,10 +790,15 @@ class Admin(): def delete_user(self,userid): log.warning('deleting user moodle, nextcloud keycloak') + ev=Events('Deleting user','Deleting from moodle') self.delete_moodle_user(userid) + ev.update_text('Deleting from nextcloud') self.delete_nextcloud_user(userid) + ev.update_text('Deleting from keycloak') self.delete_keycloak_user(userid) + ev.update_text('Syncing data from applications...') self.resync_data() + ev.update_text('User deleted') return True def get_user(self,userid): diff --git a/admin/src/admin/static/js/groups.js b/admin/src/admin/static/js/groups.js index 5ab95d7..23e27af 100644 --- a/admin/src/admin/static/js/groups.js +++ b/admin/src/admin/static/js/groups.js @@ -90,41 +90,10 @@ $(document).ready(function() { "width": "10px", "defaultContent": '' }, - { "data": "id", "width": "10px" }, - { "data": "keycloak", "width": "10px" }, - { "data": "moodle", "width": "10px" }, - { "data": "nextcloud", "width": "10px" }, { "data": "name", "width": "10px" }, { "data": "path", "width": "10px" }, ], - "order": [[3, 'asc']], - "columnDefs": [ { - "targets": 2, - "render": function ( data, type, full, meta ) { - if(full.keycloak){ - return '' - }else{ - return '' - }; - }}, - { - "targets": 3, - "render": function ( data, type, full, meta ) { - if(full.moodle){ - return '' - }else{ - return '' - }; - }}, - { - "targets": 4, - "render": function ( data, type, full, meta ) { - if(full.nextcloud){ - return '' - }else{ - return '' - }; - }}, - ] + "order": [[2, 'asc']], + // "columnDefs": [ ] } ); }) \ No newline at end of file diff --git a/admin/src/admin/static/js/sysadmin/groups.js b/admin/src/admin/static/js/sysadmin/groups.js new file mode 100644 index 0000000..5ab95d7 --- /dev/null +++ b/admin/src/admin/static/js/sysadmin/groups.js @@ -0,0 +1,130 @@ + +$(document).on('shown.bs.modal', '#modalAddDesktop', function () { + modal_add_desktops.columns.adjust().draw(); +}); + +$(document).ready(function() { + + $('.btn-global-resync').on('click', function () { + $.ajax({ + type: "GET", + url:"api/resync", + success: function(data) + { + table.ajax.reload(); + // $("#modalImport").modal('hide'); + // users_table.ajax.reload(); + // groups_table.ajax.reload(); + }, + error: function(data) + { + alert('Something went wrong on our side...') + } + }); + }); + + // Open new group modal + $('.btn-new').on('click', function () { + $('#modalAddGroup').modal({ + backdrop: 'static', + keyboard: false + }).modal('show'); + }); + + // Send new group form + $('#modalAddGroup #send').on('click', function () { + var form = $('#modalAddGroupForm'); + formdata = form.serializeObject() + console.log('NEW GROUP') + console.log(formdata) + // $.ajax({ + // type: "POST", + // "url": "/groups_list", + // success: function(data) + // { + // console.log('SUCCESS') + // // $("#modalAddGroup").modal('hide'); + // }, + // error: function(data) + // { + // alert('Something went wrong on our side...') + // } + // }); + }); + + $('.btn-delete_keycloak').on('click', function () { + $.ajax({ + type: "DELETE", + url:"/api/groups/keycloak", + success: function(data) + { + console.log('SUCCESS') + // $("#modalImport").modal('hide'); + // users_table.ajax.reload(); + // groups_table.ajax.reload(); + }, + error: function(data) + { + alert('Something went wrong on our side...') + } + }); + }); + + //DataTable Main renderer + var table = $('#groups').DataTable({ + "ajax": { + "url": "/api/groups", + "dataSrc": "" + }, + "language": { + "loadingRecords": 'Loading...', + "emptyTable": "
+ | Id | +Keycloak | +Moodle | +Nextcloud | +Name | +Path | +
---|