public function Register($username, $email, $firstName, $lastName, $password, $timezone, $language, $homepageId, $additionalFields = array(), $attributeValues = array(), $groups = null) { $encryptedPassword = $this->_passwordEncryption->EncryptPassword($password); $attributes = new UserAttribute($additionalFields); if ($this->CreatePending()) { $user = User::CreatePending($firstName, $lastName, $email, $username, $language, $timezone, $encryptedPassword->EncryptedPassword(), $encryptedPassword->Salt(), $homepageId); } else { $user = User::Create($firstName, $lastName, $email, $username, $language, $timezone, $encryptedPassword->EncryptedPassword(), $encryptedPassword->Salt(), $homepageId); } $user->ChangeAttributes($attributes->Get(UserAttribute::Phone), $attributes->Get(UserAttribute::Organization), $attributes->Get(UserAttribute::Position)); $user->ChangeCustomAttributes($attributeValues); if ($groups != null) { $user->WithGroups($groups); } if (Configuration::Instance()->GetKey(ConfigKeys::REGISTRATION_AUTO_SUBSCRIBE_EMAIL, new BooleanConverter())) { foreach (ReservationEvent::AllEvents() as $event) { $user->ChangeEmailPreference($event, true); } } $userId = $this->_userRepository->Add($user); $this->AutoAssignPermissions($userId); if (Configuration::Instance()->GetKey(ConfigKeys::REGISTRATION_NOTIFY, new BooleanConverter())) { ServiceLocator::GetEmailService()->Send(new AccountCreationEmail($user, ServiceLocator::GetServer()->GetUserSession())); } return $user; }
public function Register($username, $email, $firstName, $lastName, $password, $timezone, $language, $homepageId, $additionalFields = array(), $attributeValues = array()) { $encryptedPassword = $this->_passwordEncryption->EncryptPassword($password); $attributes = new UserAttribute($additionalFields); if ($this->CreatePending()) { $user = User::CreatePending($firstName, $lastName, $email, $username, $language, $timezone, $encryptedPassword->EncryptedPassword(), $encryptedPassword->Salt(), $homepageId); } else { $user = User::Create($firstName, $lastName, $email, $username, $language, $timezone, $encryptedPassword->EncryptedPassword(), $encryptedPassword->Salt(), $homepageId); } $user->ChangeAttributes($attributes->Get(UserAttribute::Phone), $attributes->Get(UserAttribute::Organization), $attributes->Get(UserAttribute::Position)); $user->ChangeCustomAttributes($attributeValues); if (Configuration::Instance()->GetKey(ConfigKeys::REGISTRATION_AUTO_SUBSCRIBE_EMAIL, new BooleanConverter())) { foreach (ReservationEvent::AllEvents() as $event) { $user->ChangeEmailPreference($event, true); } } $userId = $this->_userRepository->Add($user); $this->AutoAssignPermissions($userId); $addgroupname = Configuration::Instance()->GetKey(ConfigKeys::NEW_USER_GROUP); // Match group name to group_id $addgroupid_res = ServiceLocator::GetDatabase()->Query(new AdHocCommand("select group_id from groups where name = '{$addgroupname}'")); while ($row = $addgroupid_res->GetRow()) { $addgroupid = $row['group_id']; } //Add user to group if ($addgroupid != NULL) { ServiceLocator::GetDatabase()->Execute(new AdHocCommand("insert into user_groups(user_id, group_id) VALUES ({$userId}, {$addgroupid})")); } return $user; }
public function UpdateUser($userId, $username, $email, $firstName, $lastName, $timezone, $extraAttributes) { $attributes = new UserAttribute($extraAttributes); $user = $this->userRepository->LoadById($userId); $user->ChangeName($firstName, $lastName); $user->ChangeEmailAddress($email); $user->ChangeUsername($username); $user->ChangeTimezone($timezone); $user->ChangeAttributes($attributes->Get(UserAttribute::Phone), $attributes->Get(UserAttribute::Organization), $attributes->Get(UserAttribute::Position)); $this->userRepository->Update($user); return $user; }