Дек 10 2008

Мягкое удаление с помощью Soft Delete Behavior

Раздел: МоделиМета @ 23:29

С помощью этого компонента вы можете использовать в своих проектах «мягкое удаление» - т.е. установку флага для пометки удаленных записей, вместо реального их удаления. Зачем это нужно? Например, для хранения предыдущих версий отредактированных записей на блоге, для сохранения архива старых товаров в магазине — применений масса. Я стараюсь во всех своих проектах использовать «мягкое удаление» даже просто для того чтобы исключить ошибку случайного удаления. Заказчики часто обращаются: «ой, а мы удалили, а потом передумали, а можно восстановить?».

Внимание! Я еще не тестировал этот компонент с CakePHP 1.2 RC3. Судя по отзывам в комментариях к компоненту, есть проблемы с совместимостью. Эта запись — перевод документации, в следующей я опишу возможные проблемы и пути их решения.

Читать дальше “Мягкое удаление с помощью Soft Delete Behavior”

Теги: , , ,


Окт 09 2008

SimpleAcl — простой компонент для авторизации и проверки прав пользователей

Раздел: БезопасностьМета @ 23:42

В большинстве приложений необходимо не только отображать данные, но и взаимодействовать с пользователями. И даже не просто взаимодействовать, а по разному работать с разными группами. Даже в этом блоге — есть администраторы, есть зарегистрированные пользователи, а есть просто читатели. Чем админ отличается от обычного пользователя? Тем что у него есть доступ к определенным функциям. Как определить что пользователь — админ? Авторизовать его, узнать логин и пароль.

Эти задачи — авторизацию и определение прав доступа к различным функциям — приходится решать при разработке каждого сайта. В CakePHP есть встроенный компонент Acl для работы с правами, но он слишком навороченный для простых сайтов. Часто, если надо просто ограничить доступ к админке, мы в своей студии используем простой ValidationComponent, единственное что модифицированный под использование Http-Digest авторизации.

Читать дальше “SimpleAcl — простой компонент для авторизации и проверки прав пользователей”

Теги: , , , , ,


Сен 29 2008

Работаем с маршрутами в CakePHP (часть 3)

Раздел: МаршрутыМета @ 21:00

Дополнительную гибкость системе маршрутов придают специальные элементы. Эти элементы вы можете определять сами, с их помощью в URL-адресе отмечаются места, где будут находиться параметры, передаваемые в функции контроллера. При выполнении запроса, значения специальных элементов сохраняются в массиве $this->params. Обратите внимание на отличие специальных элементов маршрута от именованных: именованные (/controller/action/name:value) передаются в массиве $this->passedArgs.

При создании специального элемента для него надо обязательно указать регулярное выражение — с его помощью CakePHP будет проверять правильность URL-адреса.

Читать дальше “Работаем с маршрутами в CakePHP (часть 3)”

Теги: , , ,


Сен 27 2008

Добавление и удаление ассоциаций между записями

Раздел: МоделиМета @ 21:53

Во многих приложениях используются связи типа многие-ко-многим - HasAndBelongsToMany или HABTM в терминологии CakePHP. Они нужны для создания меток к записям в блоге, привязки атрибутов к товарам в интернет магазине, пользователей к пользователям в социальных сетях и т.д.

Для создания связи HABTM в CakePHP используется вспомогательная таблица, в которой хранятся два идентификатора связываемых данных. Например, если нам надо связать таблицы posts и tags, то вспомогательная таблица будет иметь вид:

Читать дальше “Добавление и удаление ассоциаций между записями”

Теги: , , , , ,


Сен 26 2008

Ошибки в формах входа — ввод логина и пароля

Раздел: БезопасностьМета @ 21:43

В CakePHP есть собственные компоненты для аутентификации и авторизации, но не многие начинающие программисты ими пользуются, потому что эти компоненты довольно сложные. А формы-то делать надо, иначе как авторизовать пользователя в админку?

Сегодня мне показали еще один пример такой формы. Для простоты объяснения сути заметки, я приведу простой html-код формы:

Читать дальше “Ошибки в формах входа — ввод логина и пароля”

Теги: , , ,