Added endpoint to update a users right for a list

This commit is contained in:
kolaente 2018-09-19 07:54:47 +02:00
parent 3a338f54f9
commit 4f538abc83
No known key found for this signature in database
GPG key ID: F40E70337AB24C9B
4 changed files with 34 additions and 1 deletions

View file

@ -68,7 +68,7 @@ Authorization: Bearer {{auth_token}}
### ###
# Give a user access to that list # Give a user access to that list
PUT http://localhost:8080/api/v1/lists/28/users PUT http://localhost:8080/api/v1/lists/30/users
Authorization: Bearer {{auth_token}} Authorization: Bearer {{auth_token}}
Content-Type: application/json Content-Type: application/json
@ -76,6 +76,15 @@ Content-Type: application/json
### ###
# Update a users access to that list
POST http://localhost:8080/api/v1/lists/30/users/3
Authorization: Bearer {{auth_token}}
Content-Type: application/json
{"right":2}
###
# Delete a user from a list # Delete a user from a list
DELETE http://localhost:8080/api/v1/lists/28/users/3 DELETE http://localhost:8080/api/v1/lists/28/users/3
Authorization: Bearer {{auth_token}} Authorization: Bearer {{auth_token}}

View file

@ -39,3 +39,10 @@ func (lu *ListUser) CanDelete(doer *User) bool {
l, _ := GetListByID(lu.ListID) l, _ := GetListByID(lu.ListID)
return l.CanWrite(doer) return l.CanWrite(doer)
} }
// CanUpdate checks if the user can update a user <-> list relation
func (lu *ListUser) CanUpdate(doer *User) bool {
// Get the list and check if the user has write access on it
l, _ := GetListByID(lu.ListID)
return l.CanWrite(doer)
}

View file

@ -0,0 +1,16 @@
package models
// Update updates a user <-> list relation
func (lu *ListUser) Update() (err error) {
// Check if the right is valid
if err := lu.Right.isValid(); err != nil {
return err
}
_, err = x.
Where("list_id = ? AND user_id = ?", lu.ListID, lu.UserID).
Cols("right").
Update(lu)
return
}

View file

@ -100,6 +100,7 @@ func RegisterRoutes(e *echo.Echo) {
a.GET("/lists/:list/users", listUserHandler.ReadAllWeb) a.GET("/lists/:list/users", listUserHandler.ReadAllWeb)
a.PUT("/lists/:list/users", listUserHandler.CreateWeb) a.PUT("/lists/:list/users", listUserHandler.CreateWeb)
a.DELETE("/lists/:list/users/:user", listUserHandler.DeleteWeb) a.DELETE("/lists/:list/users/:user", listUserHandler.DeleteWeb)
a.POST("/lists/:list/users/:user", listUserHandler.UpdateWeb)
namespaceHandler := &crud.WebHandler{ namespaceHandler := &crud.WebHandler{
CObject: &models.Namespace{}, CObject: &models.Namespace{},