Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> админка для крупного корпоративного сайта, Незнаю как быть 
:(
    Опции темы
StreetPeople
  Дата 24.8.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 7.7.2007

Репутация: 1
Всего: 1



Уважение кодерам!

Собираюсь напичатать админку для крупного корпоративного сайта.
Есть 2-е таблицы - "Юзеры" и "Группы" (юзер относится к разным группам, в разных комбинациях в зависимости от прав доступа)



ГРУППЫ:
У каждой группы есть свои права на запись/чтение/изменение/удаление из таблиц
Эти права выглядят следующим образом:
R{[*]}                        // Права на чтение строк из всех таблиц
W{[*]Exception{[6][7]}}        // Права на запись строк из всех таблиц кроме таблиц с ID=6 и с ID=7
U{[*]Exception{[6][7]}}        // Права на изменения строк из всех таблиц кроме таблиц с ID=6 и с ID=7 (PS: 6 и 7-ая таблицы и есть "Юзеры" и "Группы")
D{[*]Exception{[6][7]}}        // Права на удаление строк из всех таблиц с ID=6 и с ID=7
У каждой таблицы в БД есть свой уникальный номер, который, собственно и указывается в правах в рамках записи/чтения/изменения/удаления.


ЮЗЕРЫ:
У каждого юзера есть принадлежность к нескольким группам, группы перечиляются через запятую
Помимо того у пользователя есть свои права более низкого уровня (права на ячейки таблиц):
R{*[*]}                // Пользователь имеет права на чтение всех ячеек из всех таблиц
W{*[1,2,3,4,5]}        // Пользователь имеет права на запись ячеек с ID=1,2,3,4,5 из всех таблиц
U{*[1,2,3,4,5]}        // Пользователь имеет права на изменения всех ячеек с ID=1,2,3,4,5 из всех таблиц
D{5}                // Пользователь имеет право на удаление любой строки из таблицы номер 5 ("товары")
У каждой ячейки каждой таблице БД есть свой уникальный номер, который, собственно и указывается в правах, в рамках записи/чтения/изменения/удаления, юзера

Итак! Каким образом я хочу устроить эту админку: После авторизации пользователя, я регулярным выражением буду доставать значения прав доступа для групп, юзеров и вносить их в определённый массив СЕССИИ. Кстати, как только пользователь заходит на сайт он сразу же получает права "Посетителя", у которого есть права только на чтение определённыйх ячеек определённых таблиц. Сайт полностью состоит из шаблонов, т.е. файлов с содержимым типа: "<html><head><title>{TITLE}</title>{CSS}{OCSS}{JS}{OJS}</head><body></body></html>" (поскольку приходится пользоваться регулярными выражениями, пришлось прикрутить класс кэширования страничек, его мы будем отключать в режиме "прав на зипись изменение или удаление"). Как я ужо говорил сайт использует шаблоны, и пути к этим шаблонам будут разными, в зависимости от прав пользователя. У каждого контентного элемента HTML есть свой id, "принадлежность к таблице" и пользователь двойным щелчком мышм активизирует "админский элемент" и может править этот элемент прямо в HTML после чего он нажимает комбинацию Ctrl+Enter и AJAX посылает всю нужную информацию на обработку (обработка, ясное дело, сначала смотрит на права доступа пользователя и если пользователь имеет права на "действие", изменяет элемент)...

В общем такая вот лихая идея! (Если удасться её сделать, тогда нужно будет доработать - сделать менюшку "что можно сделать с элементом", которая будет появлються при правом клике мыши на "админском элементе")
В этой системе очень много дыр(открытые имена таблиц, ID записей и т.п.)... Помимо того я незнаю каким образом делать шаблоны на комбинации групп(т.е. если создадут нового юзера, тогда для него нужно писать свой шаблон, который позволяет править только те элементы, которые он вправе править).

Пипл, подскажите, насколько правильная эта идея, или я создаю колесо, причём овальное(не круглое).

Какие минусы/проблемы вы видите? Как эти проблемы решить?


PS: За отличные советы по теории и практике, могу выслать готовый вариант админки...)

Это сообщение отредактировал(а) StreetPeople - 24.8.2007, 11:40
PM MAIL   Вверх
anurbol
Дата 24.8.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 30.5.2007
Где: Алматы, Казахстан

Репутация: нет
Всего: нет



Мне кажется легче взять готовую opensource cms-ку, изучить архитектуру и переработать под свои нужды.
PM MAIL   Вверх
-=Ustas=-
Дата 24.8.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(StreetPeople @  24.8.2007,  11:37 Найти цитируемый пост)
права только на чтение определённыйх ячеек определённых таблиц

Не, это небезопасно! Лучше делать на определенный символ каждой определенной ячейки определенных таблиц.

ЗЫ. Воспользуйся поиском, ты много чего интересного по своей теме найдешь.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
ewolf
Дата 27.8.2007, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



Цитата(StreetPeople @  24.8.2007,  11:37 Найти цитируемый пост)
Итак! Каким образом я хочу устроить эту админку: <...>

Как в анекдоте про самолет: и теперь со всей этой фигней на борту мы попытаемся взлететь. smile

По-сути.

То, о чем ты пишешь, называется edit-in-place, т.е. редактирование контента непосредственно на самой странице. Идея не нова, она есть, например, в Joomla (как один из компонентов). 

Достоинства такого подхода - это мегакруто!
Недостатки - а зачем все это надо?

Цитата(StreetPeople @  24.8.2007,  11:37 Найти цитируемый пост)
В этой системе очень много дыр(открытые имена таблиц, ID записей и т.п.)... Помимо того я незнаю каким образом делать шаблоны на комбинации групп(т.е. если создадут нового юзера, тогда для него нужно писать свой шаблон, который позволяет править только те элементы, которые он вправе править).


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

Цитата(StreetPeople @  24.8.2007,  11:37 Найти цитируемый пост)
R{*[*]}                
// Пользователь имеет права на чтение всех ячеек из всех таблиц
W{*[1,2,3,4,5]}        
// Пользователь имеет права на запись ячеек с ID=1,2,3,4,5 из всех таблиц
U{*[1,2,3,4,5]}        
// Пользователь имеет права на изменения всех ячеек с ID=1,2,3,4,5 из всех таблиц
D{5}               
 // Пользователь имеет право на удаление любой строки из таблицы номер 5 ("товары")


Ссылаться на таблицы по номерам (вместо непосредственного имени таблицы) - мегажесть. Я бы не позавидовал тому, кому придется поддерживать такую систему.

Ссылаться на номера ячеек в таблицах - еще большая мегажесть. Опять таки, почему нельзя ссылаться на имена? А если ячейки поменяются?

Почему вообще настройка безопасности привязывается к такой низкоуровневой вещи, как "ячейки"? Почему нельзя просто ввести понятия "действия", на например "редактирование пользователя", "добавление статьи" и оперировать ими? В соотвествующие места просто добавить необходимые проверки на наличие прав на выполнение соотвествующего действия.

Не усложняйте себе жизнь.


Это сообщение отредактировал(а) ewolf - 27.8.2007, 00:43
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.