Забыли пароль?
Запросите новый здесь.

Автор темы: panya
ID темы: 1158
Информация:
Тема содержит 8 сообщения, была просмотрена 2558 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Вопросы новичков
 Распечатать тему
Проверка прав
panya
Помоги разобраться с проверкой прав на пользовательскую группу:

Скачать исходники  Код
define("iUSER_GROUPS", substr($userdata['user_groups'], 1));




Если с проверкой прав суперадмина или админа все просто
Скачать исходники  Код
if (iADMIN) {




То с группами никак не могу разобраться.

Допустим, есть группа с идентификатором 2, то как будет выглядеть проверка на данную группу?
 
Polarfox
Загрузить источник  GeSHi: PHP
  1. // Check if user is assigned to the specified user group
  2. function checkgroup($group) {
  3. if (iSUPERADMIN) { return true; }
  4. elseif (iADMIN && ($group == "0" || $group == "101" || $group == "102")) { return true;
  5. } elseif (iMEMBER && ($group == "0" || $group == "101")) { return true;
  6. } elseif (iGUEST && $group == "0") { return true;
  7. } elseif (iMEMBER && in_array($group, explode(".", iUSER_GROUPS))) {
  8. return true;
  9. } else {
  10. return false;
  11. }
  12. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10

Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
panya
Это все замечательно, но хотелось бы увидеть все на конкретном примере
 
Polarfox
Нужно изначально указывать что нужно.

Загрузить источник  GeSHi: PHP
  1. if( checkgroup(105) ){
  2. exit('COOL!');
  3. }
  4. else {
  5. exit('NOT GOOD!');
  6. }
Добавлено за 0.017 секунд, используя GeSHi 1.0.8.10

Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
panya
105 - идентификатор группы?
 
Polarfox
Ну или группы или нет, в принципе да. Обычно они впрочем меньше сотни.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
vasyapoopken
PolarFox написал:

Ну или группы или нет, в принципе да. Обычно они впрочем меньше сотни.


Как вообще понять эту фразу? :) Объясните пожалуйста, поконкретнее.

Нашел в поиске необходимый код
[php]if(!iADMIN && checkgroup(99)) {
}[/php]

999 id группы.

Ну а где там 999? там только 99 вижу. И откуда вообще взята эта цифра?
Изменил(а) vasyapoopken, 24.12.2012 15:10
 
FILON
vasyapoopken написал:
Как вообще понять эту фразу? :) Объясните пожалуйста, поконкретнее.

Нашел в поиске необходимый код
[php]if(!iADMIN && checkgroup(99)) {
}[/php]


Если не администратор и состоит в группе с ID 99, то выполняем вложенный код.

Если Вам нужно проверить, состоит ли пользователь в группе, то будет достаточно следующего:
Загрузить источник  GeSHi: PHP
  1. if (checkgroup(GROUP_ID)) {
  2. // do something
  3. }
Добавлено за 0.020 секунд, используя GeSHi 1.0.8.10

, где GROUP_ID - идентификатор группы.
What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: