public function info() { $user = User::getInstanceById((int) $this->request->get('id'), ActiveRecord::LOAD_DATA, array('UserGroup')); $availableUserGroups = array('' => $this->translate('_default_user_group')); foreach (UserGroup::getRecordSet(new ARSelectFilter()) as $group) { $availableUserGroups[$group->getID()] = $group->name->get(); } $response = new ActionResponse(); $response->set('countries', array_merge(array('' => ''), $this->application->getEnabledCountries())); $form = self::createUserForm($this, $user, $response); $response->set('form', $form); $response->set('shippingAddressStates', State::getStatesByCountry($form->get('shippingAddress_countryID'))); $response->set('billingAddressStates', State::getStatesByCountry($form->get('billingAddress_countryID'))); $user->loadAddresses(); $response->set('someUser', $user->toArray()); $response->set('availableUserGroups', $availableUserGroups); BackendToolbarItem::registerLastViewedUser($user); return $response; }
/** * Get current user (from session) * @return User */ public static function getUser() { if (!empty(self::$currentUser)) { return self::$currentUser; } $session = new Session(); $id = $session->get('User'); $app = ActiveRecordModel::getApplication(); if (!$id) { $user = self::getAnonymousUser(); } else { $user = User::getInstanceById($id); // set user's prefered locale code $reqLang = $app->getRequest()->get('requestLanguage'); $localeCode = $reqLang ? $reqLang : $app->getLocaleCode(); try { if ($session->get('userLocale') != $localeCode) { $user->load(); $user->locale->set($localeCode); $user->save(); $session->set('userLocale', $localeCode); } if (!$session->isValueSet('UserGroup') || is_null($session->get('UserGroup'))) { $user->load(); $group = $user->userGroup->get() ? $user->userGroup->get()->getID() : 0; $session->set('UserGroup', $group); } $user->userGroup->set(UserGroup::getInstanceByID($session->get('UserGroup'))); } catch (ARNotFoundException $e) { $user = self::getAnonymousUser(); } } if ($app->getSessionHandler()) { $app->getSessionHandler()->setUser($user); } return $user; }
public function getNextBillingAddress() { if (!($data = $this->loadRecord('SELECT * FROM ' . $this->getTablePrefix() . 'address_book LEFT JOIN ' . $this->getTablePrefix() . 'countries ON ' . $this->getTablePrefix() . 'address_book.entry_country_id=' . $this->getTablePrefix() . 'countries.countries_id LEFT JOIN ' . $this->getTablePrefix() . 'customers ON ' . $this->getTablePrefix() . 'address_book.customers_id=' . $this->getTablePrefix() . 'customers.customers_id WHERE ' . $this->getTablePrefix() . 'customers.customers_id IS NOT NULL'))) { return null; } $address = $this->getUserAddress($data, 'entry_'); $address->countryID->set($data['countries_iso_code_2']); return BillingAddress::getNewInstance(User::getInstanceById($this->getRealId('User', $data['customers_id'])), $address); }