/** * Function instance the acl of a particular profile * * @access public * @param integer $profile * @return \Zend\Permissions\Acl\Acl */ public static function getProfileAcl($profile) { $acl = new AclLibrary(); // get all resources in application $resources = Resource::all(); // get all permissions fron this profile $permissions = Permission::getRecord($profile); // set profile id $acl->addRole(new Role($profile)); // add resources to acl element foreach ($resources as $resource) { $acl->addResource(new AclResource($resource->id_007)); } // add resources to acl element foreach ($permissions as $permission) { $acl->allow($profile, $permission->resource_id_009, $permission->action_id_009); } return $acl; }
public function setAllPermissions() { // get parameters from url route $parameters = $this->request->route()->parameters(); $profile = Profile::find($parameters['id']); $resources = Resource::all(); $actions = Action::all(); $permissions = []; foreach ($resources as $resource) { foreach ($actions as $action) { $permissions[] = ['profile_id_009' => $parameters['id'], 'resource_id_009' => $resource->id_007, 'action_id_009' => $action->id_008]; } } Permission::deleteRecordsProfile($parameters['id']); Permission::insert($permissions); // if profile it's same that our profile, overwrite ours permissions if ($profile->id_006 == auth('pulsar')->user()->profile_id_010) { session(['userAcl' => AclLibrary::getProfileAcl(auth('pulsar')->user()->profile_id_010)]); } return redirect()->route($this->routeSuffix, $parameters)->with(['msg' => 1, 'txtMsg' => trans('pulsar::pulsar.message_create_all_permissions', ['profile' => $profile->name_006])]); }