Newsgroup: it.comp.os.linux.sys
Titolo: Struttura rubrica e openldap


#
# Load the required module.
use Text::ParseWords;
# Set a default objectclass and suffix.
@objs = ("inetOrgPerson","top");
$dnsuffix = 'ou=contatti,dc=mura';
# attributi obbligatori
@reserved = (
	("cn",1),
	("sn",2),
);
# attributi opzionali
@attrib = ( ("title",0),
			("displayName",70),
			("mail",69),
			("o",5),
			("ou",6),
			("postalAddress",8),
			("postalCode",13),
			("telephoneNumber",31),
			("facsimileTelephoneNumber",30));
$count = 0;
# Read lines from STDIN.
while ($line = <STDIN>) {
	# impostazioni per il parsing del file csv
  	@fields = &quotewords(';',0,$line);
	# trattamento a parte
	$cnVal = $fields[@reserved[1]];
	if ($cnVal eq "") {
		$cnVal = "indef$count";
	}
	print "dn: cn=$cnVal,$dnsuffix\n";
	for ($i=0; $i < scalar(@reserved); $i+=2) {
		print "@reserved[$i]: ";
		if ($fields[$i+1] eq "") {
			print "indef$count\n";
			$count += 1;
		}
		else {
			print "$fields[$i+1]\n";
		}
	}
	foreach $o (@objs) {
		print "objectclass: $o\n";
	}
	for ($i=0; $i < scalar(@attrib); $i+=2) {
		$value = @fields[@attrib[$i+1]];
		if ($value gt "") {
			print "@attrib[$i]: @fields[@attrib[$i+1]]\n";
		}
	}
	print "\n";
}
exit;

Cerco di spiegarmi meglio (mi sembra di non essere stato chiarissimo).
Vorrei una struttura per la rubrica aziendale che fosse semplice ma
potente e chiara.
Se assumiamo di avere a che fare con aziende (ma non è obbligatorio
naturalmente) in
ou=contatti ci sarà
o=azienda1
o=azienda2
Le quali conterranno
ou=commerciale,o=azienda1
E per ogni reparto delle inetOrgPerson:
cn=paolo,ou=commerciale,o=azienda1
O almeno questo mi sembra il metodo più sensato (se ce ne sono di
migliori accetto consigli), anche se ci sarà da stravolgere un po'
tutto.
Ci sono altri modi per ad esempio evitare di riscrivere tutte le volte
le informazioni?
Ad esempio
o=azienda1 con impostati indirizzo
Poi allo stesso livello ci metto
cn=pippo
Il quale fa parte di azienda1, è possibile?
Qual è il modo più digeribile da thunderbird?

 lavoro?
programmi client non ne conosco, io ho installato un'interfaccia web.
se ti può servire come spunto:
http://www.cosmocode.de/en/loesungen/system/ldapab/


Ok grazie, ma mi sa che farò addirittura usare phpldapadmin, creando
un utente in grado di modificare solo la rubrica sono a posto.
Così evito di installare ulteriore software.
Mi interessa di più la parte teorico / organizzativa se qualcuno
potesse darmi un aiuto...

 lavoro?
Purtroppo thunderbird è MOLTO limitato in questo senso. Io un paio di
anni fa ho sistemato una rubrica aziendale, fortunatamente già in
formato ldap, e mi sono imbattutto nei tuoi stessi problemi. Se fai un
dump del traffico quando lanci la query da Thunderbird, puoi vedere tu
stesso che la query che fa ha sempre gli stessi parametri :D
Per l'amministrazione in ambiente Windows, gli utenti erano abituati ad
usare questo:
http://www-unix.mcs.anl.gov/~gawor/ldap/

 
http://www-unix.mcs.anl.gov/~gawor/ldap/
Accidenti a Thunderbird, eppure ldap è così aperto e documentato che gli 
costava darne un supporto decente?
Vabbeh indagherò...
Se qualcuno avesse sempre consigli riguardo alle altre domande 
precedenti è il benvenuto :)

 Vabbeh indagherò...
https://addons.mozilla.org/en-US/thunderbird/addon/70
-- 
Vide

 
http://www-unix.mcs.anl.gov/~gawor/ldap/
Ripensandoci come hai poi risolto la situazione.
Sto provando un po' a capire come si potrebbe fare e mi sa che l'unico
sistema è fare una struttura piatta, in cui ogni inetOrgPerson ha
impostati gli attributi "o" e "ou".
Grazie anche all'ottimo link di Vide ora ho risolto il problema della 
ricerca.
Un altra cosuccia, stavo tendando di creare un alias di prova:
dn: cn=lorenzino,ou=Users,ou=Montichiari,dc=mura
objectClass: alias
objectClass: extensibleObject
uid: lorenzino
aliasedobjectname: cn=lorenzo,ou=produzione,o=ditta,ou=contatti,dc=mura
Dove il dn in aliasedobjectname esiste, ma mi dà questo errore
adding new entry "cn=lorenzino,ou=Users,ou=Montichiari,dc=mura"
modify complete
ldap_add: Naming violation (64)
         additional info: naming attribute 'cn' is not present in entry
Sto sbagliando qualcos altro?

 Sto sbagliando qualcos altro?
Che stupido questo l'ho risolto, serviva "cn:" invece di "uid:"

 Questo un esempio:
 
e' tre mesi che  cerco di imparare bene openldap, ma mi sfuggono i concetti
base. profitto del tuo post per chiederti se hai dei link ove ti sei
rifatto.
devo imparare.
grazie
saluti
-- 
-------------------------------------------------
linux slackware
tutto il resto e' inutile
-------------------------------------------------


Capisco i concetti base sono sfuggevoli, dunque io ti consiglio di
fare in questo modo, cercare di fare qualche bel tutorial, usare
phpldapadmin e leggere la guida ufficiale:
http://www.openldap.org/doc/admin24/
Oltre a fare parecchie query da linea di comando (molto carino anche
shelldap, che ho trovato e installato dai macports) e fare
esperimenti.
I concetti basilari cmq sono gli schemi, le objectclass e i dn, una
volta capito queste cose sei a posto.

Un altra questione, ora diciamo che mi sono arreso alla struttura piatta 
(creare solo inetOrgPerson con o e ou settati correttamente), MA come si 
può accertarsi che una certa azienda venga sempre scritta in un certo modo??
C'è qualche modo intelligente di non permettere l'inserimento di un 
attributo "o" se non ce n'è già uno uguale impostato??
Sono anche disposto a creare un altra struttura separata con i nomi di 
tutte le aziende...

Mandi! andrea
  In chel dì si favelave...
a> Mi interessa di più la parte teorico / organizzativa se qualcuno
a> potesse darmi un aiuto...
Ci sono incappato per sbaglio, ma dalla versione 1.4 egroupware:
 
http://www.egroupware.org/
supporta la gestione della sua rubrica pienamente in LDAP usando una
combinazione di organizzazione a ACL, ed usando schemi standard.
A me non serviva,  a dargli una occhiata veloce mi è venuto mal di
testa, ma credo che potrebbe essere una cosa interessante.
Se poi ci vieni a capo, gradirei capire anche io. ;)
-- 
  Mi piaccion le fiabe
  raccontane altre					(F. Guccini)

Marco Gaiarin ha scritto:

Dunque non ho usato egroupware ma sto litigando con thunderbird e 
l'estensione contacts sidebar.
Ho caricato la mia bella rubrica e ora stavo facendo un po' di prove, se 
ad esempio metto due attributi
"mail" il secondo va perso per strada, è normale?
Se questa regola vale per tutti gli attributi è una bella rottura, una 
persona potrebbe avere più mail o più numeri di telefono, o sbaglio?
Inoltre ho messo questa acl per permettere agli utenti di modificare,
access to dn.sub="ou=Contacts,dc=ditta"
         by dn.one="ou=Users,dc=ditta write
         by anonymous read
         by * none
Prima avevo messo
by * read invece delle ultime due righe ma thunderbird non mi andava a 
pescare più niente, non era corretto comunque?
Grazie a tutti

 sia multipiattaforma altrimenti ci avrei fatto un pensierino..
http://shellter.sourceforge.net/evolution/
Non ne conosco lo stato, so solo che c'e`.
Per Mac credo funzioni installando X.
Bye.

 Grazie a tutti
A quanto pare è normale, lo schema mozilla accetta al max una
secondary mail, ma comunque dovrei cambiare l'objectClass e questo non
è affatto l'ideale.
Mi sembra veramente stupido non permettere più di due mail per utente,
non vi pare?