本文整理汇总了PHP中Access::isGranted方法的典型用法代码示例。如果您正苦于以下问题:PHP Access::isGranted方法的具体用法?PHP Access::isGranted怎么用?PHP Access::isGranted使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Access
的用法示例。
在下文中一共展示了Access::isGranted方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPermissionStatic
/**
* Check employee permission for module (static method)
* @param int $id_module
* @param array $variable (action)
* @param object $employee
* @return bool if module can be transplanted on hook
*/
public static function getPermissionStatic($id_module, $variable, $employee = null)
{
if (!in_array($variable, array('view', 'configure', 'uninstall'))) {
return false;
}
if (!$employee) {
$employee = Context::getContext()->employee;
}
if ($employee->id_profile == _PS_ADMIN_PROFILE_) {
return true;
}
$slug = Access::findSlugByIdModule($id_module) . Access::getAuthorizationFromLegacy($variable);
return Access::isGranted($slug, $employee->id_profile);
}
示例2: searchFeatures
/**
* Search a feature in all store
*
* @params string $query String to find in the catalog
*/
public function searchFeatures()
{
$this->_list['features'] = array();
global $_LANGADM;
if ($_LANGADM === null) {
return;
}
$tabs = array();
$key_match = array();
$result = Db::getInstance()->executeS('
SELECT class_name, name
FROM ' . _DB_PREFIX_ . 'tab t
INNER JOIN ' . _DB_PREFIX_ . 'tab_lang tl ON (t.id_tab = tl.id_tab AND tl.id_lang = ' . (int) $this->context->employee->id_lang . ')
WHERE active = 1' . (defined('_PS_HOST_MODE_') ? ' AND t.`hide_host_mode` = 0' : ''));
foreach ($result as $row) {
if (Access::isGranted('ROLE_MOD_TAB_' . strtoupper($row['class_name']) . '_READ', $this->context->employee->id_profile)) {
$tabs[strtolower($row['class_name'])] = $row['name'];
$key_match[strtolower($row['class_name'])] = $row['class_name'];
}
}
foreach (AdminTab::$tabParenting as $key => $value) {
$value = stripslashes($value);
if (!isset($tabs[strtolower($key)]) || !isset($tabs[strtolower($value)])) {
continue;
}
$tabs[strtolower($key)] = $tabs[strtolower($value)];
$key_match[strtolower($key)] = $key;
}
$this->_list['features'] = array();
foreach ($_LANGADM as $key => $value) {
if (stripos($value, $this->query) !== false) {
$value = stripslashes($value);
$key = strtolower(substr($key, 0, -32));
if (in_array($key, array('AdminTab', 'index'))) {
continue;
}
// if class name doesn't exists, just ignore it
if (!isset($tabs[$key])) {
continue;
}
if (!isset($this->_list['features'][$tabs[$key]])) {
$this->_list['features'][$tabs[$key]] = array();
}
$this->_list['features'][$tabs[$key]][] = array('link' => Context::getContext()->link->getAdminLink($key_match[$key]), 'value' => Tools::safeOutput($value));
}
}
}
示例3: access
/**
*
* @param string $action
* @param bool $disable
*/
public function access($action, $disable = false)
{
if (empty($this->tabAccess[$action])) {
$slugs = array();
foreach ((array) Access::getAuthorizationFromLegacy($action) as $roleSuffix) {
$slugs[] = $this->getTabSlug() . $roleSuffix;
}
$this->tabAccess[$action] = Access::isGranted($slugs, $this->context->employee->id_profile);
}
return $this->tabAccess[$action];
}