mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
This commit is contained in:
@@ -8,9 +8,6 @@ import (
|
||||
)
|
||||
|
||||
func AdminSearchUsers(c *middleware.Context) {
|
||||
// query := c.QueryStrings("q")
|
||||
// page := c.QueryStrings("p")
|
||||
|
||||
query := m.SearchUsersQuery{Query: "", Page: 0, Limit: 20}
|
||||
if err := bus.Dispatch(&query); err != nil {
|
||||
c.JsonApiErr(500, "Failed to fetch users", err)
|
||||
@@ -93,3 +90,16 @@ func AdminUpdateUser(c *middleware.Context, form dtos.AdminUpdateUserForm) {
|
||||
|
||||
c.JsonOK("User updated")
|
||||
}
|
||||
|
||||
func AdminDeleteUser(c *middleware.Context) {
|
||||
userId := c.ParamsInt64(":id")
|
||||
|
||||
cmd := m.DeleteUserCommand{UserId: userId}
|
||||
|
||||
if err := bus.Dispatch(&cmd); err != nil {
|
||||
c.JsonApiErr(500, "Failed to delete user", err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JsonOK("User deleted")
|
||||
}
|
||||
|
||||
@@ -98,6 +98,7 @@ func Register(r *macaron.Macaron) {
|
||||
r.Get("/users/:id", AdminGetUser)
|
||||
r.Post("/users", bind(dtos.AdminCreateUserForm{}), AdminCreateUser)
|
||||
r.Put("/users/:id", bind(dtos.AdminUpdateUserForm{}), AdminUpdateUser)
|
||||
r.Delete("/users/:id", AdminDeleteUser)
|
||||
}, reqGrafanaAdmin)
|
||||
|
||||
// rendering
|
||||
|
||||
@@ -50,6 +50,10 @@ type UpdateUserCommand struct {
|
||||
UserId int64 `json:"-"`
|
||||
}
|
||||
|
||||
type DeleteUserCommand struct {
|
||||
UserId int64
|
||||
}
|
||||
|
||||
type SetUsingAccountCommand struct {
|
||||
UserId int64
|
||||
AccountId int64
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package sqlstore
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -23,6 +24,7 @@ func init() {
|
||||
bus.AddHandler("sql", GetSignedInUser)
|
||||
bus.AddHandler("sql", SearchUsers)
|
||||
bus.AddHandler("sql", GetUserAccounts)
|
||||
bus.AddHandler("sql", DeleteUser)
|
||||
}
|
||||
|
||||
func getAccountIdForNewUser(userEmail string, sess *session) (int64, error) {
|
||||
@@ -256,3 +258,11 @@ func SearchUsers(query *m.SearchUsersQuery) error {
|
||||
err := sess.Find(&query.Result)
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteUser(cmd *m.DeleteUserCommand) error {
|
||||
return inTransaction(func(sess *xorm.Session) error {
|
||||
var rawSql = fmt.Sprintf("DELETE FROM %s WHERE id=?", x.Dialect().Quote("user"))
|
||||
_, err := sess.Exec(rawSql, cmd.UserId)
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -24,7 +24,9 @@ function (angular) {
|
||||
title: 'Delete user',
|
||||
text: 'Are you sure you want to delete user: ' + user.login,
|
||||
onConfirm: function() {
|
||||
backendSrv.delete('/api/admin/users/delete/' + user.id);
|
||||
backendSrv.delete('/api/admin/users/' + user.id).then(function() {
|
||||
$scope.getUsers();
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
Edit
|
||||
</a>
|
||||
|
||||
<a ng-click="delete(variable)" class="btn btn-danger btn-small">
|
||||
<a ng-click="deleteUser(user)" class="btn btn-danger btn-small">
|
||||
<i class="fa fa-remove"></i>
|
||||
</a>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user