Added endpoint to update a user <-> namespace relation
This commit is contained in:
parent
1e993f1e5c
commit
5e8597699d
4 changed files with 34 additions and 1 deletions
|
@ -17,7 +17,7 @@ Authorization: Bearer {{auth_token}}
|
||||||
###
|
###
|
||||||
|
|
||||||
# Give a user access to that namespace
|
# Give a user access to that namespace
|
||||||
PUT http://localhost:8080/api/v1/namespaces/12/users
|
PUT http://localhost:8080/api/v1/namespaces/1/users
|
||||||
Authorization: Bearer {{auth_token}}
|
Authorization: Bearer {{auth_token}}
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
|
|
||||||
|
@ -25,6 +25,15 @@ Content-Type: application/json
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
# Update a users access to that namespace
|
||||||
|
POST http://localhost:8080/api/v1/namespaces/1/users/3
|
||||||
|
Authorization: Bearer {{auth_token}}
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{"right": 2}
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
# Delete a user from a namespace
|
# Delete a user from a namespace
|
||||||
DELETE http://localhost:8080/api/v1/namespaces/1/users/2
|
DELETE http://localhost:8080/api/v1/namespaces/1/users/2
|
||||||
Authorization: Bearer {{auth_token}}
|
Authorization: Bearer {{auth_token}}
|
||||||
|
|
|
@ -13,3 +13,10 @@ func (nu *NamespaceUser) CanDelete(doer *User) bool {
|
||||||
n, _ := GetNamespaceByID(nu.NamespaceID)
|
n, _ := GetNamespaceByID(nu.NamespaceID)
|
||||||
return n.CanWrite(doer)
|
return n.CanWrite(doer)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CanUpdate checks if the user can update a user <-> namespace relation
|
||||||
|
func (nu *NamespaceUser) CanUpdate(doer *User) bool {
|
||||||
|
// Get the namespace and check if the user has write access on it
|
||||||
|
n, _ := GetNamespaceByID(nu.NamespaceID)
|
||||||
|
return n.CanWrite(doer)
|
||||||
|
}
|
||||||
|
|
16
models/namespace_users_update.go
Normal file
16
models/namespace_users_update.go
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
package models
|
||||||
|
|
||||||
|
// Update updates a user <-> namespace relation
|
||||||
|
func (nu *NamespaceUser) Update() (err error) {
|
||||||
|
|
||||||
|
// Check if the right is valid
|
||||||
|
if err := nu.Right.isValid(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = x.
|
||||||
|
Where("namespace_id = ? AND user_id = ?", nu.NamespaceID, nu.UserID).
|
||||||
|
Cols("right").
|
||||||
|
Update(nu)
|
||||||
|
return
|
||||||
|
}
|
|
@ -125,6 +125,7 @@ func RegisterRoutes(e *echo.Echo) {
|
||||||
a.GET("/namespaces/:namespace/users", namespaceUserHandler.ReadAllWeb)
|
a.GET("/namespaces/:namespace/users", namespaceUserHandler.ReadAllWeb)
|
||||||
a.PUT("/namespaces/:namespace/users", namespaceUserHandler.CreateWeb)
|
a.PUT("/namespaces/:namespace/users", namespaceUserHandler.CreateWeb)
|
||||||
a.DELETE("/namespaces/:namespace/users/:user", namespaceUserHandler.DeleteWeb)
|
a.DELETE("/namespaces/:namespace/users/:user", namespaceUserHandler.DeleteWeb)
|
||||||
|
a.POST("/namespaces/:namespace/users/:user", namespaceUserHandler.UpdateWeb)
|
||||||
|
|
||||||
teamHandler := &crud.WebHandler{
|
teamHandler := &crud.WebHandler{
|
||||||
CObject: &models.Team{},
|
CObject: &models.Team{},
|
||||||
|
|
Loading…
Add table
Reference in a new issue