コード例 #1
0
/**
 * do a midgard query for username
 * return if username alresdy eixst in db
 * otherwise do an _ldap_search for username
 * if user exists in LDAP then create an account in db
 * if user does not exist then .. give up :)
 */
function ldap_auth_pre_callback($username)
{
    $qb = new midgard_query_builder('midgard_person');
    $qb->add_constraint('username', '=', $username);
    if ($qb->count() > 0) {
        return;
    } else {
        $ldap_user = _ldap_search($username);
        if ($ldap_user) {
            $user = new midgard_person();
            $user->username = $ldap_user['username'];
            $user->firstname = $ldap_user['firstname'];
            $user->email = $ldap_user['email'];
            $user->create();
            // use this parameter to fetch avatars from meego.com
            $user->set_parameter('org.maemo.socialnews', 'employeenumber', $ldap_user['employeenumber']);
        }
    }
    unset($ldap_user);
}
コード例 #2
0
ファイル: ldap.php プロジェクト: nemein/com_meego_packages
 /**
  * Creates and returns a person object
  */
 private function create_person($ldapuser = null, $tokens = null)
 {
     if (!$ldapuser) {
         return false;
     }
     $person = new midgard_person();
     $firstname = $ldapuser['firstname'];
     $lastname = $ldapuser['lastname'];
     if ($firstname == '' || $firstname == '--') {
         $firstname = $tokens['login'];
     }
     if ($lastname == '' || $lastname == '--') {
         $lastname = '';
     }
     $person->firstname = $firstname;
     $person->lastname = $lastname;
     if (!$person->create()) {
         midgardmvc_core::get_instance()->log(__CLASS__, "Creating midgard_person for LDAP user failed: " . midgard_connection::get_instance()->get_error_string(), 'warning');
         $transaction->rollback();
         midgardmvc_core::get_instance()->authorization->leave_sudo();
         return false;
     }
     $person->set_parameter('midgardmvc_core_services_authentication_ldap', 'employeenumber', $ldapuser['employeenumber']);
     return $person;
 }