初學flask部署,踩了一些坑記錄一下。 uwsgi配置 對於uwsgi的安裝不詳細描述 在centos7上部署flask 大型應用的時候會使用工廠模式create_app(),放置在一個module的__init__.py中, uwsgi配置的時候應該就不要使用 wsgi-file 來進行配置,查 ...
首先,讓我們定義一個規則:用戶只能訪問自己創建的文章。
facades.Gate.Define("update-post", func(ctx context.Context, arguments map[string]any) *access.Response {
user := ctx.Value("user").(models.User)
post := arguments["post"].(models.Post)
if user.ID == post.UserID {
return access.NewAllowResponse()
} else {
return access.NewDenyResponse("error")
}
})
然後判斷單個許可權:
if facades.Gate.Allows("update-post", map[string]any{
"post": post,
}) {
// todo
}
你也可以同時判斷多個許可權:
if facades.Gate.Any([]string{"update-post", "delete-post"}, map[string]any{
"post": post,
}) {
// 用戶可以提交update或delete...
}
if facades.Gate.None([]string{"update-post", "delete-post"}, map[string]any{
"post": post,
}) {
// 用戶不可以提交update和delete...
}
你甚至可以定義 Before
與 After
進行授權前後的攔截,詳見文檔。
Over, 就是如此簡單!
關於 Goravel
Goravel 是一個功能完備、具有良好擴展能力的 Web 應用程式框架。作為一個起始腳手架幫助 Golang 開發者快速構建自己的應用。
框架風格與 Laravel 保持一致,讓 PHPer 不用學習新的框架,也可以愉快的玩轉 Golang!致敬 Laravel!
Welcome star, PR and issues!