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