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); }
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); }