/** * import the accounts from eGroupWare 1.4 * * @todo add primary group or use Admin_Controller_User::getInstance()->create * @todo import user password */ protected function importAccounts() { $this->_log->INFO('start importing egw users'); $select = $this->_egwDb->select()->from(array('accounts' => 'egw_accounts'))->joinLeft(array('contacts' => 'egw_addressbook'), $this->_egwDb->quoteIdentifier('accounts.account_id') . ' = ' . $this->_egwDb->quoteIdentifier('contacts.account_id'))->where($this->_egwDb->quoteInto($this->_egwDb->quoteIdentifier('accounts.account_type') . ' = ?', 'u')); $accounts = $this->_egwDb->fetchAll($select, NULL, Zend_Db::FETCH_OBJ); foreach ($accounts as $account) { $user = new Tinebase_Model_FullUser(array('accountId' => $account->account_id, 'accountLoginName' => $account->account_lid, 'accountLastLogin' => $account->account_lastlogin > 0 ? new Tinebase_DateTime($account->account_lastlogin) : NULL, 'accountLastLoginfrom' => $account->account_lastloginfrom, 'accountLastPasswordChange' => $account->account_lastpwd_change > 0 ? new Tinebase_DateTime($account->account_lastpwd_change) : NULL, 'accountStatus' => $account->account_status == 'A' ? 'enabled' : 'disabled', 'accountExpires' => $account->account_expires > 0 ? new Tinebase_DateTime($account->account_expires) : NULL, 'accountPrimaryGroup' => abs($account->account_primary_group), 'accountLastName' => $account->n_family ? $account->n_family : 'Lastname', 'accountFirstName' => $account->n_given ? $account->n_given : 'Firstname', 'accountEmailAddress' => isset($account->email) ? $account->email : $account->contact_email)); $this->_log->DEBUG(__METHOD__ . '::' . __LINE__ . ' user: '******'accountId', $user->accountId); $user = Tinebase_User::getInstance()->updateUser($user); } catch (Tinebase_Exception_NotFound $ten) { $user = Tinebase_User::getInstance()->addUser($user); } // (re)set password Tinebase_User::getInstance()->setPassword($user, $account->account_pwd, FALSE); // plase user in his groups Tinebase_Group::getInstance()->addGroupMember($user->accountPrimaryGroup, $user); } $this->_log->NOTICE('imported ' . count($accounts) . ' users from egw'); }