Fixes for various paths
This commit is contained in:
parent
61a2d1ce0c
commit
8ea6dec346
2 changed files with 33 additions and 24 deletions
|
@ -10,42 +10,33 @@ import (
|
|||
|
||||
// AddUserToProjectHandler is a handler that adds a user to a project with a specified role
|
||||
func AddUserToProjectHandler(c *fiber.Ctx) error {
|
||||
// Extract necessary parameters from the request
|
||||
var requestData struct {
|
||||
Username string `json:"username"`
|
||||
ProjectName string `json:"projectName"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
if err := c.BodyParser(&requestData); err != nil {
|
||||
log.Info("Error parsing request body:", err)
|
||||
return c.Status(400).SendString("Bad request")
|
||||
}
|
||||
|
||||
// Check if the user adding another user to the project is a site admin
|
||||
user := c.Locals("user").(*jwt.Token)
|
||||
claims := user.Claims.(jwt.MapClaims)
|
||||
adminUsername := claims["name"].(string)
|
||||
log.Info("Admin username from claims:", adminUsername)
|
||||
pm_name := claims["name"].(string)
|
||||
|
||||
isAdmin, err := db.GetDb(c).IsSiteAdmin(adminUsername)
|
||||
project := c.Params("projectName")
|
||||
username := c.Query("userName")
|
||||
|
||||
// Check if the user is a project manager
|
||||
isPM, err := db.GetDb(c).IsProjectManager(pm_name, project)
|
||||
if err != nil {
|
||||
log.Info("Error checking admin status:", err)
|
||||
log.Info("Error checking if user is project manager:", err)
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
if !isAdmin {
|
||||
log.Info("User is not a site admin:", adminUsername)
|
||||
return c.Status(403).SendString("User is not a site admin")
|
||||
if !isPM {
|
||||
log.Info("User: ", pm_name, " is not a project manager in project: ", project)
|
||||
return c.Status(403).SendString("User is not a project manager")
|
||||
}
|
||||
|
||||
// Add the user to the project with the specified role
|
||||
err = db.GetDb(c).AddUserToProject(requestData.Username, requestData.ProjectName, requestData.Role)
|
||||
err = db.GetDb(c).AddUserToProject(username, project, "member")
|
||||
if err != nil {
|
||||
log.Info("Error adding user to project:", err)
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
// Return success message
|
||||
log.Info("User added to project successfully:", requestData.Username)
|
||||
log.Info("User : ", username, " added to project: ", project)
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue