Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Логика приложения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
dubasua
Отправлено: 29 Июня, 2013 - 23:05:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Вот и я решил создать тему, а то как то скучновато.
Нужно правильно построить логику приложения, а конкретно - на каком уровне выполнять проверку прав доступа.
И так представим что есть некоторый фрейм. В процессе выполнения которого, он на определенном этапе получает массив с экшенами и их парметрами которые нужно выполнить не посредственно по запросу пользователя. Вопрос в том, где определить разрешено ли тукещему юзеру запустить тот или другой экшин. Как правило есть два варианта: первый - проверять непосредственно перед запускам экшена в самом фрейме, или второй - в начале каждого экшена?
(Добавление)
Ну что, никто не реализовывал такую логику?
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2013 - 00:49:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Что есть фрейм? Это <iframe ..> ?
Если да, то как он может выполняться?
Задай вопрос конкретнее.
 
 Top
dubasua
Отправлено: 30 Июня, 2013 - 01:45:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




DeepVarvar пишет:
Что есть фрейм? Это <iframe ..> ?

Нет, ну какой же <iframe? Я говорю о PHP. Фрейм - FrameWork, что-то на подобе фронт-енд контролера, по которому протекает рабочий цикл от REQUEST до RESPONSE.
 
 Top
vanicon
Отправлено: 30 Июня, 2013 - 01:48:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




dubasua пишет:
непосредственно перед запускам экшена в самом фрейме

Разве это не очевидно?


-----
Так было, так есть и так будет
 
 Top
LIME
Отправлено: 30 Июня, 2013 - 01:50:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а ты реши как тебе больше нравится и не ломай людям мосг "фреймами"
(Добавление)
vanicon для меня очевидно обратное
 
 Top
vanicon
Отправлено: 30 Июня, 2013 - 01:55:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




LIME
Тут как кому по душе, можно и там и там...


-----
Так было, так есть и так будет
 
 Top
dubasua
Отправлено: 30 Июня, 2013 - 01:57:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




LIME пишет:
а ты реши как тебе больше нравится

Лично мне больше нравится даже не отдавать эти экшины, если нет на них доступа, но и здесь есть подводные камни, как и с предыдущими вариантами.
 
 Top
LIME
Отправлено: 30 Июня, 2013 - 02:04:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




vanicon тоесть в роутере хранить списочек кому что можно
и при изменении контролеров его редактировать?
а если им еще и разные действия надо делать при попытках нелегальных?
ТС делай всяко...так и поймешь что лучше
(Добавление)
каждый должен знать только про себя
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2013 - 02:06:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Бред какойто. Я себе реализовал так:

Описание прав содержится прямо в контроллере.
А у пользака (вернее у его группы) хранятся те права, которые ему можно.
Ну так перед запуском экшна (читай метода) я проверяю есть ли у метода описание прав, и если есть, то ищу у пользака.
Если у пользака не найдено - пшел вон..

А если вообще прав не установлено, то и не проверяю.
Еси тока рефлексией позырю чо он там запускает, приват или паблик метод и все..

Достаточно?
 
 Top
vanicon
Отправлено: 30 Июня, 2013 - 02:06:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




LIME
Необязательно в роутере.
Можно в самом контроллере это сделать, наподобие как в yii.


-----
Так было, так есть и так будет
 
 Top
LIME
Отправлено: 30 Июня, 2013 - 02:06:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




это я о архитектуре
 
 Top
dubasua
Отправлено: 30 Июня, 2013 - 02:12:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




DeepVarvar пишет:
Достаточно?

Не до конца.
DeepVarvar пишет:
Описание прав содержится прямо в контроллере

DeepVarvar пишет:
А у пользака (вернее у его группы) хранятся те права, которые ему можно.

Где связь? Как группе изменить права, после добавления 10-ти контроллеров?
(Добавление)
Вот если делать проверку перед запуском, внутри самого фрейма, то недоступный экшин можно вызвать внутри разрешенного экшена, а если проверку делать в начале каждого экшена, много дублирования получается, да и как логически привязать "новостную ленту", что бы она еще и отвечала за доступ к самой себе.
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2013 - 02:16:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




dubasua пишет:
Где связь? Как группе изменить права, после добавления 10-ти контроллеров?
В админке есть кнопочка "Пересчитать права доступа".
 
 Top
dubasua
Отправлено: 30 Июня, 2013 - 02:18:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




DeepVarvar пишет:
В админке есть кнопочка "Пересчитать права доступа".

Это реализовано в Вашей CMS?
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2013 - 02:19:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




да
Цитата:
Кнопка «Пересчитать права доступа» позволяет пересчитать права доступа перечисленных во всех модулях системы, с целью дальнейшего отображения полного списка прав пользователей в разделе Группы при создании и редактировании групп пользователей. Данная опция имеет смысл при разработке или подключении дополнительных модулей, т.к. права доступа хранятся непосредственно в исходном коде модулей.
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB