protected function get_view() { $privs = new UserKnownPrivsModel($this->connection); $pages = FannieAPI::listModules('FanniePage'); sort($pages); $custom = new PagePermissionsModel($this->connection); $ret = '<form method="post"> <div class="panel panel-default"> <div class="panel-heading">Create Custom Permissions</div> <div class="panel-body"> <div class="form-group"> <label>Page</label> <select name="page" class="form-control"> <option value="">Choose page</option> ' . array_reduce($pages, function ($carry, $page) { return $carry . '<option>' . $page . '</option>'; }) . ' </select> </div> <div class="form-group"> <label>Permission Class</label> <select name="auth" class="form-control"> ' . $privs->toOptions(-1, true) . ' </select> </div> <div class="form-group"> <button type="submit" class="btn btn-default btn-core">Create</button> </div> </div> </div> </form> <div class="panel panel-default"> <div class="panel-heading">Pages With Custom Permissions</div> <div class="panel-body"> <table class="table table-bordered table-striped"> <tr><th>Name</th><th>Description</th><th> </th></tr> ' . array_reduce($custom->find('pageClass'), function ($carry, $obj) { $page_class = $obj->pageClass(); $page = new $page_class(); return $carry . sprintf('<tr><td>%s</td><td>%s</td><td> <a href="_method=delete&id=%s" class="btn btn-danger btn-xs">%s</a></td></tr>', $page_class, $page->description, $page_class, \COREPOS\Fannie\API\lib\FannieUI::deleteIcon()); }) . ' </table> </div> </div> '; return $ret; }
/** Create/update authorization class @param $auth_class [string] class name @param $description [string] description of authorization class @return [boolean] success / failure */ public static function createClass($auth_class, $description) { $dbc = FannieDB::get(FannieConfig::factory()->get('OP_DB')); if (!$dbc->tableExists('userKnownPrivs')) { return false; } $notes = str_replace("\n", "<br />", $description); $model = new UserKnownPrivsModel($dbc); $model->auth_class($auth_class); $model->notes($notes); return $model->save() ? true : false; }