0

我在我的應用程序中有一個基於SaaS的應用程序的以下結構。Rails 4基於SaaS的應用程序的角色管理

User hasMany Companies 
Company hasMany Projects 
Project hasMany Users 

數據庫結構

users(id, name, email, password, ....) 
companies(id, name, ..., created_by) 
company_members(id, company_id, user_id, is_admin) 
events(id, name, company_id, created_by) 
event_members(id, company_id, event_id, user_id, is_admin) 

在像Facebook的帳戶從用戶切換到頁面的應用程序只能看到內容涉及到一個企業用戶的任何給定的時間。所以我需要保存一個他正在工作的公司的實例,並記住它在他下次登錄時將其記錄到同一個實例中。

另外,我需要持久保存用戶正在提取與該特定公司有關的內容單獨。

現在讓我們來考慮用戶 - A,B,C,d

Company X has A,B,D as its members - (Admin for the company - A) 
Company Y has A,B,C,D as its members - (Admin for the company - B,D) 
=========== 
Company X has Project X1, X2 
Project X1 has A,D as its members (project manager for the project is D) 
Project X2 has A,B,D as its members (project manager for the project is A) 
=========== 
Company Y has Project Y1, Y2 
Project Y1 has A,B,D as its members (project manager for the project is B) 
Project Y2 has A,B,C,D as its members (project manager for the project is A,B) 

問題

我沒關係與應用程序的數據庫設計,但我試圖找出如何設置授權和角色管理來處理3個不同角色的級別。用戶可以是公司的普通會員,但可以是他參與的特定項目的項目經理。但在另一個項目中,他只是一個項目成員。同一用戶可以是另一個公司的老闆等

回答

0

讓我們看看你有3個職位級別 角色ID 1- Projmanager 角色ID 2- Proj_Member 你可以繼續叫用戶訪問表一個單獨的表,架構 Tbl_Role_Manager:角色ID, RoleDefined TBl_Proj_Details:ProjID,ProjName Tbl_User_Access:Userid,Username,User_Role_ID,Proj_Code_ID 通過這種方式,您可以在顯示頁面內容之前始終對這些表格進行一輪檢查。

對於離: 根據USER_ROLE處理中的代碼或程序,並從 Tbl_User_Access T,TBl_Proj_Details V,Tbl_Role_Managerř 其中V.ProjID = T.Proj_Code_ID 和R.RoleID顯示頁面 選擇USER_ROLE = V.User_Role_ID

相關問題