Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
Hellbot
Добавлено: 17 Июл 2008 19:39:12
Заголовок сообщения:
Но вообще мне кажется что изначально постановка задачи не правильная.
это не ExpertController -> JoinCourses.
А все таки правильнее.
CoursesContoller->Join($user_id)
А необходимость связей я вижу пожалуй только при выводе информации о пользователе, где можно отталкиваться от его группы или его типа (если нет групп) или не отталкиваться вообще.
Если User не может Courses->add, то и его связь hasMany('Courses') вернет для него 0 записей.
Hellbot
Добавлено: 17 Июл 2008 19:29:53
Заголовок сообщения:
---------- не по теме ! -------------
class User extends AppModel
belongsTo('Group')
actsAs('Aro')
class Group extends AppModel
hasMany('User');
actsAs('Aro')
Где права выдаются группам или пользователям (если надо персонально), на дерево действий, например
Сourses / join (Allow Group: Student, Author, Expert, Admin)
Courses / add (Allow: Author, Expert, Admin)
Users / list (Allow: Admin)
Users / edit (Allow: *)
При необходимости дополнить проверку на соответсвие id автора на id текущего пользователя.
Мне кажется это предпочтительнее потому что легко расширяется (проверка прав осуществеляется независимо от количеств групп или модулей системы), проверка может быть вынесена за пределы основной логики контроллеров (например будет поддерживаться компонентом Auth)
-------------
Прощу прощения
Что-то конец рабочего дня дает о себе знать, мне показалось это про разделение системы прав кому чего можно. Прочитав сообщение группе понял что вопрос не про это.
"У кого что болит, тот о том и говорит" (с)
Menya
Добавлено: 17 Июл 2008 11:10:39
Заголовок сообщения: Какой вариант разделения ролей грамотный?
Условия:
Внутрикорпоративный проект, основная задача: предоставить возможность одним учить других.
В системе четыре роли:
Student (учатся),
Autor (создают курсы),
Expert (модерируют контент),
Admin (следят за проектом: управляют правами доступа, пишут новости и т.д.).
Роли НЕ отличаются по полям данных, которые хранятся в базе данных, но сильно отличаются по функционалу. Причем более старшая модель наследует функциональность более младшей (например, авторы могут учиться и писать свои курсы, а эксперты – учиться, писать и модерировать и т.д.)
Задача:
Определить создаваемые таблицы базы данных, модели и контроллеры.
Варианты решения:
1. создать одну модель User с полем status, и один контроллер
2. создать одну модель User и по контроллеру для каждой роли, использующие эту модель
3. создать четыре модели (student, autor, expert и admin) (и соответственно, четыре контроллера), НО они будут использовать одну и ту же таблицу базы данных (users)
4. четыре модели (student, autor, expert и admin), каждая со своим контроллером и таблицей.
5. пять моделей: четыре модели из пункта в„–.4 + модель User (в которую войдут общие для всех ролей данные) + четыре связи hasOne
Пожалуйста, скажите какой вариант предпочтительнее, а главное почему?
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».