add group implementation
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -30,5 +30,50 @@ func GetGroups(c *gin.Context) {
|
||||
}
|
||||
|
||||
func AddGroup(c *gin.Context) {
|
||||
var input AddGroupInput
|
||||
|
||||
if err := c.ShouldBindJSON(&input); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
if len(input.GroupName) == 0 {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "no group name specified"})
|
||||
return
|
||||
}
|
||||
|
||||
if input.LdapGroup && len(input.LdapDn) == 0 {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "ldapGroup is true but no ldapDn specified"})
|
||||
return
|
||||
}
|
||||
|
||||
g := models.Group{}
|
||||
g.GroupName = input.GroupName
|
||||
g.LdapGroup = input.LdapGroup
|
||||
g.LdapDn = input.LdapDn
|
||||
g.Admin = input.Admin
|
||||
|
||||
// Check if role already exists
|
||||
testGroup, _ := models.GroupGetByName(g.GroupName)
|
||||
log.Printf("AddGroup checking if group '%s' already exists\n", g.GroupName)
|
||||
|
||||
if (models.Group{} == testGroup) {
|
||||
log.Printf("AddGroup confirmed no existing group name\n")
|
||||
} else {
|
||||
errorString := fmt.Sprintf("attempt to register conflicting groupname '%s'", g.GroupName)
|
||||
log.Printf("Register error : '%s'\n", errorString)
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": errorString})
|
||||
return
|
||||
}
|
||||
|
||||
_, err := g.GroupAdd()
|
||||
|
||||
if err != nil {
|
||||
errString := fmt.Sprintf("error creating group : '%s'", err)
|
||||
log.Printf("AddGroup %s\n", errString)
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": errString})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"message": "group creation success"})
|
||||
}
|
||||
|
6
main.go
6
main.go
@@ -252,10 +252,10 @@ func main() {
|
||||
|
||||
// Group functions for admin
|
||||
adminOnly.GET("/groups", controllers.GetGroups)
|
||||
adminOnly.GET("/group/add", controllers.AddGroup)
|
||||
adminOnly.POST("/group/add", controllers.AddGroup)
|
||||
// TODO
|
||||
//adminOnly.GET("/group/update", controllers.UpdateGroup)
|
||||
//adminOnly.GET("/group/delete", controllers.DeleteGroup)
|
||||
//adminOnly.POST("/group/update", controllers.UpdateGroup)
|
||||
//adminOnly.POST("/group/delete", controllers.DeleteGroup)
|
||||
|
||||
// Other functions for admin
|
||||
adminOnly.POST("/unlock", controllers.Unlock)
|
||||
|
Reference in New Issue
Block a user