/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
-
+
function owner()
{
$p = DB_DataObject::Factory($this->tableName());
}
- if (isset( $_SESSION[get_class($this)][$sesPrefix .'-empty'] ) && $_SESSION[get_class($this)][$sesPrefix .'-empty'] < 1) {
+ if (
+ isset( $_SESSION[get_class($this)][$sesPrefix .'-empty'] ) &&
+ $_SESSION[get_class($this)][$sesPrefix .'-empty'] < 1
+ ) {
// fake person - open system..
//$ce = DB_DataObject::factory('core_enum');
{
//DB_DataObject::DebugLevel(1);
- $core_group_member = DB_DataObject::factory('core_group_member');
- $core_group_member->autoJoin();
- $core_group_member->get(1);
-
- print_R($core_group_member);exit;
-
if (!empty($q['query']['is_owner'])) {
$this->whereAdd(" join_company_id_id.comptype = 'OWNER'");
}
// list all staff who are not in a group.
$this->whereAdd("{$this->tableName()}.id NOT IN (
SELECT distinct(user_id) FROM $tn_gm LEFT JOIN
- $tn_g ON $tn_g.id = $tn_gm.group_id
- WHERE $tn_g.type = ".$q['query']['type']."
- )");
-
+ $tn_g ON $tn_g.id = $tn_gm.group_id)");
} else {
");
}
+ $cgm = DB_DataObject::Factory('core_group_member')->tableName();
+
+ $this->selectAdd("
+ (
+ SELECT GROUP_CONCAT({$cgm}.group_id)
+ FROM
+ {$cgm}
+ WHERE
+ {$cgm}.user_id = {$this->tableName()}.id
+ ) AS membership_list
+
+ ");
+
+
}
function setFromRoo($ar, $roo)
$e->whereAdd('person_id = ' . $this->id);
$g = DB_DataObject::Factory('core_group');
- $g->get('name', 'Administrators');
+ $g->get('name', 'Administrators'); // select * from core_group where name = 'Administrators'
+
$p = DB_DataObject::Factory('core_group_member');
+ $p->setFrom(array(
+ 'user_id' => $this->id,
+ 'group_id' => $g->id
+ ));
- $p->get('user_id', $this->id);
+ if ($p->count()) {
+ $roo->jerr("Please remove this user from the Administrator group before deleting");
+ }
- if ($p->group_id != $g->id) {
- $e->delete(true);
- }
- else{
- $roo->jerr("Can not delete admin user");
- }
+ $p = DB_DataObject::Factory('core_group_member');
+ $p->user_id = $this->id;
+ $mem = $p->fetchAll(); // fetch all the rows and set the $mem variable to the rows data, just like mysqli_fetch_assoc
+ $e->logDeletedRecord($mem);
+
+ foreach($mem as $p) {
+ $p->delete();
+ }
+ $e = DB_DataObject::Factory('Events');
+ $e->person_id = $this->id;
+ $eve = $e->fetchAll(); // fetch all the rows and set the $mem variable to the rows data, just like mysqli_fetch_assoc
+
+ $e->logDeletedRecord($eve);
+ foreach($eve as $e) {
+ $e->delete();
+ }
// anything else?
}
$c->find(true);
$this->company_id = $c->id;
+ $this->email = trim($this->email);
}
function beforeUpdate($old, $q, $roo)
{
- print_r($q);exit;
+
+
if(!empty($q['_generate_oath_key'])){
$o = clone($this);
$this->generateOathKey();
$roo->jok($qrcode);
}
+
+ if(!empty($q['membership_list'])){
+
+
+ if ($roo->authUser->id == $old->id) {
+ // you are editing yourself...
+
+ // if was admin before....
+ // -if new membership does not icnlude admin id
+ // -- then show error
+
+
+ }
+
+
+
+
+
+ $x = PDO_DataObject::factory('core_group_member');
+ $x->select('group_id');
+ $x->user_id = $q['id'];
+
+ $ar = $x->fetchAll('group_id');
+
+ $group_id_arr = explode(",", $q['membership_list']);
+
+ $result_del = array_diff($ar, $group_id_arr);
+
+ // check if id needs to be deleted
+ if(!empty($result_del)){
+ /*
+ $x = PDO_DataObject::factory('core_group_member');
+ $x->user_id = $q['id'];
+ $x->whereAddIn('group_id', $result_del, 'int');
+ foreach($x->fetchAll() as $cgm) {
+ $cgm->delete();
+ }
+
+
+ */
+ foreach($result_del as $group_id){
+ $x = PDO_DataObject::factory('core_group_member');
+ $x->user_id = $q['id'];
+ $x->group_id = $group_id;
+ $x->find(true);
+ $x->delete();
+ }
+ }
+
+ $result_add = array_diff($group_id_arr, $ar);
+
+
+ // insert data into core_person_member...
+ //PDO_DataObject::Factory('coremytable_group_member')->set([ 'group_id' => 'test', 'user_id' => "{$this->tableName()}.id"])->insert();
+ if(!empty($result_add)){
+ foreach($result_add as $gid){
+ PDO_DataObject::Factory('core_group_member')->set(array(
+ 'group_id'=> $gid,
+ 'user_id' => $q['id']
+ ))->insert();
+ }
+ }
+ }
+ $this->email = trim($this->email);
}
function generateOathKey()