diff options
Diffstat (limited to 'api/user.go')
-rw-r--r-- | api/user.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/api/user.go b/api/user.go index a2737fd..bc24bbb 100644 --- a/api/user.go +++ b/api/user.go | |||
@@ -30,6 +30,20 @@ func UserConfirmed(c *gin.Context) *Error { | |||
30 | return nil | 30 | return nil |
31 | } | 31 | } |
32 | 32 | ||
33 | func UserIsAdmin(c *gin.Context) *Error { | ||
34 | user, exists := c.Get("user") | ||
35 | |||
36 | if !exists { | ||
37 | return &Error{NotAuthorized, "not authorized", fmt.Errorf("no user key in context")} | ||
38 | } | ||
39 | |||
40 | if user.(db.User).Role != db.RoleAdmin { | ||
41 | return &Error{NotAuthorized, "not authorized", fmt.Errorf("user '%v' is not admin", user)} | ||
42 | } | ||
43 | |||
44 | return nil | ||
45 | } | ||
46 | |||
33 | func GetUser(c *gin.Context) db.User { | 47 | func GetUser(c *gin.Context) db.User { |
34 | user, _ := c.Get("user") | 48 | user, _ := c.Get("user") |
35 | 49 | ||