LdapAgent Class Reference

An interface class between YaST2 and Ldap Agent. More...

#include <LdapAgent.h>

Inheritance diagram for LdapAgent:

SCRAgent List of all members.

Public Member Functions

 LdapAgent ()
virtual ~LdapAgent ()
virtual YCPValue Read (const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &opt=YCPNull())
virtual YCPBoolean Write (const YCPPath &path, const YCPValue &arg, const YCPValue &arg2=YCPNull())
virtual YCPValue Execute (const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &arg2=YCPNull())
virtual YCPList Dir (const YCPPath &path)
virtual YCPValue otherCommand (const YCPTerm &term)

Private Member Functions

string getValue (const YCPMap map, const string key)
int getIntValue (const YCPMap map, const string key, int deflt)
bool getBoolValue (const YCPMap map, const string key)
YCPList getListValue (const YCPMap map, const string key)
StringList ycplist2stringlist (YCPList l)
YCPList stringlist2ycplist (StringList sl)
YCPList stringlist2ycplist_low (StringList sl)
YCPMap getGroupEntry (LDAPEntry *entry, string member_attribute)
YCPMap getUserEntry (LDAPEntry *entry)
YCPMap getSearchedEntry (LDAPEntry *entry, bool sinlge_value)
YCPMap getObjectAttributes (string dn)
YCPBoolean deleteSubTree (string dn)
YCPBoolean moveWithSubtree (string dn, string new_dn, string parent_dn)
YCPBoolean copyOneEntry (string dn, string new_dn)
void debug_exception (LDAPException e, string action)
void generate_attr_list (LDAPAttributeList *attrs, YCPMap map)
void generate_mod_list (LDAPModList *modlist, YCPMap map, YCPValue attrs)

Private Attributes

int port
string hostname
string bind_dn
string bind_pw
string ldap_error
string server_error
int ldap_error_code
bool ldap_initialized
string userpw_hash
LDAPConnection * ldap
LDAPConstraints * cons
LDAPSchema * schema
YCPMap users
YCPMap users_by_name
YCPMap users_by_uidnumber
YCPMap usernames
YCPMap userdns
YCPMap uids
YCPMap homes
YCPMap user_items
YCPMap groups
YCPMap groups_by_name
YCPMap groups_by_gidnumber
YCPMap groupnames
YCPMap gids
YCPMap group_items

Detailed Description

An interface class between YaST2 and Ldap Agent.


Constructor & Destructor Documentation

LdapAgent::LdapAgent (  ) 

Default constructor.

LdapAgent::~LdapAgent (  )  [virtual]

Destructor.


Member Function Documentation

string LdapAgent::getValue ( const YCPMap  map,
const string  key 
) [private]

search the map for value of given key; both key and value have to be strings when key is not present, empty string is returned

int LdapAgent::getIntValue ( const YCPMap  map,
const string  key,
int  deflt 
) [private]

Search the map for value of given key

Parameters:
map YCP Map to look in
key key we are looking for
deflt the default value to be returned if key is not found

bool LdapAgent::getBoolValue ( const YCPMap  map,
const string  key 
) [private]

YCPList LdapAgent::getListValue ( const YCPMap  map,
const string  key 
) [private]

StringList LdapAgent::ycplist2stringlist ( YCPList  l  )  [private]

converts YCPList to StringList object

YCPList LdapAgent::stringlist2ycplist ( StringList  sl  )  [private]

converts StringList object to YCPList value

YCPList LdapAgent::stringlist2ycplist_low ( StringList  sl  )  [private]

converts StringList object to YCPList value + each item is lowercased

YCPMap LdapAgent::getGroupEntry ( LDAPEntry *  entry,
string  member_attribute 
) [private]

Return YCP of group, given as LDAP object

Parameters:
entry LDAP object of the group [item of search result]
member_attribute name of attribute with members ("member"/"uniquemember")

YCPMap LdapAgent::getUserEntry ( LDAPEntry *  entry  )  [private]

Return YCP of user, given as LDAP object

Parameters:
entry LDAP object of the user [item of search result]

YCPMap LdapAgent::getSearchedEntry ( LDAPEntry *  entry,
bool  sinlge_value 
) [private]

creates YCPMap describing object returned as a part of LDAP search call

Parameters:
single_values if true, return string when argument has only one value (otherwise return always list)

YCPMap LdapAgent::getObjectAttributes ( string  dn  )  [private]

searches for one object and gets all his non-empty attributes

Parameters:
dn object's dn
Returns:
map of type $[ attr_name: [] ]

YCPBoolean LdapAgent::deleteSubTree ( string  dn  )  [private]

deletes all children of given entry

YCPBoolean LdapAgent::moveWithSubtree ( string  dn,
string  new_dn,
string  parent_dn 
) [private]

move the entry in LDAP tree with all its children

Parameters:
dn DN of original entry
new_dn new DN (= new place)
parent_dn DN of the new parent of the entry

YCPBoolean LdapAgent::copyOneEntry ( string  dn,
string  new_dn 
) [private]

copy the LDAP entry to new place (+ changes DN-constructing attribute, like cn,uid,ou etc.)

Parameters:
dn DN of original entry
new_dn new DN (= new place)

void LdapAgent::debug_exception ( LDAPException  e,
string  action 
) [private]

log the output of an exception and set the return value from agent's call

void LdapAgent::generate_attr_list ( LDAPAttributeList *  attrs,
YCPMap  map 
) [private]

creates attributes for new LDAP object and fills their values

void LdapAgent::generate_mod_list ( LDAPModList *  modlist,
YCPMap  map,
YCPValue  attrs 
) [private]

creates list of modifications for LDAP object for removing attribute, use give it empty value

YCPValue LdapAgent::Read ( const YCPPath path,
const YCPValue arg = YCPNull(),
const YCPValue opt = YCPNull() 
) [virtual]

Provides SCR Read ().

Parameters:
path Path that should be read.
arg Additional parameter.

error: Read(.ldap.error) -> returns last error message

generic LDAP search command Read(.ldap.search, <search_map>) -> result list/map of objects (return value depends on value of "return_map" parameter

get the users map (previously searched by users.search) Read(.ldap.users) -> map

get the groups map (previously searched by users.search) Read(.ldap.groups) -> map

get the map of object class with given name Read(.ldap.schema.oc, $[ "name": name]) -> map

get the map of attribute type with given name Read(.ldap.schema.at, $[ "name": name]) -> map

get the mapping of usernames to uid's (used for users module) DEPRECATED, users_by_name is empty now Read(.ldap.users.by_name) -> map

get the mapping of uid numbers to user names (used for users module) Read(.ldap.users.by_uidnumber) -> map

get the list of home directories (used for users module) Read(.ldap.users.homes) -> list of homes

get the list of UID's (used for users module) Read(.ldap.users.uids) -> list

get the list of user names (used for users module) Read(.ldap.users.usernames) -> list

get the list of user DN's (used for users module) Read(.ldap.users.userdns) -> list

get the items for user table (used for users module) Read(.ldap.users.itemlist) -> list of items

get the map of gid's indexed by group names (used for users module) DEPRECATED, groups_by_name is empty now Read(.ldap.groups.by_name) -> map

get the mapping of gid numbers to group names (used for users module) Read(.ldap.groups.by_uidnumber) -> map

get the list of GID's (used for users module) Read(.ldap.groups.gids) -> list

get the list of group names (used for users module) Read(.ldap.groups.groupnames) -> list

get the items for group table (used for users module) Read(.ldap.groups.itemlist) -> list of items

check if given object class exists in schema Read(.ldap.schema.oc.check, $[ "name": name]) -> boolean

Implements SCRAgent.

YCPBoolean LdapAgent::Write ( const YCPPath path,
const YCPValue arg,
const YCPValue arg2 = YCPNull() 
) [virtual]

Provides SCR Write ().

generic LDAP add command Write(.ldap.add, $[ "dn": dn ], <add_map>) -> boolean

generic LDAP modify command Write(.ldap.modify, <arg_map>, <modify_map>) -> boolean

generic LDAP delete command Write(.ldap.delete, $[ "dn" : dn ]) -> boolean

Implements SCRAgent.

YCPValue LdapAgent::Execute ( const YCPPath path,
const YCPValue arg = YCPNull(),
const YCPValue arg2 = YCPNull() 
) [virtual]

Provides SCR Execute ().

initialization: Execute (.ldap,$[ "hostname": <host>, "port": <port>, "use_tls": "no"|"yes"|"try" ] )

ping: Execute (.ldap.ping, $[ "hostname": <host>, "port": <port> ] ) returns true if server is running

bind: Execute(.ldap.bind, $[ "bind_dn": binddn, "bindpw": bindpw] ) for anonymous acess, call bind with empty map

unbind: Execute(.ldap.unbind)

Initialize schema: read and parse it

LDAP users search command Read(.ldap.users.search, <search_map>) -> result list (more special work is done than in generic search)

Reimplemented from SCRAgent.

YCPList LdapAgent::Dir ( const YCPPath path  )  [virtual]

Provides SCR Dir ().

Implements SCRAgent.

YCPValue LdapAgent::otherCommand ( const YCPTerm term  )  [virtual]

Used for mounting the agent.

Reimplemented from SCRAgent.


Member Data Documentation

int LdapAgent::port [private]

Agent private variables

string LdapAgent::hostname [private]

string LdapAgent::bind_dn [private]

string LdapAgent::bind_pw [private]

string LdapAgent::ldap_error [private]

string LdapAgent::server_error [private]

int LdapAgent::ldap_error_code [private]

bool LdapAgent::ldap_initialized [private]

string LdapAgent::userpw_hash [private]

LDAPConnection* LdapAgent::ldap [private]

LDAPConstraints* LdapAgent::cons [private]

LDAPSchema* LdapAgent::schema [private]

YCPMap LdapAgent::users [private]

YCPMap LdapAgent::users_by_name [private]

YCPMap LdapAgent::users_by_uidnumber [private]

YCPMap LdapAgent::usernames [private]

YCPMap LdapAgent::userdns [private]

YCPMap LdapAgent::uids [private]

YCPMap LdapAgent::homes [private]

YCPMap LdapAgent::user_items [private]

YCPMap LdapAgent::groups [private]

YCPMap LdapAgent::groups_by_name [private]

YCPMap LdapAgent::groups_by_gidnumber [private]

YCPMap LdapAgent::groupnames [private]

YCPMap LdapAgent::gids [private]

YCPMap LdapAgent::group_items [private]


The documentation for this class was generated from the following files:
Generated on Tue Nov 28 17:11:35 2006 for yast2-ldap by  doxygen 1.5.0