| | |
| | | |
| | | function um_init() { |
| | | $('#user-form').hide(); |
| | | $('#nav').hide(); |
| | | $('#role-form').hide(); |
| | | $('#user-role-form').hide(); |
| | | $('.user-save-btn').click(um_user_save); |
| | | $('.user-cancel-btn').click(um_back_from_new_user); |
| | | $('#nutzerliste').click(um_user_list_click); |
| | | $('#nutzerLoeschen').click(um_del_user); |
| | | $('#nutzerNeu').click(um_new_user); |
| | | $('#nutzerLoeschen').prop( "disabled", true ); |
| | | $('#nutzerRolleEntziehen').prop( "disabled", true ); |
| | | $('#rolleErteilen').prop( "disabled", true ); |
| | | $('#rolleErteilen').click(um_grant_role); |
| | | $('#nutzerRolleEntziehen').click(um_revoke_role); |
| | | $('#neueRolle').click(um_new_role); |
| | | $('#rollen').click(um_role_list_click); |
| | | $('#nutzerrollen').click(um_user_role_list_click); |
| | | $('#userMenu').text('?'); |
| | | $('#logout').click(um_apicall_logout); |
| | | um_clear_user_form(); |
| | | um_apicall_get_user_list(); |
| | | um_apicall_get_granted_roles(); |
| | | um_apicall_get_login(); |
| | | } |
| | | |
| | | /* ----- user functions ------ */ |
| | | |
| | | function um_user_save() { |
| | | var user = um_user_form_lesen(); |
| | |
| | | if(user.pw != kww) { |
| | | alert('Kennworte stimmen nicht ueberein.'); |
| | | } else { |
| | | alert('user-save ' + user.id); |
| | | um_apicall(self.serialisieren(user)); |
| | | um_apicall_create_user(self.serialisieren(user)); |
| | | } |
| | | } |
| | | |
| | | function um_apicall(obj) { |
| | | var c = 'de.uhilger.um.api.UserMgr'; |
| | | function um_del_user() { |
| | | var userId = um_get_first_selected_user_id(); |
| | | if(userId !== 'none') { |
| | | var antwort = confirm("Wollen Sie den Nutzer " + userId + " loeschen?"); |
| | | if (antwort === true) { |
| | | var user = new User(userId, '-', '-', '-', '-'); |
| | | um_apicall_del_user(self.serialisieren(user)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* ----------- role functions ------------ */ |
| | | |
| | | function um_new_role() { |
| | | var roleIsNew = true; |
| | | var userId = um_get_first_selected_user_id(); |
| | | if(userId === 'none') { |
| | | alert('Es wurde kein Benutzer ausgewaehlt.'); |
| | | } else { |
| | | var answer = prompt("Name der Rolle", ""); |
| | | if (answer === null) { |
| | | alert("Es wurde Cancel betaetigt."); |
| | | } else if(answer !== "") { |
| | | um_apicall_grant_role(userId, answer, roleIsNew); |
| | | } else { |
| | | alert("OK betaetigt, aber Keine Rolle angegeben."); |
| | | } |
| | | } |
| | | } |
| | | |
| | | function um_grant_role() { |
| | | var roleIsNew = false; |
| | | var userId = um_get_first_selected_user_id(); |
| | | var roleId = um_get_first_selected_role_id(); |
| | | if(roleId !== 'none' && userId !== 'none') { |
| | | um_apicall_grant_role(userId, roleId, roleIsNew); |
| | | } |
| | | } |
| | | |
| | | function um_revoke_role() { |
| | | var userId = um_get_first_selected_user_id(); |
| | | var roleId = um_get_first_selected_userrole_id(); |
| | | if(roleId !== 'none' && userId !== 'none') { |
| | | um_apicall_revoke_role(userId, roleId); |
| | | } |
| | | } |
| | | |
| | | /* ----------- ui interaction ------------ */ |
| | | |
| | | function um_user_list_click() { |
| | | $('#nav-back-btn').click(um_back_from_roles); |
| | | $('#nutzerLoeschen').prop( "disabled", false ); |
| | | $('#rollen :selected').prop("selected", false); |
| | | var userId = um_get_first_selected_user_id(); |
| | | $('#userid').html(userId); |
| | | um_apicall_get_user_roles(userId); |
| | | $('#user-list-form').hide(); |
| | | $('#nav').show(); |
| | | $('#role-form').show(); |
| | | $('#user-role-form').show(); |
| | | } |
| | | |
| | | function um_new_user() { |
| | | $('#nav-back-btn').click(um_back_from_new_user); |
| | | $('#user-list-form').hide(); |
| | | $('#user-form').show(); |
| | | $('#nav').show(); |
| | | } |
| | | |
| | | function um_role_list_click() { |
| | | $('#rolleErteilen').prop( "disabled", false ); |
| | | } |
| | | |
| | | function um_user_role_list_click() { |
| | | $('#nutzerRolleEntziehen').prop( "disabled", false ); |
| | | } |
| | | |
| | | function um_back_from_roles() { |
| | | $('#user-list-form').show(); |
| | | $('#nav').hide(); |
| | | $('#role-form').hide(); |
| | | $('#user-role-form').hide(); |
| | | } |
| | | |
| | | function um_back_from_new_user() { |
| | | $('#user-list-form').show(); |
| | | $('#nav').hide(); |
| | | $('#user-form').hide(); |
| | | um_clear_user_form(); |
| | | } |
| | | |
| | | /* ------- ui i/o ------ */ |
| | | |
| | | function um_user_form_lesen() { |
| | | var userId = $('#anmeldename').val(); |
| | | var kw = $('#kennwort').val(); |
| | | var firstName = $('#vorname').val(); |
| | | var lastName = $('#nachname').val(); |
| | | var user = new User(userId, kw, firstName, lastName, '-'); |
| | | return user; |
| | | } |
| | | |
| | | /* |
| | | * BaseLink liefert fuer einfache selects wie die der Nutzerverwaltung |
| | | * eine simple Listenfunktion, die auf der JSON-Seite wie folgt |
| | | * herauskommt. |
| | | * |
| | | * {"List":[{"List":[{"String":"USER_NAME"},{"String":"admin"},{"String":"test"}]}]} |
| | | * |
| | | * Fuer Mustache sieht ein Template dann z.B so aus: |
| | | * |
| | | * {{#List}} |
| | | * {{#List}} |
| | | * <option value="{{ String }}">{{ String }}</option>' |
| | | * {{/List}} |
| | | * {{/List}} |
| | | */ |
| | | function um_show_user_list(resp) { |
| | | $("#nutzerliste").empty(); |
| | | var template = $('#tpl-list').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $("#nutzerliste").append( Mustache.render(template, resp) ); |
| | | } |
| | | |
| | | function um_clear_user_form() { |
| | | $('#anmeldename').val(''); |
| | | $('#kennwort').val(''); |
| | | $('#kennwortw').val(''); |
| | | } |
| | | |
| | | function um_get_first_selected_user_id() { |
| | | var userId = 'none'; |
| | | var userIds = []; |
| | | $('#nutzerliste :selected').each(function(i, selected){ |
| | | userIds[i] = $(selected).text(); |
| | | }); |
| | | if(userIds.length > 0) { |
| | | userId = userIds[0]; |
| | | } |
| | | return userId; |
| | | } |
| | | |
| | | function um_get_first_selected_role_id() { |
| | | var roleId = 'none'; |
| | | var roleIds = []; |
| | | $('#rollen :selected').each(function(i, selected){ |
| | | roleIds[i] = $(selected).text(); |
| | | }); |
| | | if(roleIds.length > 0) { |
| | | roleId = roleIds[0]; |
| | | } |
| | | return roleId; |
| | | } |
| | | |
| | | function um_get_first_selected_userrole_id() { |
| | | var roleId = 'none'; |
| | | var roleIds = []; |
| | | $('#nutzerrollen :selected').each(function(i, selected){ |
| | | roleIds[i] = $(selected).text(); |
| | | }); |
| | | if(roleIds.length > 0) { |
| | | roleId = roleIds[0]; |
| | | } |
| | | return roleId; |
| | | } |
| | | |
| | | function um_show_user_role_list(resp) { |
| | | $("#nutzerrollen").empty(); |
| | | |
| | | var template = $('#tpl-list').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $("#nutzerrollen").append( Mustache.render(template, resp) ); |
| | | |
| | | $('#nutzerRolleEntziehen').prop( "disabled", true ); |
| | | $('#rolleErteilen').prop( "disabled", true ); |
| | | } |
| | | |
| | | function um_show_role_list(resp) { |
| | | $("#rollen").empty(); |
| | | |
| | | var template = $('#tpl-list').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $("#rollen").append( Mustache.render(template, resp) ); |
| | | |
| | | $('#rolleErteilen').prop( "disabled", true ); |
| | | } |
| | | |
| | | /* ---- api calls ----- */ |
| | | |
| | | function um_apicall_create_user(user) { |
| | | var m = 'createUser'; |
| | | var u = '../api?c=' + c + '&m=' + m; |
| | | var u = '../svc/' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | data: { |
| | | p: obj |
| | | p: user |
| | | }, |
| | | type: "POST", |
| | | dataType : "html", |
| | | //success: function( resp ) { |
| | | //$('#fehler').html('Antwort: ' + resp); |
| | | //}, |
| | | success: function( resp ) { |
| | | um_apicall_get_user_list(); |
| | | um_back_from_new_user(); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | |
| | | }); |
| | | } |
| | | |
| | | function um_user_form_lesen() { |
| | | var userId = $('#anmeldename').val(); |
| | | var kw = $('#kennwort').val(); |
| | | var user = new User(userId, kw, '-', '-', '-'); |
| | | return user; |
| | | function um_apicall_del_user(user) { |
| | | var m = 'deleteUser'; |
| | | var u = '../svc/' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | data: { |
| | | p: user |
| | | }, |
| | | type: "POST", |
| | | dataType : "html", |
| | | success: function( resp ) { |
| | | um_apicall_get_user_list(); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function um_apicall_get_user_list() { |
| | | var m = 'getUserNameList'; |
| | | var u = '../svc/' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | type: "GET", |
| | | dataType : "json", |
| | | success: function( resp ) { |
| | | um_show_user_list(resp); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // http]://example.com/um/api?c=de.uhilger.um.api.UserMgr&m=testmethode |
| | | function um_apicall_grant_role(userId, roleName, isNewRole) { |
| | | var ur = new UserRole(userId, roleName); |
| | | var m = 'grantRole'; |
| | | var u = '../svc/' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | data: { |
| | | p: self.serialisieren(ur) |
| | | }, |
| | | type: "POST", |
| | | dataType : "html", |
| | | success: function( resp ) { |
| | | um_apicall_get_user_roles(userId); |
| | | if(isNewRole) { |
| | | um_apicall_get_granted_roles(); |
| | | } |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function um_apicall_revoke_role(userId, roleName) { |
| | | var ur = new UserRole(userId, roleName); |
| | | var m = 'revokeRole'; |
| | | var u = '../svc/' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | data: { |
| | | p: self.serialisieren(ur) |
| | | }, |
| | | type: "POST", |
| | | dataType : "html", |
| | | success: function( resp ) { |
| | | um_apicall_get_user_roles(userId); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function um_apicall_get_user_roles(userId) { |
| | | var m = 'getUserRoleNames'; |
| | | var u = '../svc/' + m + '?p=' + userId; |
| | | $.ajax({ |
| | | url: u, |
| | | type: "GET", |
| | | dataType : "json", |
| | | success: function( resp ) { |
| | | um_show_user_role_list(resp); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function um_apicall_get_granted_roles() { |
| | | var m = 'getRoleNamesGranted'; |
| | | var u = '../svc/' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | type: "GET", |
| | | dataType : "json", |
| | | success: function( resp ) { |
| | | um_show_role_list(resp); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function um_apicall_get_login() { |
| | | var m = '?c=de.uhilger.um.pub.SessionManager&m=getSessionUser'; |
| | | var u = '../pub' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | type: "GET", |
| | | dataType : "json", |
| | | success: function( resp ) { |
| | | $('#userMenu').text(resp.UserData.firstName); |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | function um_apicall_logout() { |
| | | var m = '?c=de.uhilger.um.pub.SessionManager&m=expireSession'; |
| | | var u = '../pub' + m; |
| | | $.ajax({ |
| | | url: u, |
| | | type: "GET", |
| | | dataType : "text", |
| | | success: function( resp ) { |
| | | $('#userMenu').text('nicht angemeldet'); |
| | | window.location.href = '../logout.html'; |
| | | }, |
| | | error: function( xhr, status, errorThrown ) { |
| | | $('#fehler').html("Error: " + errorThrown + " Status: " + status); |
| | | }, |
| | | complete: function( xhr, status ) { |
| | | //alert( "The request is complete!" ); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* ----- Hilfsfunktionen ----- */ |
| | | |
| | | function serialisieren(obj) { |
| | | return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}'; |
| | | }; |
| | | |
| | | /* ----- Objekte ----- */ |
| | | |
| | | function User(i, p, fn, ln, em) { |
| | | this.id = i; |
| | |
| | | this.firstName = fn; |
| | | this.lastName = ln; |
| | | this.email = em; |
| | | } |
| | | |
| | | function UserRole(u, r) { |
| | | this.userId = u; |
| | | this.role = r; |
| | | } |