コード例 #1
0
ファイル: Acl.php プロジェクト: richjoslin/rivety
	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);
			}
		}
	}
コード例 #2
0
ファイル: InstallController.php プロジェクト: jaybill/Bolts
 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.");
     }
 }
コード例 #3
0
	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;
	}
コード例 #4
0
	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";
	}