MCPcopy Create free account
hub / github.com/MertJSX/folderhost / EditUser

Function EditUser

routes/edit_user.go:13–71  ·  view source on GitHub ↗
(c *fiber.Ctx)

Source from the content-addressed store, hash-verified

11)
12
13func EditUser(c *fiber.Ctx) error {
14 if !c.Locals("account").(types.Account).Permissions.EditUsers {
15 return c.Status(403).JSON(
16 fiber.Map{"err": "No permission!"},
17 )
18 }
19
20 var requestBody struct {
21 User types.Account `json:"user"`
22 }
23
24 if err := c.BodyParser(&requestBody); err != nil {
25 return c.Status(400).JSON(
26 fiber.Map{"err": "Bad request! " + err.Error()},
27 )
28 }
29
30 if requestBody.User.ID == nil {
31 return c.Status(400).JSON(fiber.Map{
32 "err": "Bad request. User's ID is missing!",
33 })
34 }
35
36 if *requestBody.User.ID == 1 {
37 return c.Status(400).JSON(fiber.Map{
38 "err": "You can't update admin account from the web panel. Use config.yml instead.",
39 })
40 }
41
42 username, err := users.GetUsername(*requestBody.User.ID)
43
44 if requestBody.User.Username == "" || err != nil {
45 return c.Status(400).JSON(
46 fiber.Map{"err": "Username is missing or not existing in db."},
47 )
48 }
49
50 err = users.UpdateUser(*requestBody.User.ID, &requestBody.User)
51
52 if err != nil {
53 return c.Status(500).JSON(
54 fiber.Map{"err": "Unknown server error."},
55 )
56 }
57
58 if _, ok := cache.SessionCache.Get(username); ok {
59 cache.SessionCache.Delete(username)
60 }
61
62 logs.CreateLog(types.AuditLog{
63 Username: c.Locals("account").(types.Account).Username,
64 Action: "Edit user",
65 Description: fmt.Sprintf("%s modified user %s", c.Locals("account").(types.Account).Username, requestBody.User.Username),
66 })
67
68 return c.Status(200).JSON(
69 fiber.Map{"response": "User successfully edited!"},
70 )

Callers

nothing calls this directly

Calls 5

GetUsernameFunction · 0.92
UpdateUserFunction · 0.92
CreateLogFunction · 0.92
GetMethod · 0.80
DeleteMethod · 0.80

Tested by

no test coverage detected