@@ -68,9 +68,9 @@ public String dashboard(Model model) {
68
68
} catch (Exception e ) {
69
69
System .out .println ("SQL Error" );
70
70
}
71
- // // Spoof Values
72
- // takeouts = Arrays.asList(4, 8, 12, 2, 6, 0);
73
- // returns = Arrays.asList(0, 2, 4, 10, 2, 2);
71
+ // Spoof Values
72
+ takeouts = Arrays .asList (4 , 8 , 12 , 2 , 6 , 0 );
73
+ returns = Arrays .asList (0 , 2 , 4 , 10 , 2 , 2 );
74
74
// Add list model attributes separately
75
75
for (int i = 0 ; i < times .size (); i ++) {
76
76
String timeI = "time" + Integer .toString (i );
@@ -294,6 +294,7 @@ public String add(Model model) {
294
294
public String addType (@ PathVariable String type , Model model ) {
295
295
model .addAttribute ("type" , type );
296
296
model .addAttribute ("groups" , new ArrayList <UserGroup >());
297
+ List <Rule > rules ;
297
298
switch (type ) {
298
299
case "user" :
299
300
List <UserGroup > groups = new ArrayList <>();
@@ -304,18 +305,23 @@ public String addType(@PathVariable String type, Model model) {
304
305
}
305
306
model .addAttribute ("groups" , groups );
306
307
break ;
307
- case "device " :
308
- List < Rule > rules = new ArrayList <>();
308
+ case "group " :
309
+ rules = new ArrayList <>();
309
310
try {
310
311
rules = webBackend .getRules ();
311
312
} catch (Exception e ) {
312
313
System .out .println ("SQL Exception" );
313
314
}
314
315
model .addAttribute ("rules" , rules );
315
316
break ;
316
- case "group" :
317
- UserGroup group = new UserGroup ();
318
- model .addAttribute (group );
317
+ case "device" :
318
+ rules = new ArrayList <>();
319
+ try {
320
+ rules = webBackend .getRules ();
321
+ } catch (Exception e ) {
322
+ System .out .println ("SQL Exception" );
323
+ }
324
+ model .addAttribute ("rules" , rules );
319
325
break ;
320
326
default :
321
327
break ;
@@ -371,6 +377,38 @@ public String addDevice(@RequestParam Map<String, String> request, Model model)
371
377
return "message" ;
372
378
}
373
379
380
+ @ PostMapping ("/add/group" )
381
+ public String addGroup (@ RequestParam Map <String , String > request , Model model ) {
382
+ // Set group and permission(s) attributes
383
+ UserGroup newGroup = new UserGroup ();
384
+ newGroup .setId (request .get ("groupName" ));
385
+ // Get selected rules
386
+ List <GroupPermission > permissions = new ArrayList <>();
387
+ List <String > keys = new ArrayList <>(request .keySet ());
388
+ for (int i = 1 ; i < request .size (); i ++) {
389
+ GroupPermission permission = new GroupPermission ();
390
+ permission .setId (UUID .randomUUID ().toString ());
391
+ permission .setUserGroupID (request .get ("groupName" ));
392
+ permission .setRuleID (request .get (keys .get (i )));
393
+ permissions .add (permission );
394
+ }
395
+ // Add group and permissions(s) to the database
396
+ try {
397
+ webBackend .insertUserGroup (newGroup );
398
+ for (GroupPermission permission : permissions ) {
399
+ webBackend .insertGroupPermission (permission );
400
+ }
401
+ } catch (Exception e ) {
402
+ System .out .println ("SQL Exception" );
403
+ model .addAttribute ("messageType" , "Group Adding Failed" );
404
+ model .addAttribute ("messageString" , e .getMessage ());
405
+ return "message" ;
406
+ }
407
+ model .addAttribute ("messageType" , "Group Added" );
408
+ model .addAttribute ("messageString" , "The group has been added!" );
409
+ return "message" ;
410
+ }
411
+
374
412
/**
375
413
* CSV file upload POST mapping. CSV must include headers that match user object.
376
414
* Any missing columns will be filled in with default values.
0 commit comments