Selaa lähdekoodia

Add Coordinators Departments groups

Andrea Fazzi 5 vuotta sitten
vanhempi
commit
ce4fe5f584
3 muutettua tiedostoa jossa 57 lisäystä ja 12 poistoa
  1. 34 0
      compose/karmen/ldap/bootstrap/ldif/foo.org.ldif
  2. 22 11
      cron/sync/sync.go
  3. 1 1
      orm/department.go

+ 34 - 0
compose/karmen/ldap/bootstrap/ldif/foo.org.ldif

@@ -21,6 +21,13 @@ member: cn=John DOE,ou=People,dc=foo,dc=org
 objectclass: groupOfNames
 objectclass: top
 
+dn: cn=Coordinatori Dipartimenti,ou=Mailing Lists,ou=Groups,dc=foo,dc=org
+changetype: add
+cn: Coordinatori Dipartimenti
+member: cn=John DOE,ou=People,dc=foo,dc=org
+objectclass: groupOfNames
+objectclass: top
+
 dn: cn=LINGUE STRANIERE,ou=Mailing Lists,ou=Groups,dc=foo,dc=org
 changetype: add
 cn: LINGUE STRANIERE
@@ -44,6 +51,33 @@ gidNumber: 6000
 objectclass: posixGroup
 objectclass: top
 
+dn: ou=Segreterie,ou=Groups,dc=foo,dc=org
+changetype: add
+ou: Segreterie
+objectclass: organizationalUnit
+objectclass: top
+
+dn: cn=Segreteria didattica,ou=Segreterie,ou=Groups,dc=foo,dc=org
+changetype: add
+cn: Segreteria didattica
+gidNumber: 6007
+objectclass: posixGroup
+objectclass: top
+
+dn: cn=Segreteria del personale,ou=Segreterie,ou=Groups,dc=foo,dc=org
+changetype: add
+cn: Segreteria del personale
+gidNumber: 6008
+objectclass: posixGroup
+objectclass: top
+
+dn: cn=Coordinatori Dipartimenti,ou=Groups,dc=foo,dc=org
+changetype: add
+cn: Coordinatori Dipartimenti
+gidNumber: 6005
+objectclass: posixGroup
+objectclass: top
+
 dn: cn=Administratives,ou=Groups,dc=foo,dc=org
 changetype: add
 cn: Administratives

+ 22 - 11
cron/sync/sync.go

@@ -395,19 +395,12 @@ func (syncJob *SyncJob) Run() {
 		log.Println(result)
 	}
 
-	if result, err := syncJob.SyncGroup(ldapClient, users, syncJob.conf.Sync.DepartmentsCoordinatorsGroup); err != nil {
-		panic(err)
-	} else {
-		log.Println(result)
-	}
-
-	if result, err := syncJob.SyncGroup(ldapClient, users, syncJob.conf.Sync.DepartmentsCoordinatorsML); err != nil {
-		panic(err)
-	} else {
-		log.Println(result)
-	}
+	departmentsCoordinators := make([]orm.User, 0)
 
 	for _, department := range departments {
+
+		departmentsCoordinators = append(departmentsCoordinators, &department.Coordinator)
+
 		users := make([]orm.User, 0)
 		for _, teacher := range department.Teachers {
 			users = append(users, teacher)
@@ -426,6 +419,24 @@ func (syncJob *SyncJob) Run() {
 		}
 	}
 
+	// Departments Coordinator
+
+	for _, c := range departmentsCoordinators {
+		log.Println("Coordinatore dipartimento", c.CompleteName())
+	}
+
+	if result, err := syncJob.SyncGroup(ldapClient, departmentsCoordinators, syncJob.conf.Sync.DepartmentsCoordinatorsGroup); err != nil {
+		panic(err)
+	} else {
+		log.Println(result)
+	}
+
+	if result, err := syncJob.SyncGroup(ldapClient, departmentsCoordinators, syncJob.conf.Sync.DepartmentsCoordinatorsML); err != nil {
+		panic(err)
+	} else {
+		log.Println(result)
+	}
+
 	administratives, err := karmenClient.GetAdministratives()
 	if err != nil {
 		log.Println(err)

+ 1 - 1
orm/department.go

@@ -89,7 +89,7 @@ func GetDepartments(args map[string]string) (interface{}, error) {
 
 func GetDepartmentsAll(args map[string]string) (interface{}, error) {
 	var departments []*Department
-	if err := DB().Order("name").Find(&departments).Error; err != nil {
+	if err := DB().Preload("Coordinator").Order("name").Find(&departments).Error; err != nil {
 		return nil, err
 	}
 	for _, department := range departments {