ulrich
2016-12-27 7f8a035fd7d290be1c7ba01956097cab466c9200
commit | author | age
5bf001 1
U 2 function um_init() {
5e4151 3   $('#user-form').hide();
7f8a03 4   $('#nav').hide();
U 5   $('#role-form').hide();
6   $('#user-role-form').hide();
5bf001 7   $('.user-save-btn').click(um_user_save);
4df887 8   $('#nutzerliste').click(um_user_list_click);
U 9   $('#nutzerLoeschen').click(um_del_user);
10   $('#nutzerNeu').click(um_new_user);
11   $('#nutzerLoeschen').prop( "disabled", true );
c79c12 12   $('#nutzerRolleEntziehen').prop( "disabled", true );
51edf4 13   $('#rolleErteilen').prop( "disabled", true );
5e4151 14   $('#rolleErteilen').click(um_grant_role);
e03a3e 15   $('#nutzerRolleEntziehen').click(um_revoke_role);
95f415 16   $('#neueRolle').click(um_new_role);
51edf4 17   $('#rollen').click(um_role_list_click);
U 18   $('#nutzerrollen').click(um_user_role_list_click);
72c5c3 19   um_clear_user_form();
U 20   um_apicall_get_user_list();
51edf4 21   um_apicall_get_granted_roles();
5bf001 22 }
4df887 23
U 24 /* ----- user functions ------ */
5bf001 25
U 26 function um_user_save() {
f8b605 27   var user = um_user_form_lesen();
U 28   var kww = $('#kennwortw').val();
29   if(user.pw != kww) {
30     alert('Kennworte stimmen nicht ueberein.');
31   } else {
72c5c3 32     um_apicall_create_user(self.serialisieren(user));
f8b605 33   }
U 34 }
4df887 35
72c5c3 36 function um_del_user() {
95f415 37   var userId = um_get_first_selected_user_id();
U 38   if(userId !== 'none') {
c79c12 39     var antwort = confirm("Wollen Sie den Nutzer " + userId + " loeschen?"); 
95f415 40     if (antwort === true) {
U 41       var user = new User(userId, '-', '-', '-', '-');
42       um_apicall_del_user(self.serialisieren(user));
43     }  
44   }
4df887 45 }
U 46
47 function um_new_user() {
48   alert('show form to enter new user');
95f415 49 }
U 50
51 /* ----------- role functions ------------ */
52
53 function um_new_role() {
51edf4 54   var roleIsNew = true;
95f415 55   var userId = um_get_first_selected_user_id();
U 56   if(userId === 'none') {
57     alert('Es wurde kein Benutzer ausgewaehlt.');
58   } else {
59     var answer = prompt("Name der Rolle", "");
60     if (answer === null) {
61       alert("Es wurde Cancel betaetigt.");
62     } else if(answer !== "") {
51edf4 63       um_apicall_grant_role(userId, answer, roleIsNew);
95f415 64     } else {
U 65       alert("OK betaetigt, aber Keine Rolle angegeben.");
66     }
67   }
4df887 68 }
U 69
5e4151 70 function um_grant_role() {
U 71   var roleIsNew = false;
72   var userId = um_get_first_selected_user_id();
73   var roleId = um_get_first_selected_role_id();
74   if(roleId !== 'none' && userId !== 'none') {
75     um_apicall_grant_role(userId, roleId, roleIsNew);
76   }
77 }
78
e03a3e 79 function um_revoke_role() {
U 80   var userId = um_get_first_selected_user_id();
81   var roleId = um_get_first_selected_userrole_id();
82   if(roleId !== 'none' && userId !== 'none') {
83     um_apicall_revoke_role(userId, roleId);
84   }
85 }
86
4df887 87 /* ----------- ui interaction ------------ */
U 88
89 function um_user_list_click() {
7f8a03 90   $('#nav-back-btn').click(um_back_from_roles);
72c5c3 91   $('#nutzerLoeschen').prop( "disabled", false );
5e4151 92   $('#rollen :selected').prop("selected", false);
c79c12 93   var userId = um_get_first_selected_user_id();
7f8a03 94   $('#userid').html(userId);
c79c12 95   um_apicall_get_user_roles(userId);
7f8a03 96   $('#user-list-form').hide();
U 97   $('#nav').show();
98   $('#role-form').show();
99   $('#user-role-form').show();
51edf4 100 }
U 101
102 function um_role_list_click() {
103   $('#rolleErteilen').prop( "disabled", false );
104 }
105
106 function um_user_role_list_click() {
107   $('#nutzerRolleEntziehen').prop( "disabled", false );
4df887 108 }
U 109
7f8a03 110 function um_back_from_roles() {
U 111   $('#user-list-form').show();
112   $('#nav').hide();
113   $('#role-form').hide();
114   $('#user-role-form').hide();
115 }
4df887 116
U 117 /* ------- ui i/o ------ */
118
119 function um_user_form_lesen() {
120   var userId = $('#anmeldename').val();
121   var kw = $('#kennwort').val();
122   var user = new User(userId, kw, '-', '-', '-');
123   return user;
124 }
125
546fbc 126 function um_show_user_list(resp) {
72c5c3 127   $("#nutzerliste").empty();
546fbc 128   var users = resp.List[0];
72c5c3 129   for(var i = 1; i < users.List.length; i++) {
546fbc 130     var user = users.List[i];
U 131     $("#nutzerliste").append('<option value=' + user.String + '>' + user.String + '</option>');
132   }
72c5c3 133   $('#nutzerLoeschen').prop( "disabled", true );
U 134 }
135
136 function um_clear_user_form() {
137   $('#anmeldename').val('');
138   $('#kennwort').val('');
139   $('#kennwortw').val('');
546fbc 140 }
4df887 141
95f415 142 function um_get_first_selected_user_id() {
U 143   var userId = 'none';
144   var userIds = [];
145   $('#nutzerliste :selected').each(function(i, selected){
146     userIds[i] = $(selected).text();
147   });
148   if(userIds.length > 0) {
149     userId = userIds[0];
150   }
151   return userId;
c79c12 152 }
U 153
5e4151 154 function um_get_first_selected_role_id() {
U 155   var roleId = 'none';
156   var roleIds = [];
157   $('#rollen :selected').each(function(i, selected){
e03a3e 158     roleIds[i] = $(selected).text();
U 159   });
160   if(roleIds.length > 0) {
161     roleId = roleIds[0];
162   }
163   return roleId;
164 }
165
166 function um_get_first_selected_userrole_id() {
167   var roleId = 'none';
168   var roleIds = [];
169   $('#nutzerrollen :selected').each(function(i, selected){
5e4151 170     roleIds[i] = $(selected).text();
U 171   });
172   if(roleIds.length > 0) {
173     roleId = roleIds[0];
174   }
175   return roleId;
176 }
177
c79c12 178 // {"List":[{"List":[{"String":"ROLE_NAME"},{"String":"testrolle1"}]}]}
U 179 function um_show_user_role_list(resp) {
180   $("#nutzerrollen").empty();
181   var rollen = resp.List[0];
182   for(var i = 1; i < rollen.List.length; i++) {
183     var rolle = rollen.List[i];
184     $("#nutzerrollen").append('<option value=' + rolle.String + '>' + rolle.String + '</option>');
185   }
186   $('#nutzerRolleEntziehen').prop( "disabled", true );
95f415 187 }
U 188
51edf4 189 function um_show_role_list(resp) {
U 190   $("#rollen").empty();
191   var rollen = resp.List[0];
192   for(var i = 1; i < rollen.List.length; i++) {
193     var rolle = rollen.List[i];
194     $("#rollen").append('<option value=' + rolle.String + '>' + rolle.String + '</option>');
195   }
196   //$('#neueRolle').prop( "disabled", true );
197   $('#rolleErteilen').prop( "disabled", true );
198 }
5e4151 199
4df887 200 /* ---- api calls ----- */
f8b605 201
72c5c3 202 function um_apicall_create_user(user) {
f8b605 203   var m = 'createUser';
72c5c3 204   var u = '../svc/' + m;
f8b605 205   $.ajax({
U 206     url: u,
207     data: {
72c5c3 208       p: user
f8b605 209     },
U 210     type: "POST",
211     dataType : "html",
72c5c3 212     success: function( resp ) {
f8b605 213       //$('#fehler').html('Antwort: ' + resp);
72c5c3 214       um_apicall_get_user_list();
U 215       um_clear_user_form();
216     },
f8b605 217     error: function( xhr, status, errorThrown ) {
U 218       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
219     },
220     complete: function( xhr, status ) {
221       //alert( "The request is complete!" );
222     }
223   });      
224 }
225
72c5c3 226 function um_apicall_del_user(user) {
U 227   var m = 'deleteUser';
228   var u = '../svc/' + m;
229   $.ajax({
230     url: u,
231     data: {
232       p: user
233     },
234     type: "POST",
235     dataType : "html",
236     success: function( resp ) {
237       um_apicall_get_user_list();
238     },
239     error: function( xhr, status, errorThrown ) {
240       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
241     },
242     complete: function( xhr, status ) {
243       //alert( "The request is complete!" );
244     }
245   });      
246 }
247
248 function um_apicall_get_user_list() {
546fbc 249   var m = 'getUserNameList';
U 250   var u = '../svc/' + m;
251   $.ajax({
252     url: u,
253     type: "GET",
254     dataType : "json",
255     success: function( resp ) {
256       um_show_user_list(resp);
257     },
258     error: function( xhr, status, errorThrown ) {
259       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
260     },
261     complete: function( xhr, status ) {
262       //alert( "The request is complete!" );
263     }
264   });      
265 }
266
c79c12 267 // public UserRole grantRole(String userId, String roleName) 
51edf4 268 function um_apicall_grant_role(userId, roleName, isNewRole) {
c79c12 269   var m = 'grantRole';
U 270   var u = '../svc/' + m;
271   $.ajax({
272     url: u,
273     data: {
274       p1: userId,
275       p2: roleName
276     },
277     type: "POST",
278     dataType : "html",
279     success: function( resp ) {
280       um_apicall_get_user_roles(userId);
51edf4 281       if(isNewRole) {
U 282         um_apicall_get_granted_roles();
283       }
c79c12 284     },
U 285     error: function( xhr, status, errorThrown ) {
286       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
287     },
288     complete: function( xhr, status ) {
289       //alert( "The request is complete!" );
290     }
291   });
292 }
293
e03a3e 294 function um_apicall_revoke_role(userId, roleName) {
U 295   var m = 'revokeRole';
296   var u = '../svc/' + m;
297   $.ajax({
298     url: u,
299     data: {
300       p1: userId,
301       p2: roleName
302     },
303     type: "POST",
304     dataType : "html",
305     success: function( resp ) {
306       um_apicall_get_user_roles(userId);
307     },
308     error: function( xhr, status, errorThrown ) {
309       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
310     },
311     complete: function( xhr, status ) {
312       //alert( "The request is complete!" );
313     }
314   });
315 }
316
c79c12 317 //public List getUserRoleNames(String userId)
U 318 function um_apicall_get_user_roles(userId) {
319   var m = 'getUserRoleNames';
320   var u = '../svc/' + m + '?p=' + userId;
321   $.ajax({
322     url: u,
323     type: "GET",
324     dataType : "json",
325     success: function( resp ) {
326       // Antwort in Liste anzeigen
327       um_show_user_role_list(resp);
328     },
329     error: function( xhr, status, errorThrown ) {
330       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
331     },
332     complete: function( xhr, status ) {
333       //alert( "The request is complete!" );
334     }
335   });      
336 }
337
51edf4 338 function um_apicall_get_granted_roles() {
U 339   var m = 'getRoleNamesGranted';
340   var u = '../svc/' + m;
341   $.ajax({
342     url: u,
343     type: "GET",
344     dataType : "json",
345     success: function( resp ) {
346       // Antwort in Liste anzeigen
347       um_show_role_list(resp);
348     },
349     error: function( xhr, status, errorThrown ) {
350       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
351     },
352     complete: function( xhr, status ) {
353       //alert( "The request is complete!" );
354     }
355   });      
356 }
357
4df887 358 /* ----- Hilfsfunktionen ----- */
f8b605 359
U 360 function serialisieren(obj) {
361   return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}';
362 };
363
4df887 364 /* ----- Objekte ----- */
U 365
f8b605 366 function User(i, p, fn, ln, em) {
U 367   this.id = i;
368   this.pw = p;
369   this.firstName = fn;
370   this.lastName = ln;
371   this.email = em;
5bf001 372 }