package prepare import ( "log" "strings" "git.ymnuktech.ru/ymnuk/yt-gen-app/structs" uuid "github.com/satori/go.uuid" ) // Подготовка ролей func prepareRoles(project *structs.Project) *structs.Project { hasAppAdmin := false hasSecAdmin := false if len(project.Roles) > 0 { for i := range project.Roles { project.Roles[i].Name = strings.Trim(project.Roles[i].Name, " ") if project.Roles[i].Name == "" { log.Fatal("Should be set role name") } project.Roles[i].Name = strings.ReplaceAll(project.Roles[i].Name, " ", "_") if project.Roles[i].ID == uuid.Nil { project.Roles[i].ID = uuid.NewV4() } if project.Roles[i].Display == "" { project.Roles[i].Display = project.Roles[i].Name } if project.Roles[i].Name == "APP_ADMIN" { hasAppAdmin = true } if project.Roles[i].Name == "SEC_ADMIN" { hasSecAdmin = true } } } if !hasAppAdmin { project.Roles = append(project.Roles, structs.Role{ ID: uuid.NewV4(), Name: "APP_ADMIN", Display: "Администратор приложения", }) } if !hasSecAdmin { project.Roles = append(project.Roles, structs.Role{ ID: uuid.NewV4(), Name: "SEC_ADMIN", Display: "Администратор безопасности", }) } return project }