0
A
回答
1
您可以使用Authkit(http://authkit.org)和 「授權」 裝飾:
from authkit.authorize.pylons_adaptors import authorize
from authkit.permissions import RemoteUser
class MainController(BaseController):
@authorize(RemoteUser())
def index(self):
pass
您可以編寫自己的權限類,恩。 (這是一些舊項目的一部分,請檢查它是否要使用它):
class HasPerm(RequestPermission):
def __init__(self, perms, all=False, error=None):
if isinstance(perms, str):
perms = [perms]
self.all = all
self.perms = perms
self.error = error
self.full_access = "ADMIN"
def check(self, app, environ, start_response):
if not environ.has_key('REMOTE_USER'):
if self.error:
raise self.error
raise NotAuthenticatedError('Not authenticated')
user = Session.query(User)
user = user.filter_by(name=environ['REMOTE_USER']).first()
if not user:
raise NotAuthorizedError('No such user')
if user.blocked:
raise NotAuthorizedError('User blocked')
user_perms = [x.name for x in user.permissions]
if self.full_access in user_perms:
return app(environ, start_response)
for p in self.perms:
checked_perm = model.Permission.get_by(name=p)
if not checked_perm:
raise NotAuthorizedError("There is no permission")
if checked_perm.name in user_perms and not self.all:
return app(environ, start_response)
if checked_perm.name not in user_perms and self.all:
raise NotAuthorizedError("User has no permission")
raise NotAuthorizedError("User has no permission")
相關問題
- 1. Web應用程序的訪問控制
- 2. 訪問Windows應用程序的控制
- 3. 訪問控制檯應用程序IO
- 4. 控制應用程序設置訪問
- 5. 在用戶控制中訪問主程序的數據源
- 6. EmberJS - 從其他控制器訪問應用程序控制器
- 7. Web應用程序中多個用戶的訪問控制
- 8. 如何在javafx中訪問控制器中的應用程序
- 9. 在基於GWT的應用程序中添加訪問控制
- 10. Marionette - 如何訪問控制器中的應用程序區域
- 11. Symfony2 + AngularJS應用程序中的訪問控制
- 12. 如何訪問控制檯應用程序中的資源?
- 13. 訪問控制Rails應用程序中的不同頁面?
- 14. 訪問控制和RBAC(基於角色的訪問控制)在PHP混合(程序和OOO)應用程序
- 15. 應用程序訪問控制的LDAP,它應該控制多少?
- 16. Emberjs:從App.ready中訪問應用程序控制器
- 17. 在控制檯應用程序中導出訪問查詢excel
- 18. 無法在控制檯應用程序中訪問MembershipUser
- 19. 應用程序中心管理控制檯無法訪問
- 20. angularjs應用程序訪問控制 - 允許來源問題
- 21. 如何訪問程序類中的變量(控制檯應用程序)
- 22. 限制應用程序的訪問
- 23. 如何從控制檯應用程序訪問應用程序對象?
- 24. Android應用訪問控制
- 25. 小程序訪問控制問題
- 26. 控制檯應用程序的問題
- 27. 控制從我的應用程序訪問AWS S3文件
- 28. 如何訪問nwjs應用程序的控制檯輸出?
- 29. EmberJS - 來自應用程序模板的訪問控制器值
- 30. 從單獨的控制檯應用程序訪問HttpContext.Current.Application