我有一個傳統的Rails 4應用程序,具有User模型和Sorcery進行身份驗證。用戶模型具有「管理員」標誌。實現管理員臨時成爲另一個用戶的能力的最佳方式是什麼(爲了查看用戶看到的用於幫助調試問題的內容),然後回到他們原來的管理員啓用用戶身上?如何實現管理員暫時成爲另一個用戶?
回答
我不瞭解rails,但是在Unix下,您的可執行文件需要被允許在用戶模式之間切換。這是通過在可執行文件上設置's'位來完成的,並將所有者和/或組設置爲執行您希望應用程序能夠執行的任何操作。 (即大多數情況下,您使用root作爲所有者,srwxr-xr-x作爲權限,即4755作爲模式編號)。
一旦你有了,你的應用程序可以使用函數setuid(<uid>)
。如果使用root,則<uid>將爲0(零)。
在Linux下,您還有seteuid()
,setfsuid()
和setreuid()
。
爲了確保您做得正確,我建議您閱讀相應的手冊頁。
什麼,我很抱歉,如果我沒有明確這一點,但我不是在談論UNIX系統用戶。我正在談論網站上的用戶,每個用戶在關係數據庫的「用戶」表中都有記錄。 – odigity
啊!然後,我想我不能幫助。如果沒有更好的瞭解系統如何記錄用戶的信息......您將無法做到這一點。在我正在處理的CMS中,代碼可以隨時讀取數據庫中的任何可用內容。但是,我可以調用一個函數來測試任何給定用戶(默認情況下,當前用戶)是否有權查看/修改/刪除該數據。 –
我沒有這方面的經驗,但也許你可以添加一個超級用戶標誌到你的用戶模型。如果你是超級用戶,你可以調整管理標誌。超級用戶唯一的一點就是能夠關閉或打開管理權限。現在,您可以在用戶或管理員之間切換,並查看用戶看到的內容。完成後,您啓用管理員,並重新獲得管理界面。
這將工作,但我不知道它是否是您的用例的最佳解決方案。只是在這裏理論創造。 :)
- 1. 有沒有在xmpp中的任何節爲管理員添加另一個成員作爲管理員
- 2. 創建一個按鈕,使用戶成爲管理員
- 3. GitHub:我如何讓用戶成爲組織的管理員?
- 4. 我如何讓用戶成爲管理員
- 5. 如何讓會員用戶成爲Ektron會員組的管理員?
- 6. 如何實現當一個類有多個成員時處置
- 7. 如何將一個普通用戶分配爲超級用戶或管理員
- 8. 如何限制活動管理員只有管理員用戶?
- 9. Laravel:如何區分普通用戶,管理員和管理員
- 10. 如果我的唯一用戶將成爲管理員,如何保護Flask-Admin?
- 11. 如何從另一個類或模型調用Active管理成員動作
- 12. ASP.Net成員資格和用戶管理
- 13. 作爲實用工具的成員實現一個功能
- 14. 如何使用Devise作爲管理員瀏覽用戶帳戶?
- 15. 如何創建第一個(管理員)用戶(CanCan和Devise)?
- 16. 作爲Symfony2安全性的另一個用戶的管理員登錄
- 17. 爲什麼當成員已經使用另一種類型實現時,必須顯式實現一個類型爲object的接口成員?
- 18. 作爲MVC4應用程序管理員的第一個用戶
- 19. AWS Cognito - 如何設置第一個用戶爲管理員,下一個爲用戶。
- 20. 我如何檢查如果登錄的用戶是管理員或管理員組的成員在javascript
- 21. 如何模擬另一個域用戶,因爲我擁有此AD域的管理員帳戶?
- 22. 如何啓用TYPO3非管理員來管理後端用戶
- 23. 如何在Java應用程序中實現管理員權限?
- 24. 如何管理一個管理員的兩個域
- 25. IO如何調用成員,如果成員有回調實現
- 26. 如何在Django管理員中生成用戶反饋?
- 27. Django管理員爲用戶的對象
- 28. Wordpress將用戶更改爲管理員
- 29. 爲管理員用戶創建遷移
- 30. 作爲管理員添加AD用戶
一個合理優雅的解決方案,並呈現爲auth-library-netural。我會給它勾號。 – odigity