示例#1
0
 public function permission($id)
 {
     if (!empty($id)) {
         $ui_profile = new UiProfile();
         $ui_profile = $ui_profile->find($id);
         $this->_dataView['ui_profile'] = $ui_profile;
     }
     $params = \Input::all();
     if (!empty($params)) {
         foreach ($params['permissions'] as $module => $actions) {
             //Recupera o modulo selecionado
             $ui_module = UiModule::where('module', '=', $module)->first();
             //Apaga todas as permissões do módulo selecionado
             \DB::table('ui_acl')->where('ui_profile_id', '=', $ui_profile->id)->whereRaw('ui_module_action_id IN (SELECT id FROM ui_module_action WHERE ui_module_id = ' . $ui_module->id . ')')->delete();
             foreach ($actions as $ui_module_action_id => $action) {
                 $ui_acl = new UiAcl();
                 $ui_acl->ui_profile_id = $ui_profile->id;
                 $ui_acl->ui_module_action_id = $ui_module_action_id;
                 $ui_acl->save();
             }
         }
         return \Redirect::to('uiadmin/uiprofile');
     }
     $ui_modules = UiModule::all();
     $ar_ui_modules = array();
     foreach ($ui_modules as $ui_module) {
         $ui_module_action = UiModuleAction::where('ui_module_id', '=', $ui_module->id)->get();
         $ar_module_action = array();
         foreach ($ui_module_action as $module_action) {
             $ob_module_action = (object) $module_action->toArray();
             $ui_acl = UiAcl::where('ui_profile_id', '=', $ui_profile->id)->where('ui_module_action_id', '=', $module_action->id)->first();
             if (!empty($ui_acl)) {
                 $ob_module_action->exists = true;
             } else {
                 $ob_module_action->exists = false;
             }
             array_push($ar_module_action, $ob_module_action);
         }
         $ob_ui_mobile = (object) $ui_module->toArray();
         $ob_ui_mobile->actions = $ar_module_action;
         array_push($ar_ui_modules, $ob_ui_mobile);
     }
     $ui_modules = $ar_ui_modules;
     $this->_dataView['ui_modules'] = $ui_modules;
     $this->_dataView['module_action'] = 'Permissões';
     return view('uiprofile::permission', $this->_dataView);
 }