当前位置: 首页>>代码示例>>PHP>>正文


PHP Roles::getIdByShortname方法代码示例

本文整理汇总了PHP中Roles::getIdByShortname方法的典型用法代码示例。如果您正苦于以下问题:PHP Roles::getIdByShortname方法的具体用法?PHP Roles::getIdByShortname怎么用?PHP Roles::getIdByShortname使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Roles的用法示例。


在下文中一共展示了Roles::getIdByShortname方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: isAllowed

 static function isAllowed($resource, $module = "default", $username = null)
 {
     $users_roles_table = new UsersRoles();
     $user_roles = array();
     $roles_table = new Roles();
     if (!is_null($username)) {
         $users_roles_db = $users_roles_table->fetchAll($users_roles_table->select()->where("username = ?", $username));
         $user_roles = array();
         if (count($users_roles_db) > 0) {
             foreach ($users_roles_db as $role) {
                 $user_roles[] = $role->role_id;
             }
         }
     } else {
         $user_roles = array($roles_table->getIdByShortname("guest"));
     }
     $resource_name = $module . "-@@EXTRA-" . $resource;
     $out = false;
     if (Zend_Registry::isRegistered('acl')) {
         $acl = Zend_Registry::get('acl');
         if ($acl->has($resource_name)) {
             foreach ($user_roles as $role) {
                 if ($acl->isAllowed($role, $resource_name)) {
                     $out = true;
                 }
             }
         }
     }
     return $out;
 }
开发者ID:jaybill,项目名称:Bolts,代码行数:30,代码来源:ExtraResourceCheck.php

示例2: isAllowed

	static function isAllowed($resource,$module = "default",$username = null,$controller = null){
		$users_roles_table = new UsersRoles();
		$roles_table = new Roles();
		if(!is_null($username)){
			$users_roles_db = $users_roles_table->fetchAll($users_roles_table->select()->where("username = ?",$username));
			
			if(count($users_roles_db) > 0){
				$user_roles = array();
				$users_roles_db = $users_roles_db->toArray();
				
				foreach($users_roles_db as $role){
					$ancs = $roles_table->getAllAncestors($role['role_id']);
					
					foreach ($ancs as $anc => $value) {
						$user_roles[] = $value;
					}
					
					array_push($user_roles, $role['role_id']);
				}
				$user_roles = array_unique($user_roles);
			}
		} else {
			$user_roles = array($roles_table->getIdByShortname("guest"));			
		}
		if (is_null($controller)) {
			$controller = "@@EXTRA";
		} 
		$resource_name = $module ."-". $controller ."-". $resource;
		$out = array();
		
		
		if(Zend_Registry::isRegistered('acl')){
			$acl = Zend_Registry::get('acl');
			if($acl->has($resource_name)){
				
				foreach($user_roles as $role){
					if($acl->isAllowed($role, $resource_name)){
						$out[] = $role;
					}
				}
				
			}
		}	
		return $out;	
	}
开发者ID:richjoslin,项目名称:rivety,代码行数:45,代码来源:ResourceCheck.php

示例3: _bumpRegionalAccess

	public function _bumpRegionalAccess ($bypass = null) {
		$roles_table = new Roles();
		$roles_resources_table = new RolesResources();

		if (isset($this->resource_locale)) {
			$resource_locale = $this->resource_locale;
		} else {
			$resource_locale = $this->locale_code;
		}
		$role_lock = array();
		if ($this->_identity->isAdmin) {
			$role_lock = @RivetyCore_ResourceCheck::isAllowed("locale_specific_admin_role", "default", $this->_identity->username);
		}
		if(count($role_lock) > 0){ //user is under some type of locale restriction
			$shortnames = array();
			if (is_array($role_lock)){
				foreach ($role_lock as $i) {
					$shortnames[] = $roles_table->getShortnameById($i); //get the shortnames of the locked roles
				}
			}
			$match = array();
			foreach ($shortnames as $sn) {
				if(stristr($sn,$resource_locale)){  //we've got an access match to a shortname locale
					$match[] = array("id" => $roles_table->getIdByShortname($sn), "shortname" => $sn);
				} else {
					$no_match[] = array("id" => $roles_table->getIdByShortname($sn), "shortname" => $sn);
				}
			}
			$access = array();
			if (count($match) > 0 || count($bypass) > 0) {

				if (count($match) > 0) {
					foreach ($match as $m) {
						$m_in = $this->_checkMatch($m['id']);
						if (count($m_in) > 0) {
							foreach ($m_in as $m) {
								$access[] = array("id"=>$m,"shortname"=>$roles_table->getShortnameById($m));
							}
						}
					}
				}
				if (count($bypass) > 0) {
					foreach ($bypass as $bp) {
						$b_in = $this->_checkMatch($bp);
						if (count($b_in) > 0) {
							foreach ($b_in as $b) {
								$access[] = array("id"=>$b,"shortname"=>$roles_table->getShortnameById($b));
							}
						}
					}
				}
			}
			if (count($access) === 0) { //if no access we have to put them somewhere they belong.
				$allowed = array();
				foreach ($shortnames as $allowed_locales) {

					$allowed[] = strtolower(substr($allowed_locales, -5));
				}
				if (!in_array($this->locale_code,$allowed) && count($allowed) > 0) {
					$this->locale_code = $allowed[0];
				}
				$this->_redirect('/default/admin/index/'); // bump to admin home

			}
			else
			{
				$this->restricted_role_id = $access;
				return $access;
			}
		}
	}
开发者ID:richjoslin,项目名称:rivety,代码行数:71,代码来源:Admin.php

示例4: registerAction


//.........这里部分代码省略.........
					$this->screenAlert('error', $this->_T("Password must be between %d and %d characters", array(6, RivetyCore_Registry::get('password_length'))));
				}
				// if password is set, make sure it matches confirm
				if ($user['password'] != $user['confirm'])
				{
					$errors[] = $this->_T("Passwords don't match");
					$this->screenAlert('error', $this->_T("Passwords don't match"));
				}

				// // do we meet the minimum age?
				// $minimum_age = RivetyCore_Registry::get('minimum_registration_age', '13') ;
				// $years_ago = strtotime($minimum_age . ' years ago');
				// if ($user['birthday'] > $years_ago)
				// {
				// 	$errors[] = $this->_T("You must be at least %d years old to register.", $minimum_age);
				// }

				$params = array(
					'request' => $this->getRequest(),
					'user' => $user,
					'errors' => $errors,
				);
				$additional = $this->_rivety_plugin->doFilter($this->_mca, $params); // FILTER HOOK
				$errors = $additional['errors'];
				$user = $additional['user'];

				// convert birthday_ts to mysql date
				// $birthday_db = date(DB_DATETIME_FORMAT, $user['birthday']);
				if (count($errors) == 0)
				{
					$roles_table = new Roles();
					$users_roles_table = new UsersRoles();
					$default_role_shortname = RivetyCore_Registry::get('default_role_shortname');
					$role_data = array("username" => $user['username'], "role_id" => $roles_table->getIdByShortname($default_role_shortname));
					$users_roles_table->insert($role_data);

					$user_data = array(
						'username' => $user['username'],
						'email' => $user['email'],
						// 'full_name' => $user['full_name'],
						// 'birthday' => $birthday_db,
						'password' => $user['password'],
						'created_on' => date("Y-m-d H:i:s"),
						'ip' => getenv('REMOTE_ADDR'),
					);

					// if (array_key_exists('about_me', $additional['user']))
					// {
					// 	$user_data['about_me'] = $additional['user']['about_me'];
					// }

					// MAKE IT OFFICIAL
					$users_table->insert($user_data);

					// DO SOME PLUGINS
					$params = array(
						'user' => $user_data,
						'request' => $request,
						'username' => $user['username'],
						'autologin' => true,
						'autologin_username' => $user['username'],
						'autologin_password' => $user['password'],
						'autologin_password_hash' => md5($user['password']),
						'locale_code' => $this->locale_code,
					);
					$params = $this->_rivety_plugin->doFilter("default_post_register", $params); // FILTER HOOK
开发者ID:richjoslin,项目名称:rivety,代码行数:67,代码来源:UserController.php

示例5: init


//.........这里部分代码省略.........
             $this->view->format_date = "%e %b %Y, %l:%M:%S";
             $this->view->format_datetime = "%A %e %B %Y à %l:%M:%S%p";
             $this->view->format_datetime_small = "%e %b %Y, %l:%M%p";
             break;
         default:
             $this->view->format_date = Bolts_Registry::get('format_date');
             $this->view->format_datetime = Bolts_Registry::get('format_datetime');
             $this->view->format_datetime_small = Bolts_Registry::get('format_datetime_small');
             break;
     }
     $this->view->current_year = date("Y");
     // SAVED FOR FUTURE USE - changing the language pack based on locale
     // $locale_table = new Locales();
     // $locale_data = $locale_table->fetchByLocaleCode($this->view->locale_code);
     // if (count($locale_data) > 0) {
     // 	$this->locale_data = $locale_data['0'];
     // 	$this->view->locale_data = $this->locale_data;
     // 	$lan_pk = $this->locale_data['language_code'].'_'.$this->locale_data['country_code'].'.UTF-8';
     // 	setlocale(LC_ALL, $lan_pk);
     // 	setlocale(LC_NUMERIC, 'en_US.UTF-8');
     // 	setlocale(LC_COLLATE, 'en_US.UTF-8');
     // }
     // this is a way to force the browser to reload some scripts
     if (Bolts_Registry::get('uncache_css_js_version')) {
         $this->view->uncache_version = "?v=" . Bolts_Registry::get('uncache_css_js_version');
     }
     if (Bolts_Registry::get('uncache_flash_version')) {
         $this->view->uncache_flash = "?v=" . Bolts_Registry::get('uncache_flash_version');
     }
     // Set the content type to UTF-8
     header('Content-type: text/html; charset=UTF-8');
     // get navigation items from database or cache
     // check for role of identity, if we don't have one, use guest.
     // TODO - move this to the place where role is determined, there should only be one place
     if ($this->_auth->hasIdentity()) {
         $tmp_ids = $loggedInRoleIds;
         $this->my_roles = $roles_table->fetchRolesByUsername($this->_identity->username)->toArray();
         $username = $this->_identity->username;
         $this->view->username = $username;
     } else {
         $tmp_ids = array($roles_table->getIdByShortname("guest"));
         $this->my_roles = array(0 => array("id" => "1", "shortname" => "guest", "description" => "Guest", "is_admin" => "0", "isguest" => "1", "isdefault" => "0"));
     }
     $this->view->my_roles = $this->my_roles;
     // find the parent roles, add the parent role IDs to the nav_role_ids for inheritance.
     $nav_parent_role_ids = array();
     foreach ($tmp_ids as $nav_role) {
         $nav_parent_role_ids = array_merge($nav_parent_role_ids, $roles_table->getAllAncestors($nav_role));
     }
     $nav_role_ids = array();
     $nav_role_ids = array_merge($nav_parent_role_ids, $tmp_ids);
     $unique_ids = array_unique($nav_role_ids);
     sort($unique_ids);
     $nav_table = new Navigation($unique_ids, $this->locale_code);
     $cache_name = 'navigation_' . $this->locale_code . '-' . md5(implode($unique_ids, "-"));
     // MD5 The Unique IDs to shorten the cache name
     $cache_tags = array('navigation', $this->locale_code);
     $nav_items_temp = false;
     if (Bolts_Registry::get('enable_navigation_cache') == '1') {
         $nav_items_temp = Bolts_Cache::load($cache_name);
     }
     if ($nav_items_temp === false || !isset($nav_items_temp)) {
         $nav_items_temp = array();
         foreach ($unique_ids as $nav_role_id) {
             $nav_items_temp = array_merge($nav_items_temp, $nav_table->getNavTree($nav_role_id));
         }
         if (Bolts_Registry::get('enable_navigation_cache') == '1') {
             Bolts_Cache::save($nav_items_temp, $cache_name, $cache_tags);
         }
     }
     $navparams = array('nav_items' => $nav_items_temp, 'request' => $this->_request, 'locale_code' => $this->locale_code);
     $navparams = $this->_Bolts_plugin->doFilter('controller_nav', $navparams);
     // FILTER HOOK
     $this->view->nav_items = $navparams['nav_items'];
     // TODO - Rich fix this
     // // VIEW STATES
     // if (!$this->session->view_states) {
     // 	$this->session->view_states = array();
     // }
     // // TODO - allow use of regular expressions such as /auth/*
     // $last_visited_pages_filter = explode('|', Bolts_Registry::get('last_visited_pages_filter'));
     // if (!in_array($this->_uri, $last_visited_pages_filter)) {
     // 	$this->session->view_states['last_visited'] = $this->_uri;
     // }
     // $this->view->view_states = $this->session->view_states;
     // CONTROLLER INIT HOOK
     $params['request'] = $this->_request;
     $params['locale_code'] = $this->locale_code;
     $params['session'] = $this->session;
     $additional = $this->_Bolts_plugin->doFilter('controller_init', $params);
     // FILTER HOOK
     unset($additional['request']);
     // we don't want to send the request to the view
     if (isset($additional['filter_redirect'])) {
         $this->_redirect($additional['filter_redirect']);
     }
     foreach ($additional as $key => $value) {
         $this->view->{$key} = $value;
     }
 }
开发者ID:jaybill,项目名称:Bolts,代码行数:101,代码来源:Abstract.php

示例6: preDispatch

	public function preDispatch(Zend_Controller_Request_Abstract $request)
	{
		$frontController = Zend_Controller_Front :: getInstance();
		$auth = Zend_Auth :: getInstance();
		$roles_table = new Roles();

		$appNamespace = new Zend_Session_Namespace('RivetyCore_Temp');

		if (Zend_Registry :: isRegistered('acl'))
		{
			$acl = Zend_Registry :: get('acl');
		}
		else
		{
			$acl = new RivetyCore_Acl($auth);
			Zend_Registry::set('acl', $acl);
		}

		// determine role
		if ($auth->hasIdentity())
		{
			$user = Zend_Auth :: getInstance()->getIdentity();
			$users_roles_table = new UsersRoles();
			$users_roles_db = $users_roles_table->fetchAll($users_roles_table->select()->where("username = ?", $user->username));
			$user_roles = array();
			if (count($users_roles_db) > 0)
			{
				foreach ($users_roles_db as $role)
				{
					$user_roles[] = $role->role_id;
					$user_roles = array_merge($user_roles, $roles_table->getAllAncestors($role->role_id));
				}
			}
			$user_roles = array_unique($user_roles);
			$user_is_guest = false;
            $defaultNamespace = new Zend_Session_Namespace('Zend_Auth');

			// REFRESH THE SESSION EXPIRATION
	        $defaultNamespace->setExpirationSeconds((int)RivetyCore_Registry::get('session_timeout'));
		}
		else
		{
			$user_roles = array($roles_table->getIdByShortname("guest"));
			$user_is_guest = true;
		}

		$requested = $request->getModuleName() . "-" . ucfirst(strtolower($request->getControllerName())) . "-" . $request->getActionName();
		$url = $frontController->getBaseUrl() . "/";

		if (!$acl->has($requested))
		{
			// this doesn't exist, throw to 404
			$request->setModuleName('default');
			$request->setControllerName('auth');
			$request->setActionName('missing');
		}
		else
		{
			$isAllowed = array();
			foreach ($user_roles as $user_role)
			{
				$isAllowed[$user_role] = $acl->isAllowed($user_role, $requested);

				// if ($acl->isAllowed($user_role, $requested))
				// {
				// 	$isAllowed[$user_role] = true;
				// }
				// else
				// {
				// 	$isAllowed[$user_role] = false;
				// }
			}
			if (!in_array(true, $isAllowed))
			{
				if ($user_is_guest)
				{
					$url .= $request->getModuleName() . "/";
					$url .= $request->getControllerName() . "/";
					$url .= $request->getActionName() . "/";

					$params = $request->getParams();

					while ($param = current($params))
					{
				    	if (key($params) != "module" && key($params) != "controller" && key($params) != "action") $url .= key($params) . '/' . $param . "/";
	    				next($params);
					}
					if (substr($url,strlen($url) - 1, 1) == "/")
					{
						$url = substr($url, 0, strlen($url) - 1);
					}

					// place requested url in the session, unless this is the login controller

					if ($request->getControllerName() != "auth")
					{
						$request->setParam('ourl', base64_encode($url));
						// $appNamespace->requestedUrl = $url;
					}

//.........这里部分代码省略.........
开发者ID:richjoslin,项目名称:rivety,代码行数:101,代码来源:AclPlugin.php

示例7: preDispatch

 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $frontController = Zend_Controller_Front::getInstance();
     $auth = Zend_Auth::getInstance();
     $roles_table = new Roles();
     $appNamespace = new Zend_Session_Namespace('Bolts_Temp');
     if (Zend_Registry::isRegistered('acl')) {
         $acl = Zend_Registry::get('acl');
     } else {
         $acl = new Bolts_Acl($auth);
         Zend_Registry::set('acl', $acl);
     }
     // determine role
     if ($auth->hasIdentity()) {
         $user = Zend_Auth::getInstance()->getIdentity();
         $users_roles_table = new UsersRoles();
         $users_roles_db = $users_roles_table->fetchAll($users_roles_table->select()->where("username = ?", $user->username));
         $user_roles = array();
         if (count($users_roles_db) > 0) {
             foreach ($users_roles_db as $role) {
                 $user_roles[] = $role->role_id;
                 $user_roles = array_merge($user_roles, $roles_table->getAllAncestors($role->role_id));
             }
         }
         $user_roles = array_unique($user_roles);
         $user_is_guest = false;
         $defaultNamespace = new Zend_Session_Namespace('Zend_Auth');
         $defaultNamespace->setExpirationSeconds(86400);
     } else {
         $user_roles = array($roles_table->getIdByShortname("guest"));
         $user_is_guest = true;
     }
     $requested = $request->getModuleName() . "-" . ucfirst(strtolower($request->getControllerName())) . "-" . $request->getActionName();
     $url = $frontController->getBaseUrl() . "/";
     if (!$acl->has($requested)) {
         // this doesn't exist, throw to 404
         $request->setModuleName('bolts');
         $request->setControllerName('auth');
         $request->setActionName('missing');
     } else {
         $isAllowed = array();
         foreach ($user_roles as $user_role) {
             if ($acl->isAllowed($user_role, $requested)) {
                 $isAllowed[$user_role] = true;
             } else {
                 $isAllowed[$user_role] = false;
             }
         }
         if (!in_array(true, $isAllowed)) {
             if ($user_is_guest) {
                 $url .= $request->getModuleName() . "/";
                 $url .= $request->getControllerName() . "/";
                 $url .= $request->getActionName() . "/";
                 $params = $request->getParams();
                 while ($param = current($params)) {
                     if (key($params) != "module" and key($params) != "controller" and key($params) != "action") {
                         $url .= key($params) . '/' . $param . "/";
                     }
                     next($params);
                 }
                 if (substr($url, strlen($url) - 1, 1) == "/") {
                     $url = substr($url, 0, strlen($url) - 1);
                 }
                 //Zend_debug::dump($params);
                 //Zend_debug::dump($url);
                 // place requested url in the sesson,
                 // unless this is the login controller
                 if ($request->getControllerName() != "auth") {
                     $request->setParam('url', base64_encode($url));
                     //$appNamespace->requestedUrl = $url;
                 }
                 // send on to the login scipt
                 $request->setModuleName('bolts');
                 $request->setControllerName('auth');
                 $request->setActionName('login');
             } else {
                 $admin = "bolts-Admin-index";
                 $isAdmin = array();
                 foreach ($user_roles as $user_role) {
                     if ($acl->isAllowed($user_role, $admin)) {
                         $isAdmin[$user_role] = true;
                     } else {
                         $isAdmin[$user_role] = false;
                     }
                 }
                 if (!in_array(true, $isAdmin)) {
                     $request->setModuleName('bolts');
                     $request->setControllerName('auth');
                     $request->setActionName('denied');
                 } else {
                     $request->setModuleName('bolts');
                     $request->setControllerName('admin');
                     $request->setActionName('index');
                 }
             }
         }
     }
 }
开发者ID:jaybill,项目名称:Bolts,代码行数:98,代码来源:AclPlugin.php


注:本文中的Roles::getIdByShortname方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。