Added endpoint to update a users right for a list
This commit is contained in:
parent
3a338f54f9
commit
4f538abc83
4 changed files with 34 additions and 1 deletions
|
@ -68,7 +68,7 @@ Authorization: Bearer {{auth_token}}
|
|||
###
|
||||
|
||||
# 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}}
|
||||
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 http://localhost:8080/api/v1/lists/28/users/3
|
||||
Authorization: Bearer {{auth_token}}
|
||||
|
|
|
@ -39,3 +39,10 @@ func (lu *ListUser) CanDelete(doer *User) bool {
|
|||
l, _ := GetListByID(lu.ListID)
|
||||
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)
|
||||
}
|
||||
|
|
16
models/list_users_update.go
Normal file
16
models/list_users_update.go
Normal 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
|
||||
}
|
|
@ -100,6 +100,7 @@ func RegisterRoutes(e *echo.Echo) {
|
|||
a.GET("/lists/:list/users", listUserHandler.ReadAllWeb)
|
||||
a.PUT("/lists/:list/users", listUserHandler.CreateWeb)
|
||||
a.DELETE("/lists/:list/users/:user", listUserHandler.DeleteWeb)
|
||||
a.POST("/lists/:list/users/:user", listUserHandler.UpdateWeb)
|
||||
|
||||
namespaceHandler := &crud.WebHandler{
|
||||
CObject: &models.Namespace{},
|
||||
|
|
Loading…
Reference in a new issue