IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Contingut

Requeriments

Aquesta aplicació és un plugin de Gosa i requereix les següents aplicacions:

  • Gosa: El plugin es basa en la versió 2.7
  • FPDF: és necessari disposar de la versió 1.6 o superior disponible als repositoris d'Ubuntu des de la versió 11.04 (natty). en versions anterior cal aplicar un pegat: pegat FPDF
  • php5-cli: El propi instal·lador del paquet Debian (script postinst) executa scripts de PHP per línia d'ordres. Cal doncs tenir instal·lat php5-cli , php-fpdf, php5-imagick, apg, gosa
  • apg: generador de paraules de pas

El fitxer control de paquet indica les següents dependències:

php5-cli, php-fpdf, apg, gosa

NOTA: Abans l'aplicació depenia de Imagick, ara crec que no però falta acabar-ho de comprovar

Schemas Ldap

Es necessiten dos esquemes Ldap per tal de fer funcionar correctament el plugin Highschoolusers:

El schema iris s'ha obtingut de:

http://www.rediris.es/ldap/schema/iris.schema

I té les següents dependències:

# Depends upon
#
# attrs: description, mail (core.schema)
# RFC-2256 A Summary of the X.500(96) User Schema for use with LDAPv3
#
# attrs: commonName  (cosine.schema)
# RFC-1274 The COSINE and Internet X.500 Schema
#
# attrs: ipHostNumber (nis.schema)
# RFC-2307 An Approach for Using LDAP as a Network Information Service

És a dir que cal tenir instal·lats els schemas:

  • core.schema: Aquest és l'únic que s'instal·la per defecte amb el servidor slapd.
  • cosine.schema: The COSINE and Internet X.500 Schema
  • nis.schema: An Approach for Using LDAP as a Network Information Service

Vegeu també Gosa schemas.

TODO

Cal?:

$ sudo make applygosapatch

Sembla que dona l'error:

Highschoolusers#End_save_object.28.29_at_class_highschooluser.inc_Fatal_error:_Call_to_undefined_method_stdClass::set_acl_base.28.29

si no és fa. La solució temporal:

$ sudo patch -p0 --directory=/ -i /usr/share/gosa-highschoolusers/patchs/gosa.patch

Evitar l'error:

Fatal error: Class name must be a valid object or a string in /usr/share/gosa/include/functions.inc on line 2889 

Posant:

passwordDefaultHash="sha"

O un de correcte

Consulteu:

Highschoolusers#Fatal_error:_Class_name_must_be_a_valid_object_or_a_string_in_.2Fusr.2Fshare.2Fgosa.2Finclude.2Ffunctions.inc_on_line_2889

IMPORTANT: El promea està en install-gosa que no posa cap mètode a passwordDefaultHash

passwordDefaultHash=""

Instal·lació

Des dels repositoris

Per instal·lar aquest paquet cal afegir el següent repositori al fitxer /etc/apt/sources.list:

$ sudo joe /etc/apt/sources.list
...
deb http://www.iesebre.com/ubuntu/custompackages ./

Per evitar els avisos de que el repositori no està autenticat executeu:

$ wget -q http://www.iesebre.com/ubuntu/custompackages/iesebre.asc -O- | sudo apt-key add -

Requeriments

El procés més net i més segur per a procedir a la instal·lació de Highschoolusers és prèviament instal·lar install-gosa:

$ sudo apt-get update && sudo apt-get install install-gosa
$ sudo install-gosa -v 

Un cop instal·lats els requeriments executeu:

$ sudo apt-get update && sudo apt-get install gosa-highschoolusers

Què fa l'instal·lador?

Mitjançant un script de post instal·lació (postinst) el paquet gosa-highschoolusers no només instal·la el plugin per a Gosa sinó que a més el configura. La configuració consisteix en:

Fitxers instal·lats

Els fitxers instal·lats són (--acacha (discussió) 10:54, 23 jul 2012 (CEST)):

$ dpkg -L gosa-highschoolusers
/.
/usr
/usr/share
/usr/share/gosa-highschoolusers
/usr/share/gosa-highschoolusers/patchs
/usr/share/gosa-highschoolusers/patchs/fpdf.patch
/usr/share/gosa-highschoolusers/patchs/gosa.patch
/usr/share/gosa-highschoolusers/scripts
/usr/share/gosa-highschoolusers/scripts/convert_to_ldif.sh
/usr/share/php
/usr/share/php/gosa-highschoolusers
/usr/share/php/gosa-highschoolusers/modifyGosaparameters.php
/usr/share/php/gosa-highschoolusers/add_schemas.php
/usr/share/php/gosa-highschoolusers/add_plugin.php
/usr/share/doc
/usr/share/doc/gosa-highschoolusers
/usr/share/doc/gosa-highschoolusers/changelog.Debian.gz
/usr/share/doc/gosa-highschoolusers/copyright
/usr/share/doc/gosa-highschoolusers/TODO
/usr/share/doc/gosa-highschoolusers/ldap_schemas
/usr/share/doc/gosa-highschoolusers/ldap_schemas/nis.ldif.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/iris.ldif.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/cosine.schema.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/nis.schema.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/iris.schema.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/highschooluser.ldif
/usr/share/doc/gosa-highschoolusers/ldap_schemas/highschooluser.schema.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/cosine.ldif.gz
/usr/share/doc/gosa-highschoolusers/README
/usr/share/gosa
/usr/share/gosa/html
/usr/share/gosa/html/pdfreports
/usr/share/gosa/html/pdfreports/enrollment.php
/usr/share/gosa/html/pdfreports/images
/usr/share/gosa/html/pdfreports/images/logo1.jpeg
/usr/share/gosa/html/pdfreports/images/signature.jpeg
/usr/share/gosa/html/include
/usr/share/gosa/html/include/highschoolusers_validations.js
/usr/share/gosa/html/plugins
/usr/share/gosa/html/plugins/highschoolusers
/usr/share/gosa/html/plugins/highschoolusers/images
/usr/share/gosa/html/plugins/highschoolusers/images/pdficon.jpeg
/usr/share/gosa/plugins
/usr/share/gosa/plugins/personal
/usr/share/gosa/plugins/personal/highschoolgeneric
/usr/share/gosa/plugins/personal/highschoolgeneric/class_highschooluser.inc
/usr/share/gosa/plugins/personal/highschoolgeneric/highschoolusergeneric.tpl
/usr/share/gosa/plugins/admin
/usr/share/gosa/plugins/admin/HighSchoolUsers
/usr/share/gosa/plugins/admin/HighSchoolUsers/templatize.tpl
/usr/share/gosa/plugins/admin/HighSchoolUsers/functions.php
/usr/share/gosa/plugins/admin/HighSchoolUsers/highschooluser-list.tpl
/usr/share/gosa/plugins/admin/HighSchoolUsers/highschooluser-filter.xml
/usr/share/gosa/plugins/admin/HighSchoolUsers/main.inc
/usr/share/gosa/plugins/admin/HighSchoolUsers/user_template.tpl
/usr/share/gosa/plugins/admin/HighSchoolUsers/class_HighSchoolUsertabs.inc
/usr/share/gosa/plugins/admin/HighSchoolUsers/password.tpl
/usr/share/gosa/plugins/admin/HighSchoolUsers/highschooluser-list.xml
/usr/share/gosa/plugins/admin/HighSchoolUsers/class_HighSchoolUserManagement.inc
/usr/sbin
/usr/sbin/install-highschoolusers-extraldaptree
/usr/sbin/install-highschoolusers-baseldaptree
/etc
/etc/gosa-highschoolusers
/etc/gosa-highschoolusers/gosa-highschoolusers.conf.sample

Instal·lació manual des de subversion i amb Makefile

NOTA: Aquests passos són obsolets. Vegeu l'apartat anterior per tal de consultar els passos adients epr a fer la instal·lació

Passos seguits a l'institut d'Amposta:

Primer instal·lar Gosa 2.7.1 (--acacha 17:56, 27 juny 2011 (UTC)) i configurar el fitxer gosa.conf amb l'assistent.

Ara cal descarregar el codi font de subversion:

$ cd
$ mkdir HIGHSCHOOLUSERS && cd HIGHSCHOOLUSERS
$ sudo apt-get install subversion
$ svn co http://www.iesebre.com/subversion/projectes/gosa-highschoolusers/

Entreu a la versió principal:

$ cd highschoolusers/trunk

Primer cal aplicar el pegat dels fitxers de gosa:

$  sudo make applygosapatch 

Instal·lar les dependències (FPDF):

$ sudo make install install_dependencies 

Aplicar el pegat a FPDF:

$ sudo make applyfpdfpatch

Instal·lar el esquema:

$ sudo make install_schema

Instal·lar l'aplicació i actualitzar gosa:

$ sudo make install
$ sudo make update

Instal·lar el plugin al fitxer de configuració gosa.conf:

$ sudo make add_plugin

Ara cal crear les plantilles i seguir els passos de l'apartat configuració

Ordres

/usr/sbin/install-highschoolusers-baseldaptree

Instal·la l'arbre Ldap base per a fer funcionar correctament gosa-highschoolusers:

Bàsicament s'instal·len els objectes:

dn: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} 
objectClass: organizationalUnit
objectClass: top
ou: ${HIGHSCHOOLUSERS_STRING}

dn: academicPeriod=${ACADEMIC_PERIOD},${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN}
objectClass: highSchoolUsersConfig
objectClass: top
academicPeriod: ${ACADEMIC_PERIOD}
nextInternalId: ${INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID}
studentTemplateDN: ${HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN}
teacherTemplateDN: ${HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN}

Per exemple:

dn: ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com
objectClass: organizationalUnit
objectClass: top
ou: highschoolusers

dn: academicPeriod=2012-13,ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com
objectClass: highSchoolUsersConfig
objectClass: top
academicPeriod: 2012-13
nextInternalId: 1
studentTemplateDN: cn=newStudent,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com
teacherTemplateDN: cn=newTeacher,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com

NOTA: També es crea l'objecte:

ou=gosa,ou=configs,ou=systems

NOTA: ... necessari com a base de la resta d'objectes. Aquest objecte es crea al entrar per primer cop a Gosa i per això segons quan s'executi l'script pot ser necessari crear-lo

On les dades s'agafen dels fitxers:

/etc/install-gosa/install-gosa.conf
/etc/openfpnet/openfpnet.conf

En aquest ordre de preferència.

El codi és el següent:

#!/bin/bash

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

#PACKAGES DEPENDENCIES
PACKAGES_DEPENDENCIES="ldap-utils"
HIGHSCHOOLUSERS_PACKAGE="gosa-highschoolusers"
HIGHSCHOOLUSERS_STRING="highschoolusers"

#CONFIG FILES
HIGHSCHOOLUSERS_CONF_FILE="/etc/${HIGHSCHOOLUSERS_PACKAGE}/${HIGHSCHOOLUSERS_PACKAGE}.conf"
INSTALL_GOSA_CONF_FILE="/etc/install-gosa/install-gosa.conf"
OPENFPNET_CONF_FILE="/etc/openfpnet/openfpnet.conf"

#INSTITUTION
INSTITUTION_DOMAIN="nodomain.com"
#INSTITUTION_BASE_DN="dc=nodomain,dc=com"

#HIGHSCHOOLUSERS
ACADEMIC_PERIOD="2011-2012"
INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID="1"
GOSA_CONF_DN="ou=gosa,ou=configs,ou=systems"
HIGHSCHOOLUSERS_CONF_DN="ou=${HIGHSCHOOLUSERS_STRING},${GOSA_CONF_DN}"
HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN="cn=newStudent,ou=people,ou=students"
HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN="cn=newTeacher,ou=people,ou=teachers"

while getopts ":v" opt; do
  case $opt in
    v)
      echo "-v was triggered. MODE VERBOSE activated!"
      VERBOSE=true;
      ;;  
    \?)
      echo "Invalid option: -$OPTARG" >&2
      exit 1
      ;;
    :)
      echo "Option -$OPTARG requires an argument." >&2
      exit 1
      ;;
  esac
done

if [ -f ${OPENFPNET_CONF_FILE} ];then
	. ${OPENFPNET_CONF_FILE}
fi

[ ! -z "$VERBOSE" ] && echo -n "Checking if file ${INSTALL_GOSA_CONF_FILE} exists..."
if [ -f ${INSTALL_GOSA_CONF_FILE} ];then
	[ ! -z "$VERBOSE" ] && echo " YES!"
	[ ! -z "$VERBOSE" ] && echo " Overwriting default values..."
	. ${INSTALL_GOSA_CONF_FILE}
fi

[ ! -z "$VERBOSE" ] && echo -n "Checking if file ${HIGHSCHOOLUSERS_CONF_FILE} exists..."
if [ -f ${HIGHSCHOOLUSERS_CONF_FILE} ];then
	[ ! -z "$VERBOSE" ] && echo " YES!"
	[ ! -z "$VERBOSE" ] && echo " Overwriting default values..."
	. ${HIGHSCHOOLUSERS_CONF_FILE}
fi

[ ! -z "$VERBOSE" ] && echo "Calculating INSTITUTION_BASE_DN for DOMAIN: $INSTITUTION_DOMAIN..."
DOMAIN_SPACES=$(echo $INSTITUTION_DOMAIN | sed 's/\./ /g')
INSTITUTION_BASE_DN=""
first=true
#debug
#echo "DOMAIN_SPACES: $DOMAIN_SPACES"
for DOMAIN_TOKEN in $DOMAIN_SPACES;
do
	if [ "$first" = "true" ];then
			INSTITUTION_BASE_DN="dc=${DOMAIN_TOKEN}" ;
			first=false
		else
			INSTITUTION_BASE_DN="${INSTITUTION_BASE_DN},dc=${DOMAIN_TOKEN}" ;
	fi
done
[ ! -z "$VERBOSE" ] && echo "INSTITUTION_BASE_DN: ${INSTITUTION_BASE_DN}..."

[ ! -z "$VERBOSE" ] && echo "Checking dependencies..."
for package in $PACKAGES_DEPENDENCIES; 
 do 
    [ ! -z "$VERBOSE" ] && echo -n "Checking if $package is installed... "
    if ! dpkg-query -l $package | grep -r "^ii" 2>&1 > /dev/null ; then
      [ ! -z "$VERBOSE" ] && echo " NOT INSTALLED. Installing..."
	  /usr/bin/apt-get install --force-yes --yes $package	  
    else
	  [ ! -z "$VERBOSE" ] && echo " INSTALLED."
    fi
 done

if [ "$ROOTDN" = "" ]; then
	ROOTDN="cn=admin,${INSTITUTION_BASE_DN}"
fi

#CHECK LDAP SUPERIOR KNOWLEDGE
#GOSA_CONF_DN="ou=gosa,ou=configs,ou=systems"
#IMPORTANT: Gosa creates ou=gosa,ou=configs,ou=systems when admin users enters at Gosa by first time!!!!!!

GOSA_CONF_ABSOLUTE_DN=${GOSA_CONF_DN},${INSTITUTION_BASE_DN}
/usr/bin/ldapsearch -b "${GOSA_CONF_ABSOLUTE_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1
RETVAL=$?

if [ $RETVAL -ne 0 ]; then
	echo "No ${GOSA_CONF_ABSOLUTE_DN} ldap object found! Creating it..."
	#IMPORTANT: Gosa creates ou=gosa,ou=configs,ou=systems when admin users enters at Gosa by first time!!!!!!
	# Then we create it if not exists
	
	GOSA_OU_SYSTEMS_DN="ou=systems",${INSTITUTION_BASE_DN}
	/usr/bin/ldapsearch -b "${GOSA_OU_SYSTEMS_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1
	RETVAL=$?
	if [ $RETVAL -ne 0 ]; then
		/usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT
dn: ${GOSA_OU_SYSTEMS_DN}		
objectClass: organizationalUnit
ou: systems
EOT
	fi

	GOSA_OU_CONFIGS_DN="ou=configs",${GOSA_OU_SYSTEMS_DN}
	/usr/bin/ldapsearch -b "${GOSA_OU_CONFIGS_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1
	RETVAL=$?
	if [ $RETVAL -ne 0 ]; then
		/usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT
dn: ${GOSA_OU_CONFIGS_DN}		
objectClass: organizationalUnit
ou: configs
EOT
	fi
	
	/usr/bin/ldapsearch -b "${GOSA_CONF_ABSOLUTE_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1
	RETVAL=$?
	if [ $RETVAL -ne 0 ]; then
		/usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT
dn: ${GOSA_CONF_ABSOLUTE_DN}		
objectClass: organizationalUnit
ou: gosa
EOT
	fi
	
fi

#INSTALL BASE LDAP TREE
#LDAP CONFIGURATION
/usr/bin/ldapsearch -b "${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
	echo "Adding Ldap object: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN}"
	#DEBUG
	echo "/usr/bin/ldapadd -x -D \"${ROOTDN}\" -w \"${ROOTDN_PASSWORD}\""
	[ ! -z "$VERBOSE" ] && echo -n "Configuring ${HIGHSCHOOLUSERS_PACKAGE} in Ldap tree ... "
	/usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT
dn: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} 
objectClass: organizationalUnit
objectClass: top
ou: ${HIGHSCHOOLUSERS_STRING}

dn: academicPeriod=${ACADEMIC_PERIOD},${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN}
objectClass: highSchoolUsersConfig
objectClass: top
academicPeriod: ${ACADEMIC_PERIOD}
nextInternalId: ${INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID}
studentTemplateDN: ${HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN}
teacherTemplateDN: ${HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN}
EOT

else
	echo "Ldap object: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} already exists. Skipping configuration..."
fi

/usr/sbin/install-highschoolusers-extraldaptree

Com a extra que és és opcional instal·lar-lo o no hi es pot escollir l'opció durant la configuració del paquet:

TODO: Finestra del configurador.

Bàsicament s'instal·len carpetes bàsiques de l'arbre com ou=All (tots els usuaris i altres recursos actius), ou=Baixes (recursos no actius), carpetes per allotjar els alumnes, els profes, el personal, les màquines, etc...

L'script s'executa durant la instal·lació del paquet si així ho escolliu al configurador. Sinó el podeu executar en qualsevol moment amb:

$ sudo bash /usr/sbin/install-highschoolusers-extraldaptree

IMPORTANT: Estigueu atents a la sortida del programa. Si hi han error s'indicaran però l'aplicació no s'aturarà. Això permet que per exemple es pugui executar l'script tants cops com faci falta i en el cas que ja existeixin els objectes Ldap simplement avisarà que ja existeixen

Les dades s'obtenen del següents fitxers (en ordre de preferència):

/etc/gosa-highschoolusers/gosa-highschoolusers.conf
/etc/install-gosa/install-gosa.conf
/etc/openfpnet/openfpnet.conf

Si escolliu instal·lar l'arbre extra s'instal·larà el següent (un exemple per al domini ):

dn: ou=All,dc=iesebre,dc=com
objectClass: organizationalUnit
objectClass: gosaDepartment
ou: All
description: All. Tots els usuaris actius

dn: ou=Alumnes,ou=All,dc=iesebre,dc=com
objectClass: gosaAcl
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Alumnes
gosaAclEntry: 0:role:Y249YWx1bW5lcyxvdT1hY2xyb2xlcyxvdT1Sb2xlcyxkYz1pZXNlYnJlLGRjPWNvbQo=:Kg==:
ou: Alumnes

dn: ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=Profes,ou=All,dc=iesebre,dc=com
objectClass: gosaAcl
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Profes
gosaAclEntry: 0:role:Y249UHJvZmVzLG91PWFjbHJvbGVzLG91PVJvbGVzLGRjPWllc2VicmUsZGM9Y29tCg==:Kg==:
ou: Profes

dn: ou=people,ou=Profes,ou=All,dc=iesebre,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=Familiars,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Familiars
ou: Familiars

dn: ou=people,ou=Familiars,ou=All,dc=iesebre,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=Grups,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Grups
ou: Grups

dn: ou=GrupsDomini,ou=Grups,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Grups de Domini: Els per defecte generats per smbldap-tools
ou: GrupsDomini

dn: ou=Guifi,ou=All,dc=iesebre,dc=com
objectClass: gosaAcl
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Usuaris proxy Guifi.net
gosaAclEntry: 0:role::Kg==:
ou: Guifi

dn: ou=Personal,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Personal de l'institut
ou: Personal

dn: ou=Conserges,ou=Personal,ou=All,dc=iesebre,dc=com
objectClass: gosaAcl
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
gosaAclEntry: 0:role:Y249Q29uc2VyZ2VzLG91PWFjbHJvbGVzLG91PVJvbGVzLGRjPWllc2VicmUsZGM9Y29tCg==:Kg==:
description: Conserges de l'Institut
ou: Conserges

dn: ou=people,ou=Conserges,ou=Personal,ou=All,dc=iesebre,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=maninfo,ou=Personal,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Manteniment d'informàtica
ou: maninfo

dn: ou=Secretaria,ou=Personal,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Personal de secretaria
ou: Secretaria

dn: ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Ordinadors i altres dispositius
ou: Sistemes

dn: ou=Altres,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Altres
ou: Altres

dn: ou=Alumnat,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Dispositisu alumnat
ou: Alumnat

dn: ou=Gestio,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Dispositisu gestió
ou: Gestio

dn: ou=Impressores,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Impressores
ou: Impressores

dn: ou=Professorat,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Professorat
ou: Professorat

dn: ou=Servidors,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Servidors
ou: Servidors

dn: ou=Baixes,dc=iesebre,dc=com
objectClass: organizationalUnit
objectClass: gosaDepartment
ou: Baixes
description: Usuaris no actius

dn: ou=Proves,dc=iesebre,dc=com
objectClass: gosaDepartment
objectClass: organizationalUnit
objectClass: top
description: Carpeta per a proves
ou: Proves

dn: ou=Roles,dc=iesebre,dc=com
objectClass: organizationalUnit
objectClass: gosaDepartment
description: Roles
ou: Roles

dn: ou=aclroles,ou=Roles,dc=iesebre,dc=com
objectClass: organizationalUnit
ou: aclroles

dn: cn=Alumne,ou=aclroles,ou=Roles,dc=iesebre,dc=com
objectClass: gosaRole
objectClass: top
cn: Alumne
gosaAclTemplate: 0:sub::users/password;srw,users/user;sr
description: Rol Alumne

dn: cn=Profe,ou=aclroles,ou=Roles,dc=iesebre,dc=com
objectClass: gosaRole
objectClass: top
cn: Profe
gosaAclTemplate: 0:psub::addressbook/addressbookgosa;cmdrw,addressbook/addressbook;cmdrw,users/password;srw,users/environment;sr,users/mailAccount;s,users/user;sr#givenName;w#personalTitle;w#dateOfBirth;w#gender;w#base;w#userPicture;w#o;w#ou;w#departmentNumber;w#manager;w#employeeType;w#roomNumber;w#telephoneNumber;w#pager;w#mobile;w#facsimileTelephoneNumber;w#st;w#l;w#postalAddress;w#homePostalAddress;w#homePhone;w#labeledURI;w#userPassword;w,users/sambaAccount;sr,users/posixAccount;srdescription: Professor
description: Rol Profe


Plantilla d'usuari alumne

dn: cn=nouAlumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com
objectClass: extensibleObject
objectClass: gosaAccount
objectClass: gosaUserTemplate
objectClass: highSchoolUser
objectClass: inetOrgPerson
objectClass: irisPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
cn: nouAlumne
gidNumber: 2000
highSchoolUserId: 1
homeDirectory: /home/%uid
sn: nouAlumne
uid: nouAlumne
uidNumber: 2000
employeeType: Alumne
facsimileTelephoneNumber: 999999999
gecos: NouAlumne NouAlumne
gender: M
givenName: NouAlumne
highSchoolPersonalEmail: %uid@iesebre.com
irisPersonalUniqueIDType: 0
l: Springfield
labeledURI: http://profes.iesebre.com/~%uid
loginShell: /bin/bash
o: Institut de l'Ebre
postalAddress: Rue del Percebe s/n
postalCode: 66666
preferredLanguage: es_ES
sambaAcctFlags: [UX          ]
sambaDomainName: NONAME
sambaLogoffTime: 2147483647
sambaLogonTime: 0
sambaMungedDial: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA
 gACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQAB
 oACAABAEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZ
 wBGAGwAYQBnAHMAMQAwMGUwMDAxMBYAAAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawASAAgAAQBD
 AHQAeABTAGgAYQBkAG8AdwAwMTAwMDAwMCIAAAABAEMAdAB4AEsAZQB5AGIAbwBhAHIAZABMAGE
 AeQBvAHUAdAAqAAIAAQBDAHQAeABNAGkAbgBFAG4AYwByAHkAcAB0AGkAbwBuAEwAZQB2AGUAbA
 AwMCAAAgABAEMAdAB4AFcAbwByAGsARABpAHIAZQBjAHQAbwByAHkAMDAgAAIAAQBDAHQAeABOA
 FcATABvAGcAbwBuAFMAZQByAHYAZQByADAwGAACAAEAQwB0AHgAVwBGAEgAbwBtAGUARABpAHIA
 MDAiAAIAAQBDAHQAeABXAEYASABvAG0AZQBEAGkAcgBEAHIAaQB2AGUAMDAgAAIAAQBDAHQAeAB
 XAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADAwIgACAAEAQwB0AHgASQBuAGkAdABpAGEAbABQAH
 IAbwBnAHIAYQBtADAwIgACAAEAQwB0AHgAQwBhAGwAbABiAGEAYwBrAE4AdQBtAGIAZQByADAwK
 AAIAAEAQwB0AHgATQBhAHgAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAI
 AAEAQwB0AHgATQBhAHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDA
 wHAAIAAEAQwB0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAw
sambaPrimaryGroupSID: TODO-4005
sambaPwdLastSet: 0
sambaSID: TODO-5004
shadowLastChange: 14802
st: NO STATE
telephoneNumber: 999999999
userPassword:: e21kNX1OMFQkM1Q0TjBX 

Plantilla d'usuari profe

Scripts PHP

/usr/share/php/gosa-highschoolusers/add_schemas.php

Aquest script instal·la un schema Ldap. L'esquema es copia a la carpeta:

/etc/ldap/slapd.d/cn=config/cn=schema

Però no de qualsevol forma, abans se li afegeix el prefix que li pertoqui segons el nombre d'esquemes prèviament existents al sistema.

L'esquema que s'instal·lat està en format Ldif: highschooluser.ldif. El prefix pot variar segons els que hi havia prèviament al sistema però un exemple de com queda la carpeta dels esquemes de Ldap podria ser:

$ ls /etc/ldap/slapd.d/cn\=config/cn\=schema
cn={0}core.ldif  cn={1}cosine.ldif  cn={2}nis.ldif  cn={3}iris.ldif  cn={4}highschooluser.ldif

/usr/share/php/gosa-highschoolusers/add plugin.php

Aquest script s'encarrega de modificar el fitxer /etc/gosa/gosa.conf per tal d'incloure el plugin gosa-highschollusers]]. S'afegeixen dos seccions:

Una secció per al plugin a l'apartat de Administration de Gosa:

<section name="Administration">
      ...
      <plugin acl="highschoolusers" class="HighSchoolUserManagement"/>
</section>

I un altre per a la configuració dels tabs:

 <highschoolusertabs>
   <tab class="highschooluser" name="Generic"/>
   <tab class="posixAccount" name="POSIX"/>
   <tab class="sambaAccount" name="Samba"/>
 </highschoolusertabs>

L'script accepta una opció (-p de position) per indicar la posició en la que s'instal·la el plugin. Per exemple per instal·lar el plugin com a primer:

$ sudo php /usr/share/php/gosa-highschoolusers/add_plugin.php -p 1
   

Aquest script és executat per l'instal·lador (script postinst del Debconf) i per aquesta raó no sol ser necessari executar-lo manualment.

Si el plugin ja està configurat al fitxer Gosa, aleshores no és modifica el fitxer:

$ sudo php /usr/share/php/gosa-highschoolusers/add_plugin.php

La línia plugin ja esta present al fitxer gosa.conf
La línia tabs ja esta present al fitxer conf

Configuració

Configuració amb Debconf

Al instal·lar el paquet se us mostraran les següents pantalles:

TODO: Captures de pantalla

La llista de preguntes (en l'ordre que es mostren) és la següent:

  • Welcome: Aquesta pregunta té una prioritat alta.
  • Paraula de pas: és opcional. Només es pregunta si no la pot obtenir del fitxer /etc/install-gosa/install-gosa.conf. És a dir l'aplicació es pot aprofitar del fet d'haver utilitzar el paquet install-gosa però cal tenir en compte que no és un paquet dependència, és a dir, també es pot instal·lar gosa-highschollusers sense install-gosa. Es pregunta dos cops i es verifica si es correcte.
  • Position: Posició del plugin gosa-highschoolusers dins la llista de plugins.
  • TODO

En qualsevol moment podeu reconfigurar el paquet amb:

$ sudo dpkg-reconfigure gosa-highschoolusers

/etc/gosa-highschoolusers/gosa-highschoolusers.conf

En aquest fitxers es guarden les dades de configuració del Plugin de Gosa gosa-highschoolusers:

$ sudo cat /etc/gosa-highschoolusers/gosa-highschoolusers.conf
#!/bin/bash    
# This file has been generated by debconf
# See: http://acacha.org/mediawiki/index.php/gosa-highschoolusers
# Docs: http://acacha.org/mediawiki/index.php/Highschoolusers#.2Fetc.2Fgosa-highschoolusers.2Fgosa-highschoolusers.conf
# Execute: $ sudo dpkg-reconfigure gosa-highschoolusers to change this file

#Defines in wich position the plugin is installed
#IF VOID THEN POSITION IS LAST
HSU_PLUGIN_POSITION=""
# ROOTDN ESTABLISHED AT /etc/install-gosa/install-gosa.conf
#ROOTDN=""
# ROOTDN PASSWORD ESTABLISHED AT /etc/install-gosa/install-gosa.conf
#ROOTDN_PASSWORD=""
ACADEMIC_PERIOD="2012-13"
INSTITUTION_NAME="Institut de l'Ebre"
INSTITUTION_DOMAIN="iesebre.com"
	
INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID="1"
HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN="cn=nouAlumne,ou=people,ou=Alumnes,ou=All"
HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN="cn=nouProfe,ou=people,ou=Professors,ou=All"

Com podeu veure algunes dades s'agafen de l'aplicació install-gosa .

Configuració manual

La configuració si utilitzeu el paquet Debian no us caldrà fer-la manual. Aquesta documentació està només com a referència, es recomana però utilitzar el paquet Debain,

Schema Ldap. highschooluser.ldif

Aquest plugin utilitza un esquema propi.

Els esquema es podeu trobar a la carpeta:

/usr/share/doc/gosa-highschoolusers/ldap_schemas
$ dpkg -L gosa-highschoolusers | grep ldif
/usr/share/doc/gosa-highschoolusers/ldap_schemas/iris.ldif.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/highschooluser.ldif
/usr/share/doc/gosa-highschoolusers/ldap_schemas/cosine.ldif.gz
/usr/share/doc/gosa-highschoolusers/ldap_schemas/nis.ldif.gz

Com podeu veure a part de l'esquema nou, també es proveïxen les dependències mínimes: iris, ni i cosine.

IMPORTANT: Durant la instal·lació només s'instal·len els esquemes al servidor Ldap si no existeixen. S'instal·la si cal tant l'esquema propi com les dependències

Fitxer gosa.conf

El atribut:

changePeriodDaylimit

es pot establir a:

  <!-- If you broke your setup using the propertyEditor, then set 'ignoreLdapProperties' to true. -->
  <main default="default" changePeriodDaylimit="20 June">
    <!-- Location definition -->
    <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com">
      <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="PARAULADEPAS"/>
    </location>
  </main>

Per indicar a la funció calculateCurrentAcademicPeriod() (fitxer /usr/share/gosa/plugins/admin/HighSchoolUsers/functions.php) quina és la data de canvi de període acadèmic.

Els atributs:

studentTemplateDN
teacherTemplateDN

es pot establir també al fitxer /etc/gosa/gosa.conf:

 ...
  <!-- If you broke your setup using the propertyEditor, then set 'ignoreLdapProperties' to true. -->
  <main default="default" 
                studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"
                teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com">
 ...

Permeten indicar les plantilles per defecte per a alumnes i profes. Si no s'indica cap valors els valors per defecte (hardcoded) són:

studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"
teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"

Imprès de matrícula

El plugin Highschoolusers permet imprimir en format PDF la matrícula TIC de l'usuari. Un exemple, al crear/canviar la paraula de pas:

PrintEnrollmentAndSave2.png

Premeu al botó Print i obtindreu quelcom similar a:

PrintEnrollmentAndSave.png

Per modificar el PDF cal tocar el fitxer:

/usr/share/gosa/html/pdfreports/enrollment.php

Per exemple per canviar la signatura i la capçalera cal canviar:

//IMAGES PATHS
$logo_image="/usr/share/gosa/html/pdfreports/images/logo1.jpeg";
$signature_image="/usr/share/gosa/html/pdfreports/images/signature.jpeg";

Objecte Ldap. Configuració dels templates, el string del període acadèmic i el nextInternalID

Si no existeix es crearà un objecte Ldap amb la configuració de l'aplicació highschoolusers. L'objecte es crea a:

academicPeriod=2011-2012,ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=ELVOSTREDOMINI,dc=com

On el RDN:

academicPeriod=2011-2012

es generà automàticament segons la data en que estem. Hi ha una data per defecte (per codi) que marca el canvi de període per defecte:

25 June

Aquesta data es pot sobreescriure al fitxer gosa.conf, per exemple:

...
 <main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false" 
               passwordProposalHook="apg -MCLN -m 8 -n1" copyPaste="true" 
               changePeriodDaylimit="20 June"
               studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"
               teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com">
   <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com">
     <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="PUT YOU PASSWROD HERE"/>
   </location>
 </main>
...

L'objecte té els següents atributs:

  • nextInternalId: Per defecte el valor és 1
  • academicPeriod: Es calcula automàticament. La data de canvi de període acadèmic és 2010-11
  • StudentTemplateDN: Valor per defecte per codi que es pot modificar a gosa.conf
  • teacherTemplateDN: Valor per defecte per codi que es pot modificar a gosa.conf

Els valors per defecte per codi són:

$studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com";
$teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com";

I es poden modificar al fitxers gosa.conf posant:

studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"
teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"

Per exemple:

...
 <main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false" 
               passwordProposalHook="apg -MCLN -m 8 -n1" copyPaste="true" 
               changePeriodDaylimit="20 June"
		studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"
		teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com">
   <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com">
     <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="%42 yxhsT"/>
   </location>
 </main>

La última versió de l'esquema la podeu trobar a:

Recursos

Configuració de la proposta de paraula de pas

Un exemple de coma ha de quedar el fitxer gosa.conf si voleu activar la proposta de paraules de pas és:

...
 <main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false" 
               passwordProposalHook="apg -MCLN -m 8 -n1" copyPaste="true" 
               changePeriodDaylimit="20 June"
		studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"
		teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com">
   <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com">
     <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="%42 yxhsT"/>
   </location>
 </main>

Tingueu en compte que si utilitzeu la configuració de l'exemple necessitareu tenir l'aplicació APG:

$ sudo apt-get install apg 

Consulteu:

Gosa#Com_activar_la_proposta_de_paraules_de_pas

Paraules de pas. Forçar el tipus de Hash i Samba Hash

IMPORTANT: Si es vol utilitzar l'aplicació GADS per a sincronitzar els comptes Ldap a un Google Apps aleshores és molt important utilitzar un tipus de hash que sigui compatible amb Google Apps. Mai utilitzeu crypt. La recomanació és utilitzar MD5

Es pot escollir al template dels usuaris i així ens assegurem que tots els usuaris creats per plantilla utilitzen un tipus de has correcte.

IMPORTANT: Compte amb indicar un sambaHashHook ja que si no és correcte podeu tenir l'error Gosa#Els_usuaris_generats_amb_Gosa_entre_al_domini_de_Windows.2FSamba_sense_password

TODO. Documentació extreta de man gosa.conf

passwordDefaultHash string
      The passwordDefaultHash statement defines the default password hash to choose for new accounts. Valid values  are  crypt/standard-des,  crypt/md5,
      crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear and sasl.  These values will be overridden when using templates.


  sambaHashHook path
      The  sambaHashHook statement contains an executable to generate samba hash values. This is required for password synchronization, but not required
      if you apply gosa-si services.  If you don't have mkntpasswd from the samba distribution installed, you can use perl to generate the hash:
      perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \$ARGV[0]), $/;"

Configuració de les plantilles d'usuari i professor

En el moment d'escriure aquest manual (--acacha 07:23, 14 set 2011 (UTC)) encara no es poden crear/modificar plantilles des del plugin highschoolusers. De fet tampoc les heu de modificar des del plugin d'usuaris original ja que si ho feu les deixareu sense utilitat (provocarà l'error Highschoolusers#.C2.A1Esta_cuenta_tiene_extensiones_GOsa_no_validas.21 al crear nous usuaris amb la plantilla (mal) modificada)

Quin és doncs el procediment?

  • Primer cal crear la plantilla des del mòdul original d'usuaris de Gosa. Que cal posar?
  • Camps de la institució que vulguem omplir per defecte (Adreça, location, telèfon, FAX, etc)
  • Tipus de paraula de pas: md5
  • Activar el compte Posix:
  • El homedirectory ha de ser /home/%uid o el que us correspongui
  • El grup primari ha de ser automàtic
  • Activar compte Samba
  • Escollir el nom de domini adient
  • Posar que les paraules de pas mai expiren
  • Després cal fer que la plantilla sigui correcte per al plugin highshoolusers:
  • Afegir els obectClass:
HighSchoolUser --> Caldrà posar el camp obligatori: highSchoolUserId. Podeu posar el valor que vulgueu
  • irisPerson
  • extensibleObject?
  • Cal afegir el camp email: %uid@NOMDOMINI:COM

A l'objecte:

academicPeriod=2011-2012,ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=insmontsia,dc=com

NOTA: Tingueu en compte que és un exemple per al període acadèmic 2011-12 i un Institut en concret. Modifiqueu el que convingui per al vostre cas

Cal indicar el DN de les plantilles d'usuari i professor:

studentTemplateDN
teacherTemplateDN

Organització i treball en equip

Changelog

  • Fixed error in highschoolusers.list.xml.
  • Modified class_user! TODO notify to Gosa People. No harcoded search base dn for duplicate uids, now we have an attribute that we can change at child classes.
  • Added incrementNextInternalId. It have to be done at save() function because save_object is invoked two times before and after check().--acacha 08:12, 16 juny 2011 (UTC)
  • Fixed Basedn of new user from template. We use now current DN not template dn.--acacha 08:11, 16 juny 2011 (UTC)
  • template continue last lines of case 0 and case 4

TODO

Consulteu TODO Highschoolusers

Proposta a la gent de Gosa

Seria ideal que els objectes Users estiguessin pensat per ser modificables:

  • Poder afegir accions a la llista de gestió d'usuaris poden-los crear en fitxers extres.
  • Per què esta hardcoded el nom de la plantilla smarty a utilitzar al execute de la classe user? Així no es pot cridar des del pare amb una plantilla diferents- Crear un atribut que es defineixi al constructor de la classe!

Paraules de pas:

  • Millorar el codi de gosa-->Incorporar la impressió de l'alta d'usuari a gosa. Fer una plantilla.


Canvis al cofi font de Gosa

Highschoolusers/Canvis al cofi font de Gosa

Documentació

TODO

/usr/share/doc/gosa-highschoolusers

TODO


Desenvolupament

Consulteu Desenvolupament gosa-highschoolusers

Codi font. Subversion

El repositori subversion amb el codi font el podeu trobar a:

http://www.iesebre.com/subversion/projectes/gosa-highschoolusers/

Resol·lució de problemes. Troubleshooting

The selected password method is no longer available.

Està relacionat amb:

Consulteu Fatal error: Class name must be a valid object or a string in /usr/share/gosa/include/functions.inc on line 2889

Fatal error: Class name must be a valid object or a string in /usr/share/gosa/include/functions.inc on line 2889

NOTA: Aquest error s'ha solucionat en les últimes versions del paquet. --acacha (discussió) 10:52, 23 jul 2012 (CEST)

Aquest error al dona al mirar d'imprimir una matrícula TIC i en altres moments.

és un problema de no haver definit correctament el paràmetre:

passwordDefaultHash

al fitxer gosa.conf.

Per exemple poseu:

passwordDefaultHash="sha"

Al_moure_usuaris_Unix_.28posixAccount.29_no_es_mouen_els_grups_dels_usuari

Gosa#Al_moure_usuaris_Unix_.28posixAccount.29_no_es_mouen_els_grups_dels_usuaris

Se ha detectado un SID Samba sin definir. ¡Por favor solucione este problema manualmente!

La plantilla no tenia SID?

¡No se puede encontrar un método de codificación válido para la clave introducida!

En anglès:

Cannot find a suitable password method for the current hash!

Si us dona aquest error al crear un nou usuari (en el meu cas utilitzant la plantilla de profe) es degut a que la plantilla de professor (o la que estigueu utilitzant) no té el camp:

userPassword. 

Poseu-li aquest camp a la plantilla (important: per ADS si utilitzeu una versió de highschoolusers que no permet modificar plantilles per la interfície gràfica de Gosa), podeu posar qualsevol valor.

Canviar el baseDN a partir del qual es busquen usuaris vàlids per entrar a Gosa

Consulteu:

Gosa#Canviar_el_baseDN_a_partir_del_qual_es_busquen_usuaris_v.C3.A0lids_per_entrar_a_Gosa

Error interno. User ID is not unique! al fer login

Consulteu:

Gosa#Canviar_el_baseDN_a_partir_del_qual_es_busquen_usuaris_v.C3.A0lids_per_entrar_a_Gosa


Migració d'usuaris existents

Alumnes

Profes

  • Afegir ObjectClass:
  • HighSchoolUser
  • Afegir camps:
  • HighSchoolPersonalEmail (Correu personal)
  • HighSchoolUserId (El codi d'usuario ex:201112-959)

Script de migració d'alumnes

Consulteu:

http://www.iesebre.com/subversion/projectes/migrate201011/migrate.php

No es mostren els PDF

En alguns casos aquest error pot ser degut al fet de tenir boquejat al navegador els popups.

No funcionen els desplegables de càrrecs i tipus de identificador. Error javascript

En negreta l'error que apareix a la consola d'errors de Javascript:

Event.observe(window, 'load', function() {
	var irisPersonalUniqueIDType=document.getElementById("irisPersonalUniqueIDType");
	
	var irisPersonalUniqueIDTypes = ["DNI","NIE","Passport","Otros"];
	
	for(var i=0; i<irisPersonalUniqueIDTypes.length; i++) {
		var value = irisPersonalUniqueIDTypes[i];
		if (i== ) {
			irisPersonalUniqueIDType.options[irisPersonalUniqueIDType.length] = 
    			new Option(value,i,true);
   	} else {
   		irisPersonalUniqueIDType.options[irisPersonalUniqueIDType.length] = 
   			new Option(value,i);
   	}
	}

Aquest error apareix quan l'usuari no té l'atribut: irisPersonalUniqueIdType. S'ha arreglat el codi per tal que si no té aquest camp el que es posi és el valor 0 al camp (DNI per defecte).

¡Esta cuenta tiene extensiones GOsa no validas!

Si esteu treballant amb usuaris migrats (que ja estaven creats amb el mòdul d'usuaris normals) aleshores és normal que doni aquest error ja que per migrar-los cal posar 3 nous objectes:

  • highschoolusers
  • extensibleObject
  • irisPerson.

¡No se puede encontrar un método de codificación válido para la clave introducida!

Pot passar al modificar la plantilla d'alumne o professor nou des de l'editor d'usuaris de Gosa i no pas el de highschoolusers!. També us donarà l'error:

 ¡Esta cuenta tiene extensiones GOsa no validas!

El problema és a Highschoolusers la plantilla l'alumne està hardcoded!! i per tant si se li canvia el nom després no la troba i no es generen bé els nous usuaris.

End save_object() at class_highschooluser.inc Fatal error: Call to undefined method stdClass::set_acl_base()

NOTA: Es vol aportar el patch als responsables de gosa a veure si està disponible en versions futures de Gosa. --acacha 16:35, 19 juny 2011 (UTC)

Si us dona un error com (o similar):

End save_object() at class_highschooluser.inc Fatal error: Call to undefined method stdClass::set_acl_base() in /usr/share/gosa/include/class_tabs.inc on line 442 

Possiblement es que no heu aplicat el pegat (patch) que modifica alguns fitxers de gosa. El pegat el podeu trobar a l'arrel del codi font del plugin i el podeu aplicar amb:

$ sudo make applygosapatch
patch -p0 --directory=/ -i gosa.patch
patching file usr/share/gosa/plugins/admin/users/class_userManagement.inc
patching file usr/share/gosa/plugins/admin/users/tabs_user.inc
patching file usr/share/gosa/plugins/personal/generic/class_user.inc 

També es pot aplicar si no es té el codi font amb:

$ sudo patch -p0 --directory=/ -i /usr/share/gosa-highschoolusers/patchs/gosa.patch

Consulteu:

Highschoolusers/Canvis al cofi font de Gosa

Deprecated: Function set_magic_quotes_runtime() is deprecated in /usr/share/php/fpdf/fpdf.php

Deprecated: Function set_magic_quotes_runtime() is deprecated in /usr/share/php/fpdf/fpdf.php on line 908 FPDF error: Missing or incorrect image file: /usr/share/gosa/html/logoGeneralitatEducacio3.jpeg

Vegeu també:

Fatal error: cannot instantiate class Imagick - try running update-gosa to fix this

Si al intentar guardar una foto us dona l'error:

Fatal error: cannot instantiate class Imagick - try running update-gosa to fix this

Aleshores és que us cal la llibreria dinàmica de php per a Imagick

$ sudo apt-get install php5-imagick

Per aplicar els canvis:

$ sudo /etc/init.d/apache2 restart

NOTA: No estic segur però també és possible que uns calgui executar update-gosa i sortir i tornar a entrar

Vegeu també

Enllaços externs