система прав пользователя, проверка прав пользователя опр. функции приложения

texrdcom

Новичок
система прав пользователя, проверка прав пользователя опр. функции приложения

Разрабатываю систему прав пользователя столкнулся с такой дилеммой:
1) Во время проверки доступа пользователя к определенному модулю решим идет проверка к целому модулю: Допустим модуль активируется через запрос /forum/ - проверяется имеет ли право пользователь читать данный раздел и так … дальше
2) Проблема когда один модуль к которому пользователь имеет доступ в некоторых случаях может запрашивать функцию с другого модуля, но другой модуль может быть не полностью разрешен для пользователя! Например не которые функции с него для примера admin_redaktor разрешена только определенной группе!, имя данной функции не где не фигурирует в строке запроса так как данная функция активируется автоматом при активации первого модуля!
Как сделать перехват данной функции (повторюсь в строке запроса, в параметрах запроса ее не существует).
Вижу три решения посоветуйте какое гибче луче использовать:

1) Функции которым нужна проверка прав пользователя в первом модуле вызываются таким методом:
$this->function_name__check($param, $param)
В классе существует функция function_name() для ее вызова определяем функции перегрузки __call($func, $param)
Дальше дело техники откидываем окончания в имени и вызываем функцию + передаем все параметры вызова.

2) Определяем определенную функцию через которую осуществляем вызов,
Таким методом:
$this->spez_function($functionName, $param)

3) в функции которая нуждаеться в проверки вызываем определенную функцию
function Function_name()
{
// Делаем вызов спец функции которая вернет либо true | false
if(false===$this->check_function(__METOD__))
{
return 'Не хватает прав';
}
// Продолжаем работу если все окей !
}
______________
Хотелось бы услышать как вы решаете такую задачу ?.
Какой метод использовать ?.
Передавать в параметрах вызова метки функций не хочется. Хочется проверку сделать гибкой и урло не зависимой.
Интересует сам механизм активации системы проверки,
сама система не принцепиальна...
 

Popoff

popoff.donetsk.ua
texrdcom
С какими системами управления правами ты уже знаком?
 

texrdcom

Новичок
Popoff
C твоей также ... :) читал но не использовал.
Меня не интересует сама система прав, меня интересует активация системы прав для конкретной функциональности модуля!. Как вызвать данную проверку вот я и привел 3 варианта решения как я вижу, но возможно есть что то более орегинальное....
 

Popoff

popoff.donetsk.ua
я бы решил примерно таким способом:

if(НУЖНО_ПРОВЕРЯТЬ&&!есть_права()) return "нет прав";
 

texrdcom

Новичок
Popoff
Понятно это мой вариант 3.
Вопрос контректный:
Есть модуль форум, в шабоне данного модуля создаеться обьект модуля: активные пользователи - и вызываеться функция
->show_uesr(); Она выводит активных пользователей не только на форуме но и на всем хосте! Но она должна делать вывод только тогда когда модуль forum активирует админ!
Вот и вопрос как во время активации модуля: активные пользователи и запуска функции ->show_uesr(); активировать функцию проверки прав пользователя (или обьект системы прав пользователя)

-~{}~ 31.12.05 00:49:

Простой вариант прописать вызов функции проверки прав пользователя четко в функции ->show_uesr(); . А если со временем проверка будет не нужна ?. править код Б) править таблицу прав пользователей ?
 

Popoff

popoff.donetsk.ua
Ты сегодня вечером как-то непонятно говоришь. :)

Особенно я не понял самого вопроса:
Вот и вопрос как во время активации модуля: активные пользователи и запуска функции ->show_uesr(); активировать функцию проверки прав пользователя (или обьект системы прав пользователя)
А если со временем проверка будет не нужна ?.
if(ПРОВЕРКА_НУЖНА&&удачная_проверка())
  выполняем_действие();

-~{}~ 31.12.05 00:15:

texrdcom
вероятно, в твоем тексте много опечаток. вопрос не понятен из-за опечаток.
 

tf

крылья рулят
texrdcom спасибо за перевод так оно и было
 

Toxic_Cat

Новичок
3 Вариент мне кажется наиболее удачен.

Но как подметил Popoff:
При вызове функции проверяется нужна ли проверка или нет, после этого проверяются права доступа и только потом уже идет выполнение самой функции.

function function_name
{
if(ПРОВЕРКА НЕОБХОДИМА and УДАЧНАЯ_ПРОВЕРКА())
{
код функции
}
else
{
return false;
}
}

Если в чем-то не прав поправьте :)
 
Сверху