function core_dimensions_after_user_add($object, $ignored) { // if contact is user then add new member also to users dimension if ($object instanceof Contact) { /* @var $object Contact */ core_dim_add_new_contact_to_person_dimension($object); /* $user_ot = ObjectTypes::findOne(array("conditions" => "`name` = 'user'")); $company_ot = ObjectTypes::findOne(array("conditions" => "`name` = 'company'")); $user_dim = Dimensions::findOne(array("conditions" => "`code` = 'feng_users'")); if ($user_ot instanceof ObjectType && $user_dim instanceof Dimension) { $member = new Member(); $member->setName($object->getObjectName()); $member->setObjectTypeId($user_ot->getId()); $member->setDimensionId($user_dim->getId()); $parent_member_id = 0; $depth = 1; if ($object->getCompanyId() > 0) { $pmember = Members::findOne(array('conditions' => '`object_id` = '.$object->getCompanyId().' AND `object_type_id` = '.$company_ot->getId(). ' AND `dimension_id` = '.$user_dim->getId())); if (!$pmember instanceof Member) { // if company member does not exists in users dimension -> create it $company = Contacts::findById($object->getCompanyId()); $pmember = core_dim_add_company_to_users_dimension($company, $user_dim, $company_ot); } $parent_member_id = $pmember->getId(); $depth = $pmember->getDepth() + 1; } $member->setDepth($depth); $member->setParentMemberId($parent_member_id); $member->setObjectId($object->getId()); $member->save(); // permisssions $sql = "INSERT INTO `".TABLE_PREFIX."contact_dimension_permissions` (`permission_group_id`, `dimension_id`, `permission_type`) SELECT `c`.`permission_group_id`, ".$user_dim->getId().", 'check' FROM `".TABLE_PREFIX."contacts` `c` WHERE `c`.`is_company`=0 AND `c`.`user_type`!=0 AND `c`.`disabled`=0 AND `c`.`object_id`=".$object->getId()." ON DUPLICATE KEY UPDATE `dimension_id`=`dimension_id`;"; DB::execute($sql); $sql = "INSERT INTO `".TABLE_PREFIX."contact_member_permissions` (`permission_group_id`, `member_id`, `object_type_id`, `can_write`, `can_delete`) SELECT `c`.`permission_group_id`, ".$member->getId().", `ot`.`id`, (`c`.`object_id` = ".$object->getId().") as `can_write`, (`c`.`object_id` = ".$object->getId().") as `can_delete` FROM `".TABLE_PREFIX."contacts` `c` JOIN `".TABLE_PREFIX."object_types` `ot` WHERE `c`.`is_company`=0 AND `c`.`object_id`=".$object->getId()." AND `c`.`user_type`!=0 AND `c`.`disabled`=0 AND `ot`.`type` IN ('content_object', 'located', 'comment') ON DUPLICATE KEY UPDATE `member_id`=`member_id`;"; DB::execute($sql); // my stuff $ws_ot = ObjectTypes::findOne(array("conditions" => "`name` = 'workspace'")); $stuff = new Member(); $stuff->setName(lang('my stuff')); $stuff->setObjectTypeId($ws_ot->getId()); $stuff->setDimensionId($user_dim->getId()); $stuff->setDepth($member->getDepth() + 1); $stuff->setParentMemberId($member->getId()); $stuff->save(); $object->setPersonalMemberId($stuff->getId()); $object->save(); $sql = "INSERT INTO `".TABLE_PREFIX."contact_member_permissions` (`permission_group_id`, `member_id`, `object_type_id`, `can_write`, `can_delete`) SELECT ".$object->getPermissionGroupId().", ".$stuff->getId().", `ot`.`id`, 1, 1 FROM `".TABLE_PREFIX."object_types` `ot` WHERE `ot`.`type` IN ('content_object', 'located', 'comment') ON DUPLICATE KEY UPDATE `member_id`=`member_id`;"; DB::execute($sql); evt_add("reload dimension tree", $member->getDimensionId()); } */ } }
function core_dimensions_after_user_add($object, $ignored) { if ($object instanceof Contact) { core_dim_add_new_contact_to_person_dimension($object); } }