Как узнать мой текущий идентификатор пользователя в другом контроллере страницы после входа в систему? - PullRequest
6 голосов
/ 10 ноября 2009

Я планирую установить разрешение на моей странице индекса события, которое позволит определенному пользователю просматривать, который был установлен при добавлении события. После того, как пользователь щелкнет мое событие, контроллер событий сначала проверит идентификатор пользователя и проверит базу данных событий, которая контролирует пользователя, чтобы увидеть, какое событие в его календаре. Разрешение добавляется, когда пользователь создает событие и делится с другим пользователем. Кроме того, как я могу найти текущий идентификатор пользователя для сравнения с моей базой данных событий, которая является точной 1?

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

Большое спасибо за вашу информацию.

Ответы [ 5 ]

20 голосов
/ 10 ноября 2009

Рекомендуемый подход для получения зарегистрированных пользовательских данных - через сам AuthComponent:

// in any controller
$userId = $this->Auth->user('id');

См. Доступ к зарегистрированному пользователю в разделе Auth CakePHP Book .

6 голосов
/ 10 ноября 2009

Использование сеансов для сохранения и чтения данных пользователя между страницами.

Внутри контроллеров:

// store a user id in the session
$this->Session->write('User.id', $userId);

// read a user id from the session
$userId = $this->Session->read('User.id');

В пределах просмотров:

// read a user id from the session
$userId = $session->read('User.id');

Вы можете использовать любую клавишу, если захотите, а не «User.id». Я просто использую это, так как это то, к чему AuthComponent по умолчанию относится, если вы используете это.

2 голосов
/ 10 ноября 2009

То, что вы ищете, это ACL (списки контроля доступа). В Cake есть встроенный AclComponent, который вы должны изучить. Он работает вместе с AuthComponent, который будет содержать идентификатор пользователя. Сначала это немного сложно, но стоит хлопот.

1 голос
/ 10 ноября 2009

Также, для простого подхода, взгляните на настройки model и controller AuthComponent::authorize. Это позволяет вам определить isAuthorized() метод в вашем контроллере или модели (по вашему выбору), который будет хранить логику, определяющую доступ (должен возвращать true, если доступ разрешен, и false, если отказано).

0 голосов
/ 11 ноября 2009

для просмотра сеансов, запросов, данных и всего остального, что передается со страницы на страницу в торт, используйте этого удивительного маленького помощника http://thechaw.com/debug_kit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...