2009-11-10 18 views
6

tôi đang lên kế hoạch đặt quyền trên trang chỉ mục sự kiện của tôi, điều này chỉ cho phép người dùng nhất định xem chế độ xem đã đặt khi tôi thêm sự kiện. Sau khi người dùng nhấp vào sự kiện của tôi, bộ điều khiển sự kiện sẽ kiểm tra id người dùng và kiểm tra cơ sở dữ liệu sự kiện kiểm soát người dùng có thể xem sự kiện nào trong lịch của anh ấy. Quyền được thêm khi người dùng tạo sự kiện và chia sẻ với người dùng khác. Bên cạnh đó, làm thế nào tôi có thể tìm thấy id người dùng hiện tại để so sánh với cơ sở dữ liệu sự kiện của tôi, đó là chính xác 1?làm thế nào để tìm ra id người dùng hiện tại của tôi trong bộ điều khiển trang khác sau khi tôi đăng nhập?

bất kỳ đề xuất nào cho tôi để thực hiện chức năng này? tôi cần biết mã và khái niệm cách tôi lấy id người dùng hiện tại để so sánh với tất cả cơ sở dữ liệu sự kiện và cho phép người dùng hiện tại thấy sự kiện nhất định.

cảm ơn rất nhiều vì thông tin của bạn.

Trả lời

18

Phương pháp khuyến khích cho việc đăng nhập dữ liệu người dùng là thông qua các AuthComponent bản thân:

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

Xem Accessing the logged in user trong phần Auth của CakePHP Book.

6

Sử dụng các phiên để lưu và đọc dữ liệu cho người dùng giữa các trang.

Trong Bộ xử lý:

// 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'); 

Trong lần xem:

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

Bạn có thể sử dụng bất kỳ phím nào bạn muốn nếu bạn thích một cái gì đó trên "User.id". Tôi chỉ đơn giản là sử dụng này vì nó là những gì các AuthComponent mặc định nếu bạn đang sử dụng đó.

+1

1 này ví dụ kỹ lưỡng, nhưng "Sự khác biệt lớn giữa Helper và Session sự Session Component là helper không có khả năng ghi vào phiên. " http://book.cakephp.org/view/484/Session – deizel

+1

Cảm ơn bạn đã chỉ ra sự khác biệt đó, tôi đã cập nhật phản hồi của mình để phản ánh điều đó. –

2

Điều bạn đang tìm kiếm là ACL (Danh sách điều khiển truy cập). Có AclComponent được tích hợp sẵn vào Bánh mà bạn nên xem xét. Nó hoạt động cùng với AuthComponent, sẽ giữ id người dùng. Đó là một chút phức tạp lúc đầu, nhưng giá trị rắc rối.

+0

AclComponent chỉ xảy ra để được sử dụng dưới mui xe trong một số mô-đun * ủy quyền *. AuthComponent là nơi để tìm người dùng * đã được xác thực *, cũng như các thứ liên quan đến auth cấp cao nhất khác. – spinkus

1

Ngoài ra, với cách tiếp cận đơn giản, hãy xem cài đặt modelcontroller của AuthComponent::authorize. Điều này cho phép bạn xác định phương thức isAuthorized() trong bộ điều khiển hoặc mô hình của bạn (lựa chọn của bạn) sẽ lưu trữ logic xác định quyền truy cập (phải trả lại true nếu quyền truy cập được phép và false nếu bị từ chối).

0

để xem phiên, truy vấn, dữ liệu, và mọi thứ khác mà được chuyển từ trang này sang trang trong bánh sử dụng tuyệt vời ít helper http://thechaw.com/debug_kit

Các vấn đề liên quan