/** * creates a user from email if exists doesn't... * @param string $email * @param string $name * @param string $password * @return Model_User */ public static function create_email($email, $name = NULL, $password = NULL) { $user = new self(); $user->where('email', '=', $email)->limit(1)->find(); if (!$user->loaded()) { if ($password === NULL) { $password = Text::random('alnum', 8); } $user->email = $email; $user->name = ($name === NULL or !isset($name)) ? substr($email, 0, strpos($email, '@')) : $name; $user->status = self::STATUS_ACTIVE; $user->id_role = Model_Role::ROLE_USER; $user->seoname = $user->gen_seo_title($user->name); $user->password = $password; $user->subscriber = 1; $user->last_ip = ip2long(Request::$client_ip); $user->country = euvat::country_code(); //geo info EU try { $user->save(); //send welcome email $url = $user->ql('oc-panel', array('controller' => 'profile', 'action' => 'edit'), TRUE); $user->email('auth-register', array('[USER.PWD]' => $password, '[URL.QL]' => $url)); } catch (ORM_Validation_Exception $e) { throw HTTP_Exception::factory(500, $e->getMessage()); } } return $user; }
/** * creates a user from email if exists doesn't... * @param string $email * @param string $name * @param string $password * @return Model_User */ public static function create_user($email, $name = NULL, $password = NULL) { $user = new self(); $user->where('email', '=', $email)->limit(1)->find(); if (!$user->loaded()) { if ($password === NULL) { $password = Text::random('alnum', 8); } $user->email = $email; $user->name = ($name === NULL or !isset($name)) ? substr($email, 0, strpos($email, '@')) : $name; $user->status = self::STATUS_ACTIVE; $user->id_role = Model_Role::ROLE_USER; $user->seoname = $user->gen_seo_title($user->name); $user->password = $password; $user->subscriber = 1; try { $user->save(); } catch (ORM_Validation_Exception $e) { throw HTTP_Exception::factory(500, $e->getMessage()); } } return $user; }
/** * creates a User from social data * @param string $email * @param string $name * @param string $provider * @param mixed $identifier * @return Model_User */ public static function create_social($email, $name = NULL, $provider, $identifier) { $user = new self(); $user->where('email', '=', $email)->limit(1)->find(); //doesnt exists if (!$user->loaded()) { $user->email = $email; $user->name = $name; $user->status = self::STATUS_ACTIVE; $user->id_role = 1; $user->seoname = $user->gen_seo_title($user->name); $user->password = Text::random('alnum', 8); } //always we set this values even if user existed $user->hybridauth_provider_name = $provider; $user->hybridauth_provider_uid = $identifier; try { $user->save(); } catch (ORM_Validation_Exception $e) { d($e->errors('')); } return $user; }