/** * Store a newly created resource in storage. * * @return Response */ public function store() { $validator = Validator::make(Input::all(), Config::get('validator.admin.role')); if ($validator->passes()) { $role = new Role(); $role->name = Input::get('name'); $role->deletable = 1; // Was the blog post created? if ($role->save()) { //Set all permission to deny $resources = Resource::where('in_admin_ui', '=', 1)->get(); $data = array(); foreach ($resources as $resource) { foreach (Action::all() as $action) { $data[] = array('role_id' => $role->id, 'type' => 'deny', 'action_id' => $action->id, 'resource_id' => $resource->id); } } DB::table('permissions')->insert($data); //track user parent::track('create', 'Role', $role->id); return Redirect::to('admin/role_permission')->with('success', Lang::get('admin.role_save_success')); } // Redirect to the blog post create role return Redirect::to('admin/role/create')->with('error', Lang::get('admin.role_save_fail')); } // Form validation failed return Redirect::to('admin/role/create')->withInput()->withErrors($validator); }
/** * hasPermissions * */ public function hasPermission($action, $resource) { $action_id = Action::where('name', '=', $action)->first()->id; $resource_id = Resource::where('name', '=', $resource)->first()->id; foreach ($this->roles as $role) { foreach ($role->permissionsAllowed as $permission) { if ($permission->action_id == $action_id && $permission->resource_id == $resource_id) { return true; } } } return false; }
/** * return an array of Object for all not allowed resources * * @return array */ protected function getResourceNotAllowed() { $notAllowed = array(); $resourceNavigable = Resource::where('navigable', '=', 1)->get(); foreach ($resourceNavigable as $resource) { $modelName = $resource->model; //Si la clé allowed['resource'] exists, put the objet in this $objects = $modelName::getNotAllowed(); if (count($objects) > 0) { if (isset($notAllowed[$modelName])) { $notAllowed[$modelName] = array_merge($notAllowed[$modelName], $objects); } else { $notAllowed[$modelName] = $objects; } } } return $notAllowed; }
public function lookResrc() { if (Request::ajax()) { $keyword = Input::get('keyword'); $resrc = Resource::where('name', 'LIKE', "%m%"); return $resrc->name; } }
public function initCache() { // !!! DATABASE CACHE !!! //Cache Model::Menu //Cache::forget('DB_Menu'); /*Cache::rememberForever('DB_Menu', function() { return Menu::where('parent_id','=',0)->orderBy('order','ASC')->get(); });*/ //Cache Model::Locale Cache::rememberForever('DB_LocaleFrontEnable', function () { //Get all data in database $locales = Locale::where('enable', '=', 1)->where('is_publish', '=', 1)->get(); //Preapre data to extract by id $data = array(); foreach ($locales as $l) { $data[] = $l->id; } return $data; }); //Cache Model::Nav Cache::rememberForever('DB_Nav', function () { return Nav::where('parent_id', '=', 0)->orderBy('order', 'ASC')->get(); }); //Cache Model::Resource('name') Cache::rememberForever('DB_AdminResourceName', function () { //Get all data in database $resources = Resource::where('in_admin_ui', '=', 1)->get(); //Preapre data to extract by id $data = array(); foreach ($resources as $r) { $data[$r->id] = $r->name; } return $data; }); Cache::rememberForever('DB_AdminResource', function () { //Get all data in database return Resource::where('in_admin_ui', '=', 1)->get(); }); Cache::rememberForever('DB_AdminResourceNavigable', function () { //Get all data in database return Resource::where('navigable', '=', 1)->where('in_admin_ui', '=', 1)->get(); }); // Get all Locales enableds in the table Cache::rememberForever('DB_LocalesEnabled', function () { return Locale::where('enable', 1)->where('is_publish', 1)->get(); }); Cache::rememberForever('DB_AdminBlockTypes', function () { //Get all data in database return BlockType::all(); }); //Cache Model::Mosaique('name') //Cache::forget('DB_Mosaique'); /*Cache::rememberForever('DB_Mosaique', function() { //Get all data in database return Mosaique::all(); });*/ //Cache Model::Option Cache::rememberForever('DB_Option', function () { return Option::all(); }); //Cache Model::Urls Cache::rememberForever('DB_Urls', function () { $data = DB::select(' SELECT translations.i18n_id , translations.text , translations.locale_id FROM translations INNER JOIN i18n_types ON i18n_types.name = ? INNER JOIN i18n ON i18n.i18n_type_id = i18n_types.id AND translations.i18n_id = i18n.id ', array('url')); //$data = Translation::i18n()->where('i18n_type_id','=',I18nType::where('name','=','url')->first()->id)->get $datas = array(); foreach ($data as $d) { $datas[] = array('i18n_id' => $d->i18n_id, 'url' => $d->text, 'locale_id' => $d->locale_id); } return $datas; }); }
<?php Route::group(["before" => "guest"], function () { if (Schema::hasTable('resource')) { $resources = Resource::where("secure", false)->get(); foreach ($resources as $resource) { Route::any($resource->pattern, ["as" => $resource->name, "uses" => $resource->target]); } } }); Route::group(["before" => "auth"], function () { if (Schema::hasTable('resource')) { $resources = Resource::where("secure", true)->get(); foreach ($resources as $resource) { Route::any($resource->pattern, ["as" => $resource->name, "uses" => $resource->target]); } } });
public function editAction() { /* FALTA */ $form = new GroupForm(); $id = Input::get("id"); $group = Group::findOrFail($id); $url = URL::full(); if ($form->isPosted()) { if ($form->isValidForEdit()) { $group->name = Input::get("name"); $group->save(); $group->users()->sync(Input::get("user_id", [])); $group->resources()->sync(Input::get("resource_id", [])); return Redirect::route("group/index"); } return Redirect::to($url)->withInput(["name" => Input::get("name"), "errors" => $form->getErrors(), "url" => $url]); } //die(var_dump($group)); return View::make("group/edit", ["form" => $form, "group" => $group, "users" => User::all(), "HeaderTitle" => "EDIT GROUP", "resources" => Resource::where("secure", true)->get()]); }