0

У нас есть приложение CakePHP, которое использует ACL и Roles для обработки авторизации пользователя. Прямо сейчас вся панель администратора построена с использованием ExtJS3, поэтому они представляют собой все виды одной страницы. Каждый раз, когда загружается представление, мы используем ACL, чтобы узнать, имеет ли пользователь право доступа к этой части приложения.Авторизация действия пользователя в одностраничном приложении javascript

Мы планируем переместить наше приложение в Rails и использовать ExtJS4 с новой структурой MVC/Single. Нам любопытно, как мы будем заниматься авторизацией действий пользователей? Сейчас они очень зернистые. Авторизация пользователя может быть заблокирована действиями, поэтому они могут иметь доступ к индексу и читать или индексировать, читать, обновлять, а не уничтожать и т. Д.

Если страница просто загружается один раз, а ExtJS позаботится о загрузке все подпункты приложения, что является лучшим способом авторизации пользователя по ролям?

Любые идеи?

Редактировать Я забыл добавить, что нам нужна возможность добавлять/удалять роли или способности из области администрирования. Что-то вроде cancan было бы здорово, но я не видел способ сделать его динамичным, чтобы пользователь мог добавлять/редактировать способности.

Спасибо!

ответ

1

Хорошая библиотека для меня до сих пор является cancan. Он обладает способностью быть достаточно гранулированным и настраиваемым из того, что я видел, но централизованно, например, в определении способностей. Надеюсь это поможет! EDIT: он доступен в рубиновых драгоценных камнях - gem install cancan должен сделать трюк.

+0

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

+0

Я должен упомянуть, что у того же автора есть несколько других рубиновых драгоценных камней, которые выглядят многообещающими для того, что вы хотите. В частности, я еще не использовал, но, вероятно, попытаюсь в какой-то момент, учитывая, что его расширение cancan - это cantango, которое можно найти здесь (http://rubygems.org/gems/cantango) и [ здесь (GitHub)] (https://github.com/kristianmandrup/cantango). Например, он предназначен для того, чтобы выполнять именно то, что вы хотите, и позволять, например, выполнять роли через веб-интерфейс. Надеюсь, это поможет вам с этим последним требованием :) – waxspin