ldap_oc2template man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

LDAP_DISPTMPL(3LDAP)					  LDAP_DISPTMPL(3LDAP)

NAME
       ldap_disptmpl,	    ldap_init_templates,      ldap_init_templates_buf,
       ldap_free_templates,	 ldap_first_disptmpl,	   ldap_next_disptmpl,
       ldap_oc2template,	  ldap_name2template,	       ldap_tmplattrs,
       ldap_first_tmplrow,	 ldap_next_tmplrow,	   ldap_first_tmplcol,
       ldap_next_tmplcol - LDAP display template functions

SYNOPSIS
       cc[ flag... ] file... -lldap[ library... ]
       #include <lber.h>
       #include <ldap.h>

       int ldap_init_templates(char *file, struct ldap_disptmpl **tmpllistp);

       int ldap_init_templates_buf(char *buf, unsigned long len,
	    struct ldap_disptmpl **tmpllistp);

       void ldap_free_templates(struct ldap_disptmpl *tmpllist);

       struct ldap_disptmpl *ldap_first_disptmpl
	    (struct ldap_disptmpl *tmpllist);

       struct ldap_disptmpl *ldap_next_disptmpl
	    (struct ldap_disptmpl *tmpllist,struct ldap_disptmpl *tmpl);

       struct ldap_disptmpl *ldap_oc2template (char **oclist,
	    struct ldap_disptmpl *tmpllist);

       struct ldap_disptmpl *ldap_name2template (char *name,
	    struct ldap_disptmpl *tmpllist);

       char **ldap_tmplattrs(struct ldap_disptmpl *tmpl, char **includeattrs,
	    int exclude;, unsigned long syntaxmask);

       struct ldap_tmplitem *ldap_first_tmplrow(struct ldap_disptmpl *tmpl);

       struct ldap_tmplitem *ldap_next_tmplrow(struct ldap_disptmpl *tmpl,
	    struct ldap_tmplitem *row);

       struct ldap_tmplitem *ldap_first_tmplcol(struct ldap_disptmpl *tmpl,
	    struct ldap_tmplitem *row, struct ldap_tmplitem *col);

       struct ldap_tmplitem *ldap_next_tmplcol(struct ldap_disptmpl *tmpl,
	    struct ldap_tmplitem *row, struct ldap_tmplitem *col);

DESCRIPTION
       These  functions	 provide  a  standard way to access LDAP entry display
       templates.  Entry display templates provide a  standard	way  for  LDAP
       applications to display directory entries.  The general idea is that it
       is possible to map the list of object class values present in an	 entry
       to an appropriate display template.  Display templates are defined in a
       configuration file. See ldaptemplates.conf(4).  Each  display  template
       contains a pre-determined list of items, where each item generally cor‐
       responds to an attribute to be displayed.  The items  contain  informa‐
       tion  and  flags	 that  the caller can use to display the attribute and
       values in a reasonable fashion.	Each item has a	 syntaxid,  which  are
       described  in the SYNTAX IDS section below.  The ldap_entry2text(3LDAP)
       functions use the display template functions and produce text output.

       ldap_init_templates() reads a sequence of templates from a  valid  LDAP
       template configuration file (see	 ldaptemplates.conf(4)). Upon success,
       0 is returned, and tmpllistp is set to point to a  list	of  templates.
       Each member of the list is an ldap_disptmpl structure (defined below in
       the DISPTMPL Structure Elements section).

       ldap_init_templates_buf() reads a sequence of templates from buf (whose
       size is buflen). buf should point to the data in the format defined for
       an LDAP template configuration file (see	 ldaptemplates.conf(4)).  Upon
       success,	  0  is	 returned,  and tmpllistp is set to point to a list of
       templates.

       The LDAP_SET_DISPTMPL_APPDATA() macro is used to set the value  of  the
       dt_appdata  field  in  an   ldap_disptmpl  structure.   This  field  is
       reserved for the calling application to use; it is not used internally.

       The LDAP_GET_DISPTMPL_APPDATA() macro is used to retrieve the value  in
       the  dt_appdata field.

       The LDAP_IS_DISPTMPL_OPTION_SET() macro is used to test a ldap_disptmpl
       structure for the existence of a template  option.   The	 options  cur‐
       rently  defined are: LDAP_DTMPL_OPT_ADDABLE (it is appropriate to allow
       entries of this type to be added),  LDAP_DTMPL_OPT_ALLOWMODRDN  (it  is
       appropriate to offer the "modify rdn"operation), LDAP_DTMPL_OPT_ALTVIEW
       (this template is merely an alternate view of another  template,	 typi‐
       cally used for templates pointed to be an LDAP_SYN_LINKACTION item).

       ldap_free_templates()   disposes	  of   the   templates	 allocated  by
       ldap_init_templates().

       ldap_first_disptmpl() returns the first template in the list  tmpllist.
       The tmpllist is typically obtained by calling ldap_init_templates() .

       ldap_next_disptmpl()  returns  the  template after tmpl in the template
       list tmpllist. A NULL pointer is returned if tmpl is the last  template
       in the list.

       ldap_oc2template()  searches  tmpllist  for the best template to use to
       display an entry that  has  a  specific	set  of	  objectClass  values.
       oclist  should  be a null-terminated array of strings that contains the
       values of the  objectClass attribute of the entry.  A  pointer  to  the
       first  template	where  all  of the object classes listed in one of the
       template's dt_oclist elements are contained in oclist is	 returned.   A
       NULL pointer is returned if no appropriate template is found.

       ldap_tmplattrs()	 returns  a  null-terminated  array  that contains the
       names of attributes that need to be retrieved if the template  tmpl  is
       to  be  used  to	 display an entry.  The attribute list should be freed
       using ldap_value_free(). The includeattrs parameter  contains  a	 null-
       terminated  array  of attributes that should always be included (it may
       be NULL if no extra attributes are required).  If  syntaxmask  is  non-
       zero, it is used to restrict the attribute set returned.	 If exclude is
       zero, only attributes where the logical	AND of the template item  syn‐
       tax id and the syntaxmask is non-zero are included.  If exclude is non-
       zero, attributes where the logical  AND of the template item syntax  id
       and the syntaxmask is non-zero are excluded.

       ldap_first_tmplrow()  returns  a	 pointer  to the first row of items in
       template tmpl.

       ldap_next_tmplrow() returns a pointer to the row that  follows  row  in
       template tmpl.

       ldap_first_tmplcol()  returns a pointer to the first item (in the first
       column) of row row within template tmpl. A pointer to an	 ldap_tmplitem
       structure (defined below in the TMPLITEM Structure Elements section) is
       returned.

       The LDAP_SET_TMPLITEM_APPDATA() macro is used to set the value  of  the
       ti_appdata field in a  ldap_tmplitem structure.	This field is reserved
       for the calling application to use; it is not used internally.

       The LDAP_GET_TMPLITEM_APPDATA() macro is used to retrieve the value  of
       the  ti_appdata field.

       The LDAP_IS_TMPLITEM_OPTION_SET() macro is used to test a ldap_tmplitem
       structure for the existence of an item option.  The  options  currently
       defined are: LDAP_DITEM_OPT_READONLY (this attribute should not be mod‐
       ified), LDAP_DITEM_OPT_SORTVALUES (it makes sense to sort the  values),
       LDAP_DITEM_OPT_SINGLEVALUED  (this  attribute  can  only	 hold a single
       value), LDAP_DITEM_OPT_VALUEREQUIRED (this attribute  must  contain  at
       least  one value), LDAP_DITEM_OPT_HIDEIFEMPTY (do not show this item if
       there are  no  values),	and  LDAP_DITEM_OPT_HIDEIFFALSE	 (for  boolean
       attributes only:	 hide this item if the value  is FALSE).

       ldap_next_tmplcol() returns a pointer to the item (column) that follows
       column col within row row of template tmpl.

   DISPTMPL Structure Elements
       The  ldap_disptmpl structure is defined as:

	 struct ldap_disptmpl {
	      char		       *dt_name;
	      char	     *dt_pluralname;
	      char		       *dt_iconname;
	      unsigned long	       dt_options;
	      char		       *dt_authattrname;
	      char		       *dt_defrdnattrname;
	      char		       *dt_defaddlocation;
	      struct ldap_oclist  *dt_oclist;
	      struct ldap_adddeflist   *dt_adddeflist;
	      struct ldap_tmplitem     *dt_items;
	      void	     *dt_appdata;
	      struct ldap_disptmpl     *dt_next;
	 };

       The  dt_name member is the singular name of the template.  The  dt_plu‐
       ralname	is  the plural name.  The  dt_iconname member will contain the
       name of an icon or other graphical element that can be used  to	depict
       entries that correspond to this display template.  The  dt_options con‐
       tains	 options     which     may     be     tested	 using	   the
       LDAP_IS_TMPLITEM_OPTION_SET() macro.

       The  dt_authattrname contains the name of the DN-syntax attribute whose
       value(s) should be used to authenticate to make changes	to  an	entry.
       If  dt_authattrname is NULL, then authenticating as the entry itself is
       appropriate. The	 dt_defrdnattrname is the name of the  attribute  that
       is  normally  used  to  name entries of this type, for example, "cn"for
       person entries.	The  dt_defaddlocation is the distinguished name of an
       entry  below  which new entries of this type are typically created (its
       value is site-dependent).

       dt_oclist is a pointer to a linked list of object class arrays, defined
       as:

	 struct ldap_oclist {
	      char	     **oc_objclasses;
	      struct ldap_oclist  *oc_next;
	 };

       These are used by the  ldap_oc2template() function.

       dt_adddeflist is a pointer to a linked list of rules for defaulting the
       values of attributes when new entries are  created.   The   ldap_addde‐
       flist structure is defined as:

	 struct ldap_adddeflist {
	      int	     ad_source;
	      char	     *ad_attrname;
	      char	     *ad_value;
	      struct ldap_adddeflist   *ad_next;
	 };

       The  ad_attrname	 member contains the name of the attribute whose value
       this rule sets.	If  ad_source is   LDAP_ADSRC_CONSTANTVALUE  then  the
       ad_value	 member	 contains the (constant) value to use. If ad_source is
       LDAP_ADSRC_ADDERSDN then ad_value is ignored and the distinguished name
       of  the person who is adding the new entry is used as the default value
       for  ad_attrname.

   TMPLITEM Structure Elements
       The  ldap_tmplitem structure is defined as:

	 struct ldap_tmplitem {
	      unsigned long	  ti_syntaxid;
	      unsigned long	  ti_options;
	      char	     *ti_attrname;
	      char	     *ti_label;
	      char	     **ti_args;
	      struct ldap_tmplitem     *ti_next_in_row;
	      struct ldap_tmplitem     *ti_next_in_col;
	      void	     *ti_appdata;
	 };

   Syntax IDs
       Syntax ids are found in the  ldap_tmplitem  structure  element  ti_syn‐
       taxid,  and they can be used to determine how to display the values for
       the attribute associated with an item.  The  LDAP_GET_SYN_TYPE()	 macro
       can  be	used to return a general type from a syntax id.	 The five gen‐
       eral types currently defined are:  LDAP_SYN_TYPE_TEXT  (for  attributes
       that  are  most	appropriately shown as text), LDAP_SYN_TYPE_IMAGE (for
       JPEG  or	 FAX  format  images),	LDAP_SYN_TYPE_BOOLEAN	(for   boolean
       attributes),  LDAP_SYN_TYPE_BUTTON  (for attributes whose values are to
       be retrieved and display only upon  request, for example,  in  response
       to  the press of a button, a JPEG image is retrieved, decoded, and dis‐
       played), and LDAP_SYN_TYPE_ACTION (for special purpose actions such  as
       "search	for  the  entries  where  this	entry is listed in the seeAlso
       attribute").

       The LDAP_GET_SYN_OPTIONS macro can be used to retrieve an unsigned long
       bitmap  that  defines  options.	 The  only currently defined option is
       LDAP_SYN_OPT_DEFER, which (if set) implies  that	 the  values  for  the
       attribute should not be retrieved until requested.

       There  are sixteen distinct syntax ids currently defined.  These gener‐
       ally correspond to one or more X.500 syntaxes.

       LDAP_SYN_CASEIGNORESTR is used for text	attributes  which  are	simple
       strings whose case is ignored for comparison purposes.

       LDAP_SYN_MULTILINESTR is used for text attributes which consist of mul‐
       tiple lines, for	 example,   postalAddress,  homePostalAddress,	multi‐
       lineDescription, or any attributes of syntax  caseIgnoreList.

       LDAP_SYN_RFC822ADDR  is used for case ignore string attributes that are
       RFC-822 conformant mail addresses, for example, mail.

       LDAP_SYN_DN is used for attributes with a  Distinguished	 Name  syntax,
       for example,  seeAlso.

       LDAP_SYN_BOOLEAN is used for attributes with a boolean syntax.

       LDAP_SYN_JPEGIMAGE is used for attributes with a jpeg syntax, for exam‐
       ple, jpegPhoto.

       LDAP_SYN_JPEGBUTTON is used to provide a button (or  equivalent	inter‐
       face  element)  that  can  be  used to retrieve, decode, and display an
       attribute of jpeg syntax.

       LDAP_SYN_FAXIMAGE is used for attributes with a photo syntax, for exam‐
       ple, Photo.  These are actually Group 3 Fax (T.4) format images.

       LDAP_SYN_FAXBUTTON is used to provide a button (or equivalent interface
       element) that can be used to retrieve, decode, and display an attribute
       of photo syntax.

       LDAP_SYN_AUDIOBUTTON  is used to provide a button (or equivalent inter‐
       face element) that can be used to retrieve and  play  an	 attribute  of
       audio  syntax.	Audio values are in the "mu law" format, also known as
       "au" format.

       LDAP_SYN_TIME is used for attributes with the UTCTime syntax, for exam‐
       ple,   lastModifiedTime.	 The  value(s) should be displayed in complete
       date and time fashion.

       LDAP_SYN_DATE is used for attributes with the UTCTime syntax, for exam‐
       ple,  lastModifiedTime. Only the date portion of the value(s) should be
       displayed.

       LDAP_SYN_LABELEDURL is used for	labeledURL attributes.

       LDAP_SYN_SEARCHACTION is used to	 define	 a  search  that  is  used  to
       retrieve	 related  information.	If   ti_attrname  is  not  NULL, it is
       assumed to be a boolean attribute which will cause no search to be per‐
       formed  if  its	value  is  FALSE.   The	 ti_args structure member will
       have four strings in it:	 ti_args[  0  ]	 should	 be  the  name	of  an
       attribute  whose	 values	 are used to help construct a search filter or
       "-dn" is the distinguished name of the entry being displayed should  be
       used,  ti_args[ 1 ] should be a filter pattern where any occurrences of
       "%v" are replaced with the value derived from  ti_args[ 0 ],   ti_args[
       2 ] should be the name of an additional attribute to retrieve when per‐
       forming the search, and	ti_args[ 3 ] should be a human-consumable name
       for that attribute.  The	 ti_args[ 2 ] attribute is typically displayed
       along with a list of distinguished  names  when	multiple  entries  are
       returned by the search.

       LDAP_SYN_LINKACTION  is	used  to  define a link to another template by
       name.  ti_args[ 0 ] will contain the name of the	 display  template  to
       use.   The   ldap_name2template()  function  can	 be  used  to obtain a
       pointer to the correct  ldap_disptmpl structure.

       LDAP_SYN_ADDDNACTION  and  LDAP_SYN_VERIFYDNACTION  are	 reserved   as
       actions but currently undefined.

ERRORS
       The init template functions return LDAP_TMPL_ERR_VERSION if  buf points
       to data that is newer than can be handled, LDAP_TMPL_ERR_MEM  if	 there
       is  a  memory  allocation  problem,  LDAP_TMPL_ERR_SYNTAX if there is a
       problem	with  the  format   of	 the   templates   buffer   or	 file.
       LDAP_TMPL_ERR_FILE  is returned by ldap_init_templates if the file can‐
       not be read.   Other functions generally return NULL upon error.

ATTRIBUTES
       See attributes(5) for a description of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       │Interface Stability │ Evolving	      │
       └────────────────────┴─────────────────┘

SEE ALSO
       ldap(3LDAP),	  ldap_entry2text(3LDAP),	ldaptemplates.conf(4),
       attributes(5)

				 Jan 27, 2002		  LDAP_DISPTMPL(3LDAP)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net