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