2013-06-28 2 views
1

Я проверяю, является ли пользователь администратором или не из LDAP и я получаю значение из LDAPPHP, как установить значение переменной, полученное через ldap?

Часть кода,

foreach ($memberOf as $key => $value) { 
    $membership = explode(",", $value); 
    $member  = explode("=", $membership[0]); 
    if (in_array($member[1], $adminGroups)) { 
     $is_admin = TRUE; 

    } elseif (in_array($member[1], $userGroups)) { 
     $is_admin = FALSE; 
    } 

Так что мой вопрос, как я могу использовать эту переменную $is_admin везде в моем приложении, чтобы я мог скрыть некоторые кнопки в зависимости от того, является ли пользователь администратором или нет?

Нужно ли устанавливать эту переменную в сеансе?

+0

Похоже на то, что у вас там есть ... – DaGardner

+0

Почему вы не добавляете столбец в таблицу БД для определения пользователя как администратора или пользователя? это может быть гораздо лучше использовать. И да, вы должны использовать сеанс для хранения типа пользователя – Fallen

+0

'можно скрыть некоторые кнопки', вам также нужно будет делать проверки на каждой странице PHP, что позволяет административное действие, а просто скрывать не много. –

ответ

0

Использование сессий PHP!

Просто session_start() в верхней части файлов, которые вы хотите использовать сессии в ...

назначить сеансовый ключ

$_SESSION['is_admin'] = true; 

затем проверить ключ позже в разных частях приложения ...

if($_SESSION['is_admin'] === true) { /* do stuff */ } 

Пара, у которой есть функция или класс, вы можете иметь хорошую и удобную библиотеку аутентификации.

http://us2.php.net/manual/en/book.session.php

Edit:

Я должен был использовать аутентификацию LDAP немного .. последнее, что вы хотите сделать, это вбить сервер LDAP и получить ваш счет заблокирован , поэтому я предложил сеансы. Аутентифицируйте один раз ... после аутентификации, просто используйте сеанс оттуда, пока он не истечет ... тогда пользователь просто войдет в систему снова.

+0

@ Rob W: большое спасибо! Попробуем это реализовать. – S52

0

Есть несколько вариантов:

  • Использование сеанса, если вы хотите, чтобы сохраняться после перезагрузки страницы/навигации
  • Используйте статический член в статическом классе, так что вы можете ссылаться на него везде, если не хочу настойчивости