Я работал над приложением, использующим CakePHP 2.6. У нас есть класс AuthUser, который основан на функциональности AuthComponent и позволяет нам проверять разрешения для наших ролей для разделов в нашей базе данных.
Однако я заметил, что наш " isAuthorized" игнорирует $this->Auth->allow(), что означает, что действия, которые не требуют авторизации, перехватываются нашими проверками, и для правильной проверки их необходимо обновить.
Можно ли получить доступ к массиву действий $this->Auth->allow(), и если да, то как можно получить к нему доступ?
Ниже я включил функцию isAuthorized из класса AuthUser:
public function isAuthorised($controllerName = null) {
//Admin has access to everything
if (AuthUser::isAdmin() === true) {
return true;
}
$roles = array();
//Get the roles allowed for the section
$results = AppController::runStoredProcedure('spGetCurrentSectionRolesForSectionBySectionName', array( $controllerName ));
if (isset($results) && is_array($results)) {
foreach ($results as $row) {
if (isset($row['RoleName'])) {
array_push($roles, $row['RoleName']);
}
}
}
//Check if authenticated user has permission to current controller (is one of the allowed roles)
$userRoles = AuthComponent::user('role');
if (isset($userRoles) && is_array($userRoles)) {
foreach ($userRoles as $key => $value) {
if ($value == true) {5
if (in_array($key, $roles)) {
return true;
}
}
}
}
return false;
}
Подробнее здесь: https://stackoverflow.com/questions/377 ... tion-array
CakePHP: Как мне получить доступ к массиву действий Auth->allow? ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1734315582
Anonymous
Я работал над приложением, использующим CakePHP 2.6. У нас есть класс AuthUser, который основан на функциональности AuthComponent и позволяет нам проверять разрешения для наших ролей для разделов в нашей базе данных.
Однако я заметил, что наш " isAuthorized" игнорирует $this->Auth->allow(), что означает, что действия, которые не требуют авторизации, перехватываются нашими проверками, и для правильной проверки их необходимо обновить.
Можно ли получить доступ к массиву действий $this->Auth->allow(), и если да, то как можно получить к нему доступ?
Ниже я включил функцию isAuthorized из класса AuthUser:
public function isAuthorised($controllerName = null) {
//Admin has access to everything
if (AuthUser::isAdmin() === true) {
return true;
}
$roles = array();
//Get the roles allowed for the section
$results = AppController::runStoredProcedure('spGetCurrentSectionRolesForSectionBySectionName', array( $controllerName ));
if (isset($results) && is_array($results)) {
foreach ($results as $row) {
if (isset($row['RoleName'])) {
array_push($roles, $row['RoleName']);
}
}
}
//Check if authenticated user has permission to current controller (is one of the allowed roles)
$userRoles = AuthComponent::user('role');
if (isset($userRoles) && is_array($userRoles)) {
foreach ($userRoles as $key => $value) {
if ($value == true) {5
if (in_array($key, $roles)) {
return true;
}
}
}
}
return false;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/37721556/cakephp-how-do-i-access-the-auth-allow-action-array[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия