add permission definition
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-01-11 14:32:50 +11:00
parent 1ffa19d225
commit afec665759
6 changed files with 99 additions and 7 deletions

View File

@@ -64,10 +64,10 @@ func AddPermissionHandler(c *gin.Context) {
GroupId: input.GroupId,
}
//remove leading/trailing spaces in groupname
//remove leading/trailing spaces in permission description
p.Description = html.EscapeString(strings.TrimSpace(p.Description))
// Check if role already exists
// Check if permission definition already exists
testPermission, _ := models.PermissionGetByDesc(p.Description)
log.Printf("AddPermissionHandler checking if permissions with description '%s' already exists\n", p.Description)
@@ -91,3 +91,53 @@ func AddPermissionHandler(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "permission creation success", "data": p})
}
func DeletePermissionHandler(c *gin.Context) {
var input PermissionInput
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// Input validation
if input.PermissionId == 0 && len(input.Description) == 0 {
errString := "no permission description or id specified"
log.Printf("DeletePermissionHandler %s\n", errString)
c.JSON(http.StatusBadRequest, gin.H{"error": errString})
return
}
p := models.Permission{
PermissionId: input.PermissionId,
Description: input.Description,
ReadOnly: input.ReadOnly,
SafeId: input.SafeId,
UserId: input.UserId,
GroupId: input.GroupId,
}
//remove leading/trailing spaces in permission description
p.Description = html.EscapeString(strings.TrimSpace(p.Description))
// Check if permission definition already exists
testPermission, _ := models.PermissionGetByDesc(p.Description)
log.Printf("DeletePermissionHandler confirming permission with description '%s' exists\n", p.Description)
if (models.Permission{} == testPermission) {
errString := fmt.Sprintf("attempt to delete non-existing permission with description '%s'", p.Description)
log.Printf("DeletePermissionHandler %s\n", errString)
c.JSON(http.StatusBadRequest, gin.H{"error": errString})
return
} else {
err := p.PermissionDelete()
if err != nil {
errString := fmt.Sprintf("error deleting permission : '%s'", err)
log.Printf("DeletePermissionHandler %s\n", errString)
c.JSON(http.StatusBadRequest, gin.H{"error": errString})
return
}
c.JSON(http.StatusOK, gin.H{"message": "permission deletion success"})
}
}