File tree Expand file tree Collapse file tree 4 files changed +12
-3
lines changed
Expand file tree Collapse file tree 4 files changed +12
-3
lines changed Original file line number Diff line number Diff line change 44 User struct {
55 Id string
66 Email string
7- Role string
7+ Role int
88 }
99
1010 Env struct {
3434 HeaderUserId string
3535 HeaderUserEmail string
3636 HeaderUserRole string
37+ MaximumRole int
3738 CacheLifetime int
3839 User * User
3940 TemplateLocation string
Original file line number Diff line number Diff line change @@ -120,6 +120,7 @@ var Core = []dingo.Def{
120120 env .HeaderUserId = os .Getenv ("HEADER_USER_ID" )
121121 env .HeaderUserEmail = os .Getenv ("HEADER_USER_EMAIL" )
122122 env .HeaderUserRole = os .Getenv ("HEADER_USER_ROLE" )
123+ env .MaximumRole , _ = strconv .Atoi (os .Getenv ("MAXIMUM_ROLE" ))
123124
124125 env .CacheLifetime , _ = strconv .Atoi (os .Getenv ("CACHE_LIFETIME" ))
125126
Original file line number Diff line number Diff line change 11middlewares :
2- - core:middleware:auth
2+ # - core:middleware:auth
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package middlewares
22
33import (
44 "net/http"
5+ "strconv"
56
67 configs "github.com/crowdeco/skeleton/configs"
78)
@@ -13,7 +14,13 @@ type Auth struct {
1314func (a * Auth ) Attach (request * http.Request , response http.ResponseWriter ) bool {
1415 a .Env .User .Id = request .Header .Get (a .Env .HeaderUserId )
1516 a .Env .User .Email = request .Header .Get (a .Env .HeaderUserEmail )
16- a .Env .User .Role = request .Header .Get (a .Env .HeaderUserRole )
17+ a .Env .User .Role , _ = strconv .Atoi (request .Header .Get (a .Env .HeaderUserRole ))
18+
19+ if a .Env .User .Role == 0 || a .Env .User .Role > a .Env .MaximumRole {
20+ http .Error (response , "Unauthorization" , http .StatusUnauthorized )
21+
22+ return true
23+ }
1724
1825 return false
1926}
You can’t perform that action at this time.
0 commit comments