]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/User.php
Allow lookup of User->getByUri (throws NoResultException)
[quix0rs-gnu-social.git] / classes / User.php
index c8b334d489ab76c553f7a27e6601c1cb63c397d3..40e1a1b6443a2503371e1e81c680ea73d26cce58 100644 (file)
@@ -140,6 +140,16 @@ class User extends Managed_DataObject
         return $this->uri;
     }
 
+    static function getByUri($uri)
+    {
+        $user = new User();
+        $user->uri = $uri;
+        if (!$user->find(true)) {
+            throw new NoResultException($user);
+        }
+        return $user;
+    }
+
     public function getNickname()
     {
         return $this->getProfile()->getNickname();
@@ -207,7 +217,7 @@ class User extends Managed_DataObject
      * @return  User object
      * @throws  Exception on failure
      */
-    static function register(array $fields) {
+    static function register(array $fields, $accept_email_fail=false) {
 
         // MAGICALLY put fields into current scope
 
@@ -371,8 +381,15 @@ class User extends Managed_DataObject
 
             $profile->query('COMMIT');
 
-            if (!empty($email) && !$user->email) {
-                mail_confirm_address($user, $confirm->code, $profile->nickname, $email);
+            if (!empty($email) && !empty($user->email)) {
+                try {
+                    mail_confirm_address($user, $confirm->code, $profile->nickname, $email);
+                } catch (EmailException $e) {
+                    common_log(LOG_ERR, "Could not send user registration email for user id=={$user->id}: {$e->getMessage()}");
+                    if (!$accept_email_fail) {
+                        throw $e;
+                    }
+                }
             }
 
             // Welcome message