本文整理汇总了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;
}
示例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;
}
示例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;
}
}
}
示例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
示例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;
}
}
示例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;
}
//.........这里部分代码省略.........
示例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');
}
}
}
}
}