fix(api tokens)!: make sure task create routes are available to use with the api
BREAKING CHANGE: The api route to create a new task is now /projects/:project/tasks instead of /projects/:project
This commit is contained in:
parent
d6db498853
commit
bfb01898c2
@ -55,6 +55,8 @@ func getRouteGroupName(path string) string {
|
|||||||
|
|
||||||
finalName := strings.Join(filteredParts, "_")
|
finalName := strings.Join(filteredParts, "_")
|
||||||
switch finalName {
|
switch finalName {
|
||||||
|
case "projects_tasks":
|
||||||
|
return "tasks"
|
||||||
case "tasks_all":
|
case "tasks_all":
|
||||||
return "tasks"
|
return "tasks"
|
||||||
default:
|
default:
|
||||||
@ -129,7 +131,13 @@ func GetAvailableAPIRoutesForToken(c echo.Context) error {
|
|||||||
|
|
||||||
// CanDoAPIRoute checks if a token is allowed to use the current api route
|
// CanDoAPIRoute checks if a token is allowed to use the current api route
|
||||||
func CanDoAPIRoute(c echo.Context, token *APIToken) (can bool) {
|
func CanDoAPIRoute(c echo.Context, token *APIToken) (can bool) {
|
||||||
path := c.Request().URL.Path
|
path := c.Path()
|
||||||
|
if path == "" {
|
||||||
|
// c.Path() is empty during testing, but returns the path which the route used during registration
|
||||||
|
// which is what we need.
|
||||||
|
path = c.Request().URL.Path
|
||||||
|
}
|
||||||
|
|
||||||
routeGroupName := getRouteGroupName(path)
|
routeGroupName := getRouteGroupName(path)
|
||||||
|
|
||||||
group, hasGroup := token.Permissions[routeGroupName]
|
group, hasGroup := token.Permissions[routeGroupName]
|
||||||
|
@ -717,7 +717,7 @@ func getNextTaskIndex(s *xorm.Session, projectID int64) (nextIndex int64, err er
|
|||||||
// @Failure 400 {object} web.HTTPError "Invalid task object provided."
|
// @Failure 400 {object} web.HTTPError "Invalid task object provided."
|
||||||
// @Failure 403 {object} web.HTTPError "The user does not have access to the project"
|
// @Failure 403 {object} web.HTTPError "The user does not have access to the project"
|
||||||
// @Failure 500 {object} models.Message "Internal error"
|
// @Failure 500 {object} models.Message "Internal error"
|
||||||
// @Router /projects/{id} [put]
|
// @Router /projects/{id}/tasks [put]
|
||||||
func (t *Task) Create(s *xorm.Session, a web.Auth) (err error) {
|
func (t *Task) Create(s *xorm.Session, a web.Auth) (err error) {
|
||||||
return createTask(s, t, a, true)
|
return createTask(s, t, a, true)
|
||||||
}
|
}
|
||||||
|
@ -379,7 +379,7 @@ func registerAPIRoutes(a *echo.Group) {
|
|||||||
return &models.Task{}
|
return &models.Task{}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
a.PUT("/projects/:project", taskHandler.CreateWeb)
|
a.PUT("/projects/:project/tasks", taskHandler.CreateWeb)
|
||||||
a.GET("/tasks/:projecttask", taskHandler.ReadOneWeb)
|
a.GET("/tasks/:projecttask", taskHandler.ReadOneWeb)
|
||||||
a.GET("/tasks/all", taskCollectionHandler.ReadAllWeb)
|
a.GET("/tasks/all", taskCollectionHandler.ReadAllWeb)
|
||||||
a.DELETE("/tasks/:projecttask", taskHandler.DeleteWeb)
|
a.DELETE("/tasks/:projecttask", taskHandler.DeleteWeb)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user