/**
  * Check to see if a user is in a group
  *
  * @param integer $userId User ID
  * @param integer $groupId Group ID
  * @param OutputInterface $output Output object
  */
 public function inGroup($userId, $groupId, $output)
 {
     $group = Gatekeeper::findGroupById($groupId);
     $result = Gatekeeper::findUserById($userId)->inGroup($groupId);
     $output->writeln($result === true ? "User in group '" . $group->description . "'." : "User <options=bold>not</options=bold> in group '" . $group->description . "'.");
     return $result;
 }
Exemple #2
0
 public function upsertGroupProcessAction()
 {
     $id = $_POST['id'] ?? null;
     if ($id && !ctype_digit($id)) {
         $this->flasher->error('E01 Invalid group ID: ' . $id);
         $this->redirect('/users/groups');
     }
     $group = null;
     if ($id) {
         $group = Gatekeeper::findGroupById($id);
         if (!$group) {
             $this->flasher->error('E02 Invalid group ID: ' . $id);
         }
     }
     try {
         v::alnum('-._')->setName('Group name')->check($_POST['name']);
     } catch (ValidationException $e) {
         $this->flasher->error($e->getMainMessage());
         echo $this->twig->render('users/groups/upsert.twig', ['flashes' => $this->flasher->display(), 'group' => $group ?: $_POST]);
         return false;
     }
     if ($group) {
         $group->name = $_POST['name'];
         $group->description = $_POST['description'];
         $group->save();
     } else {
         Gatekeeper::createGroup($_POST);
         if (Gatekeeper::getLastError()) {
             $this->flasher->error($this->site['debug'] ? Gatekeeper::getLastError() : "Could not create group!");
             echo $this->twig->render('users/groups/upsert.twig', ['flashes' => $this->flasher->display(), 'user' => $group ?: $_POST]);
             return false;
         }
         $this->flasher->success('Successfully created group.');
         $this->redirect('/users/groups');
     }
 }
            $view->render('json.php', $groups->toArray(true));
        });
        $app->get('/user', function ($id) use($app, $view) {
            $users = g::findPermissionById($id)->users;
            $view->render('json.php', $users->toArray(true));
        });
        $app->delete('/user/:userId', function ($permId, $userId) use($app, $view) {
            $user = g::findUserById($userId);
            $user->revokePermission($permId);
        });
        $app->delete('/group/:groupId', function ($permId, $groupId) use($app, $view) {
            $group = g::findGroupById($groupId);
            $group->removePermission($permId);
        });
        $app->put('/group/:groupId', function ($permId, $groupId) use($app, $view) {
            $group = g::findGroupById($groupId);
            $group->addPermission($permId);
        });
        $app->put('/user/:userId', function ($permId, $userId) use($app, $view) {
            $user = g::findUserById($userId);
            $user->addPermission($permId);
        });
    });
});
// Pages
$app->group('/permissions', function () use($app, $view) {
    $app->get('/', function () use($app, $view) {
        $permissions = g::findPermissions();
        $data = ['permissions' => $permissions->toArray(true)];
        $view->render('permissions/index.php', $data);
    });