DataObjects/Core_company.php
[Pman.Core] / DataObjects / Core_person.php
index b93c6c1..635ff1c 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Table Definition for Person
  */
-require_once 'DB/DataObject.php';
+class_exists('DB_DataObject') ? '' : require_once 'DB/DataObject.php';
 
 
 class Pman_Core_DataObjects_Core_person extends DB_DataObject 
@@ -293,8 +293,9 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             $_SESSION[get_class($this)][$sesPrefix .'-auth'] = serialize($u);
             return true; 
         }
-        
+        //die("test init");
         if (!$this->canInitializeSystem()) {
+          //  die("can not init");
             return false;
         }
         
@@ -307,10 +308,10 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             ($_SERVER['SERVER_ADDR'] == '127.0.0.1') &&
             ($_SERVER['REMOTE_ADDR'] == '127.0.0.1')  
         ) {
-            $group = DB_DataObject::factory('Groups');
+            $group = DB_DataObject::factory('core_group');
             $group->get('name', 'Administrators');
             
-            $member = DB_DataObject::factory('group_members');
+            $member = DB_DataObject::factory('core_group_member');
             $member->autoJoin();
             $member->group_id = $group->id;
             $member->whereAdd("
@@ -364,6 +365,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
     
     function canInitializeSystem()
     {
+        
         return !strcasecmp(get_class($this) , __CLASS__);
     }
     
@@ -425,7 +427,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             $u->id = -1;
             
             // if a company has been created fill that in in company_id_id
-            $c = DB_DAtaObject::factory('Companies')->lookupOwner();
+            $c = DB_DAtaObject::factory('core_company')->lookupOwner();
             if ($c) {
                 $u->company_id_id = $c->pid();
                 $u->company_id = $c->pid();
@@ -449,13 +451,13 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
          
         // refresh admin group if we are logged in as one..
         //DB_DataObject::debugLevel(1);
-        $g = DB_DataObject::factory('Groups');
+        $g = DB_DataObject::factory('core_group');
         $g->type = 0;
         $g->get('name', 'Administrators');
-        $gm = DB_DataObject::Factory('group_members');
+        $gm = DB_DataObject::Factory('core_group_member');
         if (in_array($g->id,$gm->listGroupMembership($this))) {
             // refresh admin groups.
-            $gr = DB_DataObject::Factory('group_rights');
+            $gr = DB_DataObject::Factory('core_group_right');
             $gr->applyDefs($g, 0);
         }
         
@@ -532,7 +534,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
     
     function company()
     {
-        $x = DB_DataObject::factory('Companies');
+        $x = DB_DataObject::factory('core_company');
         $x->autoJoin();
         $x->get($this->company_id);
         return $x;
@@ -579,7 +581,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         
         
         //DB_DataObject::debugLevel(1);
-        $c = DB_Dataobject::factory('Companies');
+        $c = DB_Dataobject::factory('core_company');
         $im = DB_Dataobject::factory('Images');
         $c->joinAdd($im, 'LEFT');
         $c->selectAdd();
@@ -594,7 +596,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         if (empty($c->company_id_logo_id_id))  {
                  
             $im = DB_Dataobject::factory('Images');
-            $im->ontable = 'Companies';
+            $im->ontable = DB_DataObject::factory('core_company')->tableName();
             $im->onid = $c->id;
             $im->imgtype = 'LOGO';
             $im->limit(1);
@@ -610,7 +612,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
       
         // perms + groups.
         $aur['perms']  = $this->getPerms();
-        $g = DB_DataObject::Factory('group_members');
+        $g = DB_DataObject::Factory('core_group_member');
         $aur['groups']  = $g->listGroupMembership($this, 'name');
         
         $aur['passwd'] = '';
@@ -629,7 +631,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         
         // ------ INIITIALIZE IF NO GROUPS ARE SET UP.
         
-        $g = DB_DataObject::Factory('group_rights');
+        $g = DB_DataObject::Factory('core_group_right');
         if (!$g->count()) {
             $g->genDefault();
         }
@@ -638,13 +640,13 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             return $g->adminRights(); // system is not set up - so they get full rights.
         }
         //DB_DataObject::debugLevel(1);
-        $g = DB_DataObject::Factory('group_members');
+        $g = DB_DataObject::Factory('core_group_member');
         $g->whereAdd('group_id is NOT NULL AND user_id IS NOT NULL');
         if (!$g->count()) {
             // add the current user to the admin group..
-            $g = DB_DataObject::Factory('Groups');
+            $g = DB_DataObject::Factory('core_group');
             if ($g->get('name', 'Administrators')) {
-                $gm = DB_DataObject::Factory('group_members');
+                $gm = DB_DataObject::Factory('core_group_member');
                 $gm->group_id = $g->id;
                 $gm->user_id = $this->id;
                 $gm->insert();
@@ -654,14 +656,14 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         
         // ------ STANDARD PERMISSION HANDLING.
         $isOwner = $this->company()->comptype == 'OWNER';
-        $g = DB_DataObject::Factory('group_members');
+        $g = DB_DataObject::Factory('core_group_member');
         $grps = $g->listGroupMembership($this);
        //var_dump($grps);
-        $isAdmin = $g->inAdmin;
+        $isAdmin = $g->inAdmin;   //???  what???
         //echo '<PRE>'; print_r($grps);var_dump($isAdmin);
         // the load all the perms for those groups, and add them all together..
         // then load all those 
-        $g = DB_DataObject::Factory('group_rights');
+        $g = DB_DataObject::Factory('core_group_right');
         $ret =  $g->listPermsFromGroupIds($grps, $isAdmin, $isOwner);
         //echo '<PRE>';print_r($ret);
         return $ret;
@@ -676,9 +678,9 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
     
     function groups($what=false)
     {
-        $g = DB_DataObject::Factory('group_members');
+        $g = DB_DataObject::Factory('core_group_member');
         $grps = $g->listGroupMembership($this);
-        $g = DB_DataObject::Factory('Groups');
+        $g = DB_DataObject::Factory('core_group');
         $g->whereAddIn('id', $grps, 'int');
         return $g->fetchAll($what);
         
@@ -761,8 +763,8 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             $this->active = 1;
         }
         $tn_p = $this->tableName();
-        $tn_gm = DB_DataObject::Factory('group_members')->tableName();
-        $tn_g = DB_DataObject::Factory('Groups')->tableName();
+        $tn_gm = DB_DataObject::Factory('core_group_member')->tableName();
+        $tn_g = DB_DataObject::Factory('core_group')->tableName();
 
         ///---------------- Group views --------
         if (!empty($q['query']['in_group'])) {
@@ -801,7 +803,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             
             // specific to project directory which is single comp. login
             //
-            $owncomp = DB_DataObject::Factory('Companies');
+            $owncomp = DB_DataObject::Factory('core_company');
             $owncomp->get('comptype', 'OWNER');
             if ($q['company_id'] == $owncomp->id) {
                 $this->active =1;
@@ -964,7 +966,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
     }
     function setFromRoo($ar, $roo)
     {
-        $this->setFrom($ar);
+         $this->setFrom($ar);
         if (!empty($ar['passwd1'])) {
             $this->setPassword($ar['passwd1']);
         }
@@ -1029,7 +1031,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         }
         
         // determine if it's staff!!!
-        $owncomp = DB_DataObject::Factory('Companies');
+        $owncomp = DB_DataObject::Factory('core_company');
         $owncomp->get('comptype', 'OWNER');
         $isStaff = ($au->company_id ==  $owncomp->id);
        
@@ -1081,11 +1083,11 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
     
     function beforeInsert($req, $roo)
     {
-        $p = DB_DataObject::factory('person');
+        $p = DB_DataObject::factory('core_person');
         if ($roo->authUser->id > -1 ||  $p->count() > 1) {
             return;
         }
-        $c = DB_DAtaObject::Factory('Companies');
+        $c = DB_DAtaObject::Factory('core_company');
         $tc =$c->count();
         if (!$tc || $tc> 1) {
             $roo->jerr("can not create initial user as multiple companies already exist");
@@ -1098,17 +1100,17 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
     function onInsert($req, $roo)
     {
          
-        $p = DB_DataObject::factory('person');
+        $p = DB_DataObject::factory('core_person');
         if ($roo->authUser->id < 0 && $p->count() == 1) {
             // this seems a bit risky...
             
-            $g = DB_DataObject::factory('Groups');
+            $g = DB_DataObject::factory('core_group');
             $g->initGroups();
             
             $g->type = 0;
             $g->get('name', 'Administrators');
             
-            $p = DB_DataObject::factory('group_members');
+            $p = DB_DataObject::factory('core_group_member');
             $p->group_id = $g->id;
             $p->user_id = $this->id;     
             if (!$p->count()) {
@@ -1138,16 +1140,16 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         if (!is_array($persons) || empty($persons)) {
             $roo->jerr("error in the person data. - empty on not valid");
         }
-        DB_DataObject::factory('groups')->initGroups();
+        DB_DataObject::factory('core_group')->initGroups();
         
         foreach($persons as $person){
-            $p = DB_DataObject::factory('person');
+            $p = DB_DataObject::factory('core_person');
             if($p->get('name', $person['name'])){
                 continue;
             }
             $p->setFrom($person);
             
-            $companies = DB_DataObject::factory('companies');
+            $companies = DB_DataObject::factory('core_company');
             if(!$companies->get('comptype', 'OWNER')){
                 $roo->jerr("Missing OWNER companies!");
             }
@@ -1160,11 +1162,11 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
             // if $person->groups is set.. then
             // add this person to that group eg. groups : [ 'Administrator' ] 
             if(!empty($person['groups'])){
-                $groups = DB_DataObject::factory('groups');
+                $groups = DB_DataObject::factory('core_group');
                 if(!$groups->get('name', $person['groups'])){
                     $roo->jerr("Missing groups : {$person['groups']}");
                 }
-                $gm = DB_DataObject::factory('group_members');
+                $gm = DB_DataObject::factory('core_group_member');
                 $gm->change($p, $groups, true);
             }
             
@@ -1213,4 +1215,26 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject
         return $sesPrefix;
     }
     
+    function loginPublic()
+    {
+        $this->isAuth(); // force session start..
+         
+        $db = $this->getDatabaseConnection();
+        
+        $ff = HTML_FlexyFramework::get();
+        
+        if(empty($ff->Pman) || empty($ff->Pman['login_public'])){
+            return false;
+        }
+        
+        $sesPrefix = $ff->Pman['login_public'] . '-' .get_class($this) .'-'.$db->dsn['database'] ;
+        
+        $p = DB_DAtaObject::Factory($this->tableName());
+        $p->get($this->pid());
+        
+        $_SESSION[get_class($this)][$sesPrefix .'-auth'] = serialize((object)$p->toArray());
+        
+        return true;
+    }
+    
  }