2014-01-27 78 views
0

我的應用程序在zend框架,symfony,學說。跨客戶端用戶認證

在我的web應用程序有多個客戶端,這是他們的實體像產品和產品相關的其他實體。下面是我的問題:

用戶表(客戶端):

id  Name 
---------------- 
1  A 
2  B 

產品表:

id  Name  
------------- 
1  Product-1 
2  Product-2 
3  Product-3 

UserProduct表:

id  user_id product_id 
1  1   1 
2  1   2 
3  2   3 

客戶「A」進去後登錄,網址編輯產品:xyz.com/product?id=1 現在客戶端「B」去後登錄,網址編輯產品:xyz.com/product?id=1

所以客戶端「B」不應該編輯產品ID = 1

是否可以在一般功能?

回答

0

是的。您可以限制客戶端'B'不應編輯產品id = 1。您可以使用Joins獲取記錄表格表。你必須保持在user_id會議

SELECT * FROM product p LEFT JOIN userproduct up ON (p.id == up.product_id) WHERE p.id = '1' AND up.user_id = $_SESSION['user_id'] ; 

這將不允許查看其他客戶端產品以適應當前客戶端。

+0

你是對的,但我不會每次都進行查詢。我的應用程序中有很多模型,所以我想通過泛化進行限制。像ACL將限制用戶訪問我們的控制器/操作等,但不限制這樣的問題。 瞭解我的問題? –