mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
WIP: API methods for add/remove members to user group
This commit is contained in:
@@ -140,7 +140,9 @@ func (hs *HttpServer) registerRoutes() {
|
|||||||
r.Put("/:userGroupId", bind(m.UpdateUserGroupCommand{}), wrap(UpdateUserGroup))
|
r.Put("/:userGroupId", bind(m.UpdateUserGroupCommand{}), wrap(UpdateUserGroup))
|
||||||
r.Delete("/:userGroupId", wrap(DeleteUserGroupById))
|
r.Delete("/:userGroupId", wrap(DeleteUserGroupById))
|
||||||
r.Get("/:userGroupId/members", wrap(GetUserGroupMembers))
|
r.Get("/:userGroupId/members", wrap(GetUserGroupMembers))
|
||||||
}, reqGrafanaAdmin)
|
r.Post("/:userGroupId/members", quota("user-groups"), bind(m.AddUserGroupMemberCommand{}), wrap(AddUserGroupMember))
|
||||||
|
r.Delete("/:userGroupId/members/:userId", wrap(RemoveUserGroupMember))
|
||||||
|
}, reqOrgAdmin)
|
||||||
|
|
||||||
// org information available to all users.
|
// org information available to all users.
|
||||||
r.Group("/org", func() {
|
r.Group("/org", func() {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/bus"
|
"github.com/grafana/grafana/pkg/bus"
|
||||||
"github.com/grafana/grafana/pkg/middleware"
|
"github.com/grafana/grafana/pkg/middleware"
|
||||||
m "github.com/grafana/grafana/pkg/models"
|
m "github.com/grafana/grafana/pkg/models"
|
||||||
|
"github.com/grafana/grafana/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GET /api/user-groups/:userGroupId/members
|
// GET /api/user-groups/:userGroupId/members
|
||||||
@@ -16,3 +17,28 @@ func GetUserGroupMembers(c *middleware.Context) Response {
|
|||||||
|
|
||||||
return Json(200, query.Result)
|
return Json(200, query.Result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// POST /api/user-groups/:userGroupId/members
|
||||||
|
func AddUserGroupMember(c *middleware.Context, cmd m.AddUserGroupMemberCommand) Response {
|
||||||
|
cmd.UserGroupId = c.ParamsInt64(":userGroupId")
|
||||||
|
cmd.OrgId = c.OrgId
|
||||||
|
|
||||||
|
if err := bus.Dispatch(&cmd); err != nil {
|
||||||
|
if err == m.ErrUserGroupMemberAlreadyAdded {
|
||||||
|
return ApiError(400, "User is already added to this user group", err)
|
||||||
|
}
|
||||||
|
return ApiError(500, "Failed to add Member to User Group", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return Json(200, &util.DynMap{
|
||||||
|
"message": "Member added to User Group",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// DELETE /api/user-groups/:userGroupId/members/:userId
|
||||||
|
func RemoveUserGroupMember(c *middleware.Context) Response {
|
||||||
|
if err := bus.Dispatch(&m.RemoveUserGroupMemberCommand{UserGroupId: c.ParamsInt64(":userGroupId"), UserId: c.ParamsInt64(":userId")}); err != nil {
|
||||||
|
return ApiError(500, "Failed to remove Member from User Group", err)
|
||||||
|
}
|
||||||
|
return ApiSuccess("User Group Member removed")
|
||||||
|
}
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ type UserGroupMember struct {
|
|||||||
// COMMANDS
|
// COMMANDS
|
||||||
|
|
||||||
type AddUserGroupMemberCommand struct {
|
type AddUserGroupMemberCommand struct {
|
||||||
|
UserId int64 `json:"userId" binding:"Required"`
|
||||||
OrgId int64 `json:"-"`
|
OrgId int64 `json:"-"`
|
||||||
UserGroupId int64 `json:"-"`
|
UserGroupId int64 `json:"-"`
|
||||||
UserId int64 `json:"-"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type RemoveUserGroupMemberCommand struct {
|
type RemoveUserGroupMemberCommand struct {
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ func CreateUserGroup(cmd *m.CreateUserGroupCommand) error {
|
|||||||
|
|
||||||
userGroup := m.UserGroup{
|
userGroup := m.UserGroup{
|
||||||
Name: cmd.Name,
|
Name: cmd.Name,
|
||||||
|
OrgId: cmd.OrgId,
|
||||||
Created: time.Now(),
|
Created: time.Now(),
|
||||||
Updated: time.Now(),
|
Updated: time.Now(),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user