/** * Handle the form. * * @param PermissionFormBuilder $builder * @param RoleRepositoryInterface $roles * @param Redirector $redirect */ public function handle(PermissionFormBuilder $builder, RoleRepositoryInterface $roles, Redirector $redirect) { /* @var RoleInterface|EloquentModel $role */ $role = $builder->getEntry(); $roles->save($role->setAttribute('permissions', array_filter(array_flatten($builder->getFormInput())))); $builder->setFormResponse($redirect->refresh()); }
/** * Handle the form. * * @param PermissionFormBuilder $builder * @param RoleRepositoryInterface $roles * @param Redirector $redirect */ public function handle(PermissionFormBuilder $builder, RoleRepositoryInterface $roles, Redirector $redirect) { /* @var RoleInterface $role */ $role = $builder->getEntry(); $roles->save($role->setPermissions(array_keys(array_dot(array_map(function ($values) { return array_combine(array_values($values), array_pad([], count($values), true)); }, array_filter($builder->getFormInput())))))); $builder->setFormResponse($redirect->refresh()); }
/** * If nothing is posted then * the role gets no permissions. * * @param RoleRepositoryInterface $roles */ public function onPost(RoleRepositoryInterface $roles) { if (!$this->hasPostData() && ($entry = $this->getEntry())) { $roles->save($entry->setAttribute('permissions', [])); } }