Handler for ChangeUserName changed and corresponding test added
This commit is contained in:
parent
acdee28eb0
commit
44f6b31056
2 changed files with 56 additions and 16 deletions
|
@ -234,33 +234,33 @@ func (gs *GState) PromoteToAdmin(c *fiber.Ctx) error {
|
|||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
// Changes a users name in the database
|
||||
// ChangeUserName changes a user's username in the database
|
||||
func (gs *GState) ChangeUserName(c *fiber.Ctx) error {
|
||||
|
||||
//check token and get username of current user
|
||||
// Check token and get username of current user
|
||||
user := c.Locals("user").(*jwt.Token)
|
||||
claims := user.Claims.(jwt.MapClaims)
|
||||
projectManagerUsername := claims["name"].(string)
|
||||
log.Info(projectManagerUsername)
|
||||
adminUsername := claims["name"].(string)
|
||||
log.Info(adminUsername)
|
||||
|
||||
// Extract the necessary parameters from the request
|
||||
data := new(types.NameChange)
|
||||
data := new(types.StrNameChange)
|
||||
if err := c.BodyParser(data); err != nil {
|
||||
log.Info("error parsing username, project or role")
|
||||
log.Info("Error parsing username")
|
||||
return c.Status(400).SendString(err.Error())
|
||||
}
|
||||
|
||||
// dubble diping and checcking if current user is
|
||||
|
||||
if ismanager, err := gs.Db.IsProjectManager(projectManagerUsername, c.Params(data.Name)); err != nil {
|
||||
log.Warn("Error checking if projectmanager:", err)
|
||||
// Check if the current user is an admin
|
||||
isAdmin, err := gs.Db.IsSiteAdmin(adminUsername)
|
||||
if err != nil {
|
||||
log.Warn("Error checking if admin:", err)
|
||||
return c.Status(500).SendString(err.Error())
|
||||
} else if !ismanager {
|
||||
log.Warn("tried changing name when not projectmanager:", err)
|
||||
return c.Status(401).SendString("you can not change name when not projectmanager")
|
||||
} else if !isAdmin {
|
||||
log.Warn("Tried changing name when not admin")
|
||||
return c.Status(401).SendString("You cannot change name unless you are an admin")
|
||||
}
|
||||
|
||||
// Change the user's name within the project in the database
|
||||
if err := gs.Db.ChangeUserName(projectManagerUsername, data.Name); err != nil {
|
||||
// Change the user's name in the database
|
||||
if err := gs.Db.ChangeUserName(data.PrevName, data.NewName); err != nil {
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue