public function _createUser($form, $sendEmail = false) { $values = $form->getValues(); $user = new User(); $logic = new Logic_User(); $dbAdapter = $user->getAdapter(); $dbAdapter->beginTransaction(); try { $loginArrayRows = $user->fetchAll($user->select()->from(array('u' => 'user'), array('login'))); $loginArray = array(); if ($loginArrayRows) { foreach ($loginArrayRows as $value) { $loginArray[] = $value->login; } } if (!in_array(strtoupper($values['login']), $loginArray)) { $pass = Base_PasswordGenerator::generate(); $values['password'] = $pass['hashed']; if (isset($values['symbol'])) { unset($values['symbol']); } if (isset($values['rola'])) { unset($values['rola']); } if (!$values['valid_until'] || strlen($values['valid_until']) == 0) { $values['valid_until'] = date('c', strtotime('+ 20 year')); } // $clientModel = new Wsclient(); // // $clientData = array( // 'client_name' => $values['login'], // 'pm_name' => $values['first_name'].' '.$values['surname'], // 'pm_email' => $values['email'], //// 'user_id' => $id_user, // 'ip_address' => array() // ); // // $values['ws_client_id'] = $clientModel->createClient($clientData); $userLdapData = $logic->getLdapData($values['login'], $values['ldapPassword']); $values['first_name'] = $userLdapData['givenname'][0]; $values['surname'] = $userLdapData['sn'][0]; if (!empty($userLdapData['mail'][0])) { $values['email'] = $userLdapData['mail'][0]; } $row = $user->createRow($values); $id_user = $row->save(); $params = $row->getBussinesData(); $profileModel = new Profile(); $branchModel = new Branch(); $branchId = $branchRow->id; $profileRow = $profileModel->createRow(array('id_user' => $id_user, 'id_branch' => 1)); $profileRow->save(); $passwordData['id_user'] = $id_user; $passwordData['password'] = $pass['hashed']; $userPassword = new UserPassword(); $rowPassword = $userPassword->createRow($passwordData); $rowPassword->save(); if ($sendEmail == true) { try { $mailer = new Logic_Mailer(Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view'), $translate); $user_row = $user->findOne($id_user); $mailer->userPass($pass['clean'], $user_row); } catch (Exception $e) { $logger = Zend_Registry::get('logger'); $logger['messages']['User'][$id_user] = 'User ' . $userRow['surname'] . ' ' . $userRow['first_name'] . ' added successful. Mail not sended.'; Zend_Registry::set('logger', $logger); throw new Exception($e->getMessage()); } } $logger = Zend_Registry::get('logger'); $logger['messages']['User'][$id_user] = 'User ' . $userRow['surname'] . ' ' . $userRow['first_name'] . ' added successful.'; Zend_Registry::set('logger', $logger); $dbAdapter->commit(); $log = Zend_Registry::get('admin_log'); $log->profileadd(array('new' => $profileRow)); return true; } else { throw new Logic_User_Exception('Użytkownik o podanym loginie już istnieje'); } } catch (Exception $e) { $dbAdapter->rollBack(); throw new Logic_User_Exception($e->getMessage()); } }