PrivillageController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace App\Http\Controllers\INFO;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Model\Privillage\Role;
  6. use App\Model\Privillage\RoleAcl;
  7. use App\Model\Modules\Module;
  8. use Session;
  9. use DB;
  10. use Auth;
  11. class PrivillageController extends Controller
  12. {
  13. public function __construct()
  14. {
  15. $this->middleware('auth');
  16. }
  17. public function app(){
  18. $roles = Role::all();
  19. $getKdModule = DB::table('modules')->where('menu_path',request()->path())->value('kdModule');
  20. $getEdit = DB::table('role_acl')
  21. ->where('module_id', $getKdModule)->where('role_id',Auth::user()->role_id)
  22. ->value('update_acl');
  23. $getDelete = DB::table('role_acl')
  24. ->where('module_id', $getKdModule)->where('role_id',Auth::user()->role_id)
  25. ->value('delete_acl');
  26. $getCreate = DB::table('role_acl')
  27. ->where('module_id', $getKdModule)->where('role_id',Auth::user()->role_id)
  28. ->value('create_acl');
  29. return view('layouts.dev.info.privillageUser.app',compact('roles','getKdModule','getEdit','getDelete','getCreate'));
  30. }
  31. public function create(Request $request){
  32. $role = new Role;
  33. $role->role_name = $request->role_name;
  34. $role->description = $request->description;
  35. $role->akses = $request->role_name;
  36. $role->save();
  37. $roles = Module::where('menu_parent', '!=', 0)->get();
  38. foreach ($roles as $module) {
  39. Roleacl::create([
  40. 'module_id' => $module->kdModule,
  41. 'role_id' => $role->id,
  42. 'create_acl' => $request->input($module->kdModule.'_create'),
  43. 'read_acl' => $request->input($module->kdModule.'_read'),
  44. 'update_acl' => $request->input($module->kdModule.'_update'),
  45. 'delete_acl' => $request->input($module->kdModule.'_delete'),
  46. 'module_parent' => $module->menu_parent,
  47. ]);
  48. }
  49. $this->flashAlert('Success','green','clipboard-check','Success Input Data!');
  50. return redirect()->back();
  51. }
  52. public function viewById($id){
  53. $role = Role::find($id);
  54. return view('layouts.dev.info.privillageUser.edit')->with('role',$role);
  55. }
  56. public function detailById($id){
  57. $role = Role::find($id);
  58. return view('layouts.dev.info.privillageUser.detail')->with('role',$role);
  59. }
  60. public function update($id, Request $request)
  61. {
  62. $role = Role::find($id)->update([
  63. 'role_name' => $request->role_name,
  64. 'description' => $request->description,
  65. 'akses' => $request->role_name
  66. ]);
  67. $roles = Module::where('menu_parent', '!=', 0)->get();
  68. foreach ($roles as $modules) {
  69. $data = [
  70. 'module_id' => $modules->kdModule,
  71. 'role_id' => $id,
  72. 'create_acl' => $request->input($modules->kdModule.'_create'),
  73. 'read_acl' => $request->input($modules->kdModule.'_read'),
  74. 'update_acl' => $request->input($modules->kdModule.'_update'),
  75. 'delete_acl' => $request->input($modules->kdModule.'_delete'),
  76. 'module_parent' => $modules->menu_parent,
  77. ];
  78. $cek = RoleAcl::where('module_id', $modules->kdModule)->where('role_id', $id)->first();
  79. if ($cek == null) {
  80. $rolenya = RoleAcl::create($data);
  81. } else {
  82. $rolenya = RoleAcl::find($cek->id);
  83. $rolenya->update($data);
  84. }
  85. }
  86. $this->flashAlert('Success','green','clipboard-check','Success Edit Data!');
  87. return redirect(route('privillage'));
  88. }
  89. public function delete($id)
  90. {
  91. $getAkses = Role::where('id',$this->decryptId($id))->value('akses');
  92. Role::where('id', $this->decryptId($id))->delete();
  93. Roleacl::where('role_id', $this->decryptId($id))->delete();
  94. $this->flashAlert('Success','red','clipboard-check','Success Delete Data!');
  95. return redirect()->back();
  96. }
  97. }