public function __construct(Zend_Auth $auth) { // we need to do this recursively because of role inheritance $this->addRoles(); $resources = new RolesResources(); $rsResources = $resources->fetchAll(); foreach ($rsResources as $resource) { $resource_mca = $resource->module . "-" . $resource->controller . "-" . $resource->action; if (!$this->has($resource_mca)) $this->add(new Zend_Acl_Resource($resource_mca)); $this->allow($resource->role_id, $resource_mca); } $roles_res_extra_table = new RolesResourcesExtra(); $res_extras = $roles_res_extra_table->fetchAll(); if (count($res_extras) > 0) { foreach ($res_extras as $res_extra) { $extra_resource_mca = $res_extra->module . "-@@EXTRA-" . $res_extra->resource; if (!$this->has($extra_resource_mca)) $this->add(new Zend_Acl_Resource($extra_resource_mca)); $this->allow($res_extra->role_id, $extra_resource_mca); } } }
function finishedAction() { $request = new Bolts_Request($this->getRequest()); $username = $request->username; $users_table = new Users(); $user = $users_table->fetchByUsername($username); $password = substr(md5(rand(50000, 100000)), 0, 8); if (!is_null($user)) { $user->password = $password; $user->save(); $this->view->username = $username; $this->view->password = $password; // we should never need this again, so we remove access to it. $roles_resources_table = new RolesResources(); $where = $roles_resources_table->getAdapter()->quoteInto("module = ? ", "bolts"); $where .= $roles_resources_table->getAdapter()->quoteInto(" and controller = ? ", "Install"); $roles_resources_table->delete($where); $modules_table = new Modules("core"); $modules_table->upgradeDatabase("bolts"); } else { die("Somehow the admin user didn't get created or didn't get sent with the request. This is bad. Really, really bad."); } }
protected function isResourceInherited($module, $controller, $action, $role_id) { $inheritsResource = false; $roles_table = new Roles(); $roles_roles_table = new RolesRoles(); $roles_resources_table = new RolesResources(); $inherited_ids = $roles_table->getAllAncestors($role_id); if (count($inherited_ids) > 0) { foreach ($inherited_ids as $inherited_id) { // determine if parent has access to this resource $roles_resource = $roles_resources_table->fetchRow( "role_id=".$inherited_id." and ". "module='".$module."' and ". "controller='".$controller."' and ". "action='".$action."' " ); if (!is_null($roles_resource)) { //parent has it, role is inherited $inheritsResource = true; } } } return $inheritsResource; }
function finishedAction() { $request = new RivetyCore_Request($this->getRequest()); $username = $request->username; $users_table = new Users(); $user = $users_table->fetchByUsername($username); $password = substr(md5(rand(50000, 100000)), 0, 8); if (!is_null($user)) { // TODO: check the referrer ! // if this page is reloaded, the admin password is going to get reset to something random, and this page is going to get redirected - CRITICAL FIX $user->password = $password; $user->save(); $this->view->username = $username; $this->view->password = $password; // we should never need this again, so we remove access to it. $roles_resources_table = new RolesResources(); $where = $roles_resources_table->getAdapter()->quoteInto("module = ? ", "default"); $where .= $roles_resources_table->getAdapter()->quoteInto(" and controller = ? ", "Install"); $roles_resources_table->delete($where); $modules_table = new Modules('core'); $modules_table->upgradeDatabase('default'); } else { die("Error creating admin user. Please check for errors in /logs/RivetyCore_log"); } $this->view->admin_theme_url = "/core/default/views/admin/default"; $this->view->admin_theme_global_path = Zend_Registry::get('basepath') . "/themes/admin/default/global"; }