Ejemplo n.º 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);
 }
Ejemplo n.º 2
0
 public function actions(Request $request, $id)
 {
     if (!empty($id)) {
         $ui_module = new UiModule();
         $ui_module = $ui_module->find($id);
     }
     $params = \Input::all();
     if (!empty($params)) {
         //Recuperar os nomes das ações e realiza o tratamento para gravar
         foreach ($params['name'] as $module_id => $names) {
             foreach ($names as $key => $name) {
                 //Verificar se o nome da ação foi informado
                 if (!empty($name)) {
                     //Verifica se o registra já esta cadastrado
                     $ui_module_action = UiModuleAction::where('ui_module_id', '=', $module_id)->where('action', '=', $params['action'][$module_id][$key])->first();
                     if (!$ui_module_action) {
                         $ui_module_action = new UiModuleAction();
                     }
                     //Configura o model para gravar as informações
                     $ui_module_action->ui_module_id = $module_id;
                     $ui_module_action->name = $name;
                     $ui_module_action->link = $params['link'][$module_id][$key];
                     $ui_module_action->action = $params['action'][$module_id][$key];
                     $ui_module_action->save();
                 }
             }
         }
         return \Redirect::to('uiadmin/uimodule');
     }
     $methods_ignored = array('__construct', 'middleware', 'beforeFilter', 'afterFilter', 'parseFilter', 'registerClosureFilter', 'registerInstanceFilter', 'isInstanceFilter', 'forgetBeforeFilter', 'forgetAfterFilter', 'removeFilter', 'getMiddleware', 'getBeforeFilters', 'getAfterFilters', 'getRouter', 'setRouter', 'callAction', 'missingMethod', '__call', 'dispatch', 'dispatchFromArray', 'dispatchFrom', 'validate', 'validateWithBag', 'throwValidationException', 'buildFailedValidationResponse', 'formatValidationErrors', 'getRedirectUrl', 'getValidationFactory', 'withErrorBag', 'errorBag');
     //Configura o nome do controller
     $ui_controller_name = "Modules\\{$ui_module->module}\\Http\\Controllers\\{$ui_module->module}" . "Controller";
     //Instacia o controller
     $ui_module_controller = new $ui_controller_name($request);
     //Recupera todos os metodos do controlador informado
     $controller_actions = get_class_methods($ui_module_controller);
     //Lista de controllers da aplicacao
     $ui_module_controller_actions = array();
     foreach ($controller_actions as $controller_action) {
         if (!in_array($controller_action, $methods_ignored)) {
             $ui_module_action = UiModuleAction::where('ui_module_id', '=', $ui_module->id)->where('action', '=', $controller_action)->first();
             $ob_ui_module_action = (object) null;
             if ($ui_module_action) {
                 $ob_ui_module_action = (object) $ui_module_action->toArray();
             } else {
                 $ob_ui_module_action->id = '';
                 $ob_ui_module_action->name = $controller_action;
                 $ob_ui_module_action->link = $ui_module->route . '/' . $controller_action;
                 $ob_ui_module_action->action = $controller_action;
             }
             array_push($ui_module_controller_actions, $ob_ui_module_action);
         }
     }
     $this->_dataView['ui_module_controller_actions'] = $ui_module_controller_actions;
     $this->_dataView['ui_module'] = $ui_module;
     $this->_dataView['module_action'] = 'Ações';
     return view('uimodule::actions', $this->_dataView);
 }