mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-17 14:24:30 +08:00
NET-152 enrollment keys for non admins (#2346)
* return 401 instead of 403 * fixed http.StatusForbidden * Tagged build version (temp) * Unauthorized_Err when applicable * untagged version * fixed PUT /api/users/networks/user1 * - expired token redirs to login - added `/api/enrollment_keys` for non-admins - unit test for enrollment keys for non-admins * handle user perms in `/hosts` * removed debug * misc * - support masteradmin - return hosts with partial access * added `ismaster` to middleware
This commit is contained in:
@@ -31,6 +31,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
|
||||
var errorResponse = models.ErrorResponse{
|
||||
Code: http.StatusForbidden, Message: Forbidden_Msg,
|
||||
}
|
||||
r.Header.Set("ismaster", "no")
|
||||
|
||||
var params = mux.Vars(r)
|
||||
bearerToken := r.Header.Get("Authorization")
|
||||
@@ -53,6 +54,10 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
|
||||
ReturnErrorResponse(w, r, errorResponse)
|
||||
return
|
||||
}
|
||||
// detect masteradmin
|
||||
if len(networks) > 0 && networks[0] == ALL_NETWORK_ACCESS {
|
||||
r.Header.Set("ismaster", "yes")
|
||||
}
|
||||
networksJson, err := json.Marshal(&networks)
|
||||
if err != nil {
|
||||
ReturnErrorResponse(w, r, errorResponse)
|
||||
@@ -147,6 +152,7 @@ func UserPermissions(reqAdmin bool, netname string, token string) ([]string, str
|
||||
}
|
||||
//all endpoints here require master so not as complicated
|
||||
if authenticateMaster(authToken) {
|
||||
// TODO log in as an actual admin user
|
||||
return []string{ALL_NETWORK_ACCESS}, master_uname, nil
|
||||
}
|
||||
username, networks, isadmin, err := VerifyUserToken(authToken)
|
||||
|
Reference in New Issue
Block a user