CakePHP с ACL: лучшая практика для многих групп - это маршрутизация? - PullRequest
1 голос
/ 22 июня 2010

Я работаю над приложением, которое будет иметь 6 групп ARO, чтобы покрыть необходимый спектр разрешений. Действительно ли лучше иметь методы * _add, * _edit, * _index, * _view и т. Д. Для каждого? Это похоже на небольшую перегрузку кода и головную боль при обслуживании. «Самый дешевый» способ, которым я могу себе представить, справиться с маршрутизацией, это что-то вроде:

// core: edit
function _edit($id = null)
{
  // do stuff
}

function admin_edit($id = null)
{
  $this->_edit($id);
}

function manager_edit($id = null)
{
  $this->_edit($id);
}

function clerk_edit($id = null)
{
  $this->_edit($id);
}

/* ...and on and on... */

И при необходимости добавьте ограничения, например, для группы, которой разрешено редактировать только собственные элементы пользователя, или что-то подобное.

Есть ли другая рекомендуемая техника или это действительно лучшая практика?

1 Ответ

0 голосов
/ 22 июня 2010

Предположительно, вы хотите предложить разные функции для каждой группы?

Если это не так, нет необходимости в разных методах CRUD для каждой группы.

Если, с другой стороны, это так, изучите операторы switch в методах CRUD, чтобы выяснить, у кого есть какие возможности.

Нет необходимости иметь метод для каждой группы.

...