DataObjects/Core_person_signup.php
[Pman.Core] / DataObjects / Core_person_signup.php
index 42c3d21..cc3829a 100644 (file)
@@ -1,10 +1,10 @@
 <?php
+
 /**
  * Table Definition for Person
  */
 require_once 'DB/DataObject.php';
 
-
 class Pman_Core_DataObjects_Core_person_signup extends DB_DataObject 
 {
     ###START_AUTOCODE
@@ -13,51 +13,89 @@ class Pman_Core_DataObjects_Core_person_signup extends DB_DataObject
     public $__table = 'core_person_signup';                          // table name
     public $id;                              // int(11)  not_null primary_key auto_increment
     public $email;                           // string(128)  not_null
-    
-    //public $name;                            // string(128)  not_null
+    public $name;                            // string(128)  not_null
     public $firstname;                            // string(128)  not_null
     public $lastname;                            // string(128)  not_null
-    //public $firstname_alt;                            // string(128)  not_null
-    //public $lastname_alt;                            // string(128)  not_null
-    
-    
+    public $firstname_alt;                            // string(128)  not_null
+    public $lastname_alt;                            // string(128)  not_null
     public $honor;                            // string(128)  not_null
     public $verify_key;                      // int(11)
     public $verified;
-    
-
     public $created_dt;                      // datetime(19)  binary
 
-    
-    
-    
-    
-    function verify($key)
+    function verify($key) 
     {
         // if key matches verify_key
         // copy into person or other entity...
         // and delete....
-        $this->whereAdd("verify_key = '".$key."'");
-        if($this->count() > 0 ){
-            $row = $this->fetch();
+        if ($this->get("verify_key", $key)) {
             $p = DB_DataObject::factory('person');
-            $p->honor = $row->honor;
-            $p->name = $row->name;
-            $p->email = $row->email;
-            $p->firstname = $row->firstname;
-            $p->lastname = $row->lastname;
-            $p->firstname_alt = $row->firstname_alt;
-            $p->lastname_alt = $row->lastname_alt;
-            $temp_pwd = $p->generatePassword();
-            //$temp_pwd = mt_rand(100000,999999);
-            //$p->passwd = $temp_pwd;
-            if($p->insert()){
+            $p->setFrom(array(
+                'honor' => $this->honor,
+                'name' => $this->name,
+                'email' => $this->email,
+                'firstname' => $this->firstname,
+                'lastname' => $this->lastname,
+                'firstname_alt' => $this->firstname_alt,
+                'lastname_alt' => $this->lastname_alt));
+
+            if ($p->insert()) {
+
+                $temp_pwd = $p->generatePassword();
+
                 $this->delete();
+
+                //login
+                @session_start();
+
+                $_SESSION['Hydra']['authUser'] = $p ? serialize($p) : false;
+
+                //mail pwd
+                $c = DB_DataObject::factory('core_email');
+                if (!$c->get('name', 'CORE_PERSON_SIGNUP_CONGRATULATION')) {
+                    $this->jerr("can not find template");
+                }
+                $ret = $c->send(array(
+                    'rcpts' => $this->email,
+                    'honor' => $this->honor . ". " . $this->lastname,
+                    'password' => $temp_pwd
+                        ), true);
+
+                if (is_object($ret)) {
+                    return false;
+                }
+                return true;
+            } else {
+                return false;
             }
         }
-        
+        return false;
+    }
+
+    function convertTo($table) 
+    {
+        $t = DB_DataObject::factory($table);
+        $ret = $t->get('email', $this->email);
+        if ($ret != 0) {
+            return false;
+        } else {
+            $t->setFrom(array(
+                'honor' => $this->honor,
+                'name' => $this->name,
+                'email' => $this->email,
+                'firstname' => $this->firstname,
+                'lastname' => $this->lastname,
+                'firstname_alt' => $this->firstname_alt,
+                'lastname_alt' => $this->lastname_alt));
+
+            $t->insert();
+            return true;
+        }
+    }
+
+    function sendMail()
+    {
         
     }
 }
 
-    
\ No newline at end of file