Skip to content

Commit 5c9dec7

Browse files
authored
Merge pull request #379 from dbarzin/dev
Dev
2 parents ecb19a9 + a1a968a commit 5c9dec7

File tree

15 files changed

+270
-124
lines changed

15 files changed

+270
-124
lines changed

app/Console/Commands/ImportFramework.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ public function handle()
3333
{
3434
Log::debug('ImportFramework - Start.');
3535

36-
$controller = new MeasureImportController();
37-
3836
$fileName = $this->argument('filename');
3937

4038
if (! file_exists($fileName)) {

app/Exports/ControlsExport.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,15 @@ public function map($control): array
8686
$control->observations,
8787
$control->score,
8888
$control->note,
89-
$control->owners()->implode('name', ', '),
89+
implode(
90+
', ',
91+
array_filter(
92+
[
93+
$control->users()->implode('name', ', '),
94+
$control->groups()->implode('name', ', '),
95+
]
96+
)
97+
),
9098
$control->status,
9199
$control->action_plan,
92100
],

app/Http/Controllers/ConfigurationController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public function save(Request $request)
120120

121121
$messages->push('Message has been sent.');
122122
} catch (Exception $e) {
123-
$errors->push("Message could not be sent.");
123+
$errors->push('Message could not be sent.');
124124
$errors->push("Mailer Error: {$mail->ErrorInfo}");
125125
}
126126

@@ -136,7 +136,7 @@ public function save(Request $request)
136136
return view(
137137
'config',
138138
compact('mail_from', 'mail_subject', 'mail_content', 'frequency', 'expire_delay', 'reminder')
139-
)
139+
)
140140
->with('messages', $messages)
141141
->with('errors', $errors);
142142
}

app/Http/Controllers/ControlController.php

Lines changed: 152 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use App\Models\Document;
99
use App\Models\Domain;
1010
use App\Models\Measure;
11-
use App\Models\User;
1211
use Carbon\Carbon;
1312
use Illuminate\Http\Request;
1413
use Illuminate\Http\Response;
@@ -333,20 +332,32 @@ public function create()
333332
sort($values);
334333
$values = array_unique($values);
335334

336-
$users = User::orderBy('name')->get();
335+
// get users
336+
$users = DB::table('users')
337+
->select('id', 'name')
338+
->orderBy('name')
339+
->get();
337340

338341
// get all groups
339-
$all_groups = DB::table('user_groups')
342+
$groups = DB::table('user_groups')
340343
->select('id', 'name')
341344
->orderBy('name')
342345
->get();
343346

347+
// Owners list
348+
$owners = collect();
349+
foreach ($users as $user) {
350+
$owners->put('USR_' . $user->id, $user->name);
351+
}
352+
foreach ($groups as $group) {
353+
$owners->put('GRP_' . $group->id, $group->name);
354+
}
355+
344356
return view('controls.create')
345357
->with('scopes', $scopes)
346358
->with('all_measures', $all_measures)
347-
->with('all_groups', $all_groups)
348359
->with('attributes', $values)
349-
->with('users', $users);
360+
->with('owners', $owners);
350361
}
351362

352363
/**
@@ -394,8 +405,23 @@ public function store(Request $request)
394405
// Save it
395406
$control->save();
396407

397-
// Sync onwers
398-
$control->owners()->sync($request->input('owners', []));
408+
// Sync users
409+
$users = collect();
410+
foreach ($request->input('owners', []) as $owner) {
411+
if (str_starts_with($owner, 'USR_')) {
412+
$users->push(intval(substr($owner, 4)));
413+
}
414+
}
415+
$control->users()->sync($users);
416+
417+
// Sync groups
418+
$groups = collect();
419+
foreach ($request->input('owners', []) as $owner) {
420+
if (str_starts_with($owner, 'GRP_')) {
421+
$groups->push(intval(substr($owner, 4)));
422+
}
423+
}
424+
$control->groups()->sync($groups);
399425

400426
// Sync measures
401427
$control->measures()->sync($request->input('measures', []));
@@ -514,15 +540,27 @@ public function edit(int $id)
514540
->orderBy('id')
515541
->get();
516542

517-
// Get all users
518-
$users = User::orderBy('name')->get();
543+
// get users
544+
$users = DB::table('users')
545+
->select('id', 'name')
546+
->orderBy('name')
547+
->get();
519548

520-
// Get all groups
521-
$all_groups = DB::table('user_groups')
549+
// get all groups
550+
$groups = DB::table('user_groups')
522551
->select('id', 'name')
523552
->orderBy('name')
524553
->get();
525554

555+
// Owners list
556+
$owners = collect();
557+
foreach ($users as $user) {
558+
$owners->put('USR_' . $user->id, $user->name);
559+
}
560+
foreach ($groups as $group) {
561+
$owners->put('GRP_' . $group->id, $group->name);
562+
}
563+
526564
// get measures
527565
$measures = DB::table('control_measure')
528566
->select('measure_id')
@@ -559,11 +597,10 @@ public function edit(int $id)
559597
->with('documents', $documents)
560598
->with('scopes', $scopes)
561599
->with('all_measures', $all_measures)
562-
->with('all_groups', $all_groups)
563600
->with('measures', $measures)
564601
->with('ids', $ids)
565602
->with('attributes', $values)
566-
->with('users', $users);
603+
->with('owners', $owners);
567604
}
568605

569606
/**
@@ -610,14 +647,27 @@ public function clone(Request $request)
610647
sort($values);
611648
$values = array_unique($values);
612649

613-
$users = User::orderBy('name')->get();
650+
// get users
651+
$users = DB::table('users')
652+
->select('id', 'name')
653+
->orderBy('name')
654+
->get();
614655

615656
// get all groups
616-
$all_groups = DB::table('user_groups')
657+
$groups = DB::table('user_groups')
617658
->select('id', 'name')
618659
->orderBy('name')
619660
->get();
620661

662+
// Owners list
663+
$owners = collect();
664+
foreach ($users as $user) {
665+
$owners->put('USR_' . $user->id, $user->name);
666+
}
667+
foreach ($groups as $group) {
668+
$owners->put('GRP_' . $group->id, $group->name);
669+
}
670+
621671
// Get Control
622672
$control = Control::find($request->id);
623673

@@ -635,15 +685,24 @@ public function clone(Request $request)
635685
);
636686
$request->merge(['measures' => $control->measures()->pluck('id')->toArray()]);
637687
$request->merge(['attributes' => explode(' ', $control->attributes)]);
638-
$request->merge(['owners' => $control->owners()->pluck('id')->toArray()]);
688+
689+
// Construct owners copy
690+
$items = [];
691+
foreach ($control->users as $user) {
692+
array_push($items, 'USR_' . $user->id);
693+
}
694+
foreach ($control->groups as $group) {
695+
array_push($items, 'GRP_' . $group->id);
696+
}
697+
$request->merge(['owners' => $items]);
698+
639699
$request->flash();
640700

641701
return view('controls.create')
642702
->with('scopes', $scopes)
643703
->with('all_measures', $all_measures)
644-
->with('all_groups', $all_groups)
645704
->with('attributes', $values)
646-
->with('users', $users);
705+
->with('owners', $owners);
647706
}
648707

649708
/**
@@ -1098,7 +1157,26 @@ public function plan(int $id)
10981157
$months[$month] = $month;
10991158
}
11001159

1101-
$users = User::orderBy('name')->get();
1160+
// get users
1161+
$users = DB::table('users')
1162+
->select('id', 'name')
1163+
->orderBy('name')
1164+
->get();
1165+
1166+
// get all groups
1167+
$groups = DB::table('user_groups')
1168+
->select('id', 'name')
1169+
->orderBy('name')
1170+
->get();
1171+
1172+
// Owners list
1173+
$owners = collect();
1174+
foreach ($users as $user) {
1175+
$owners->put('USR_' . $user->id, $user->name);
1176+
}
1177+
foreach ($groups as $group) {
1178+
$owners->put('GRP_' . $group->id, $group->name);
1179+
}
11021180

11031181
// get all measures
11041182
$all_measures = DB::table('measures')
@@ -1130,7 +1208,7 @@ public function plan(int $id)
11301208
->with('all_measures', $all_measures)
11311209
->with('measures', $measures)
11321210
->with('scopes', $scopes)
1133-
->with('users', $users);
1211+
->with('owners', $owners);
11341212
}
11351213

11361214
/**
@@ -1215,9 +1293,26 @@ public function doPlan(Request $request)
12151293
// Update fields
12161294
$control->plan_date = $request->plan_date;
12171295
$control->periodicity = $request->periodicity;
1218-
$control->owners()->sync($request->input('owners', []));
12191296
$control->save();
12201297

1298+
// Sync users
1299+
$users = collect();
1300+
foreach ($request->input('owners', []) as $owner) {
1301+
if (str_starts_with($owner, 'USR_')) {
1302+
$users->push(intval(substr($owner, 4)));
1303+
}
1304+
}
1305+
$control->users()->sync($users);
1306+
1307+
// Sync groups
1308+
$groups = collect();
1309+
foreach ($request->input('owners', []) as $owner) {
1310+
if (str_starts_with($owner, 'GRP_')) {
1311+
$groups->push(intval(substr($owner, 4)));
1312+
}
1313+
}
1314+
$control->groups()->sync($groups);
1315+
12211316
// Redirect
12221317
return redirect('/bob/show/' . $request->id);
12231318
}
@@ -1363,18 +1458,16 @@ public function doMake(Request $request)
13631458
)
13641459
);
13651460
}
1366-
13671461
$new_control->save();
13681462

13691463
// Set owners
1370-
$new_control
1371-
->owners()
1372-
->sync($control->owners->pluck('id'));
1464+
$new_control->users()->sync($control->users->pluck('id'));
1465+
1466+
// Set groups
1467+
$new_control->groups()->sync($control->groups->pluck('id'));
13731468

13741469
// Set measures
1375-
$new_control
1376-
->measures()
1377-
->sync($control->measures->pluck('id'));
1470+
$new_control->measures()->sync($control->measures->pluck('id'));
13781471

13791472
// make link
13801473
$control->next_id = $new_control->id;
@@ -1409,6 +1502,17 @@ public function save(Request $request)
14091502
// Control not found
14101503
abort_if($control === null, Response::HTTP_NOT_FOUND, '404 Not Found');
14111504

1505+
$this->validate(
1506+
$request,
1507+
[
1508+
'name' => 'required|min:3|max:255',
1509+
'scope' => 'max:32',
1510+
'objective' => 'required',
1511+
'plan_date' => 'required',
1512+
'periodicity' => 'required|integer',
1513+
]
1514+
);
1515+
14121516
$control->name = request('name');
14131517
$control->scope = request('scope');
14141518
$control->objective = request('objective');
@@ -1427,9 +1531,26 @@ public function save(Request $request)
14271531
$control->periodicity = request('periodicity');
14281532
$control->status = request('status');
14291533
$control->next_id = request('next_id');
1430-
// Sync
1431-
$control->owners()->sync($request->input('owners', []));
1432-
$control->groups()->sync($request->input('groups', []));
1534+
1535+
// Sync users
1536+
$users = collect();
1537+
foreach ($request->input('owners', []) as $owner) {
1538+
if (str_starts_with($owner, 'USR_')) {
1539+
$users->push(intval(substr($owner, 4)));
1540+
}
1541+
}
1542+
$control->users()->sync($users);
1543+
1544+
// Sync groups
1545+
$groups = collect();
1546+
foreach ($request->input('owners', []) as $owner) {
1547+
if (str_starts_with($owner, 'GRP_')) {
1548+
$groups->push(intval(substr($owner, 4)));
1549+
}
1550+
}
1551+
$control->groups()->sync($groups);
1552+
1553+
// Sync Measures
14331554
$control->measures()->sync($request->input('measures', []));
14341555

14351556
$control->save();

0 commit comments

Comments
 (0)