package adlin import ( "fmt" "strings" ) var ( AssociatedDomainSuffixes = []string{"adlin2023.p0m.fr."} DelegatedDomainSuffixes = []string{"srs.p0m.fr."} ) func (student *Student) MyDelegatedDomainSuffix() string { return DelegatedDomainSuffixes[int(student.Id)%len(DelegatedDomainSuffixes)] } func (student *Student) MyDelegatedDomain() string { if student.DelegatedDomain != nil { return *student.DelegatedDomain } else { return fmt.Sprintf("%s.%s", strings.Trim(strings.Replace(student.Login, "_", "-", -1), "-_"), student.MyDelegatedDomainSuffix()) } } func (student *Student) MyAssociatedDomainSuffix() string { return AssociatedDomainSuffixes[int(student.Id)%len(AssociatedDomainSuffixes)] } func (student *Student) DefaultAssociatedDomain() string { return fmt.Sprintf("%s.%s", strings.Trim(strings.Replace(student.Login, "_", "-", -1), "-_"), student.MyAssociatedDomainSuffix()) } func (student *Student) MyAssociatedDomain() string { if student.AssociatedDomain != nil { return *student.AssociatedDomain } else { return student.DefaultAssociatedDomain() } } func (student *Student) GetAssociatedDomains() (ds []string) { defdn := student.DefaultAssociatedDomain() ds = append(ds, defdn) studentDomain := student.MyAssociatedDomain() if defdn != studentDomain { ds = append(ds, studentDomain) } return }