$display['msg'] .= display_err_msg($l_no_group_added); } } else { $display['msg'] .= display_warn_msg($err['msg']); } $display['detail'] = dis_group_consult($params, $obm['uid']); } elseif ($action == 'group_del') { /////////////////////////////////////////////////////////////////////////////// if (check_group_update_rights($params)) { if ($params['group_nb'] > 0) { $nb = run_query_group_group_delete($params); // Set update state only if updated group is public $g = get_group_info($params['group_id']); if ($g['privacy'] == 0) { set_update_state(); } $display['msg'] .= display_ok_msg("$nb $l_group_removed"); } else { $display['msg'] .= display_err_msg($l_no_group_deleted); } } else { $display['msg'] .= display_warn_msg($err['msg']); } $display['detail'] = dis_group_consult($params, $obm['uid']); } else if ($action == 'display') { /////////////////////////////////////////////////////////////////////////////// $prefs = get_display_pref($obm['uid'], 'group', 1); $prefs_u = get_display_pref($obm['uid'], 'group_user', 1); $display['detail'] = dis_group_display_pref($prefs, $prefs_u);
/** * Force synchronization of external repositories, such as the OBM LDAP directory, * with new informations provides by LemonLDAP. * User data are synchronized, like groups and user password. * @param $user_id * @param $domain_id * @param $username Login of the user */ protected function syncExternalData ($user_id, $domain_id, $username) { global $obm, $entities; // // $entities is defined into the file package.inc.php, from // this LemonLDAP library. It is temporary. // if (!$this->isEnabled()) { return false; } // // Fixe parameters. // $params['domain_id'] = $domain_id; $params['update_type'] = 'incremental'; $params['realm'] = 'domain'; $backup['uid'] = $obm['uid']; $obm['uid'] = $user_id; // // Launch external update. This could take few seconds. // set_update_lock(); set_update_state($domain_id); store_update_data($params); exec_tools_update_update($params); remove_update_lock(); $obm['uid'] = $backup['uid']; unset($backup); }
/** * Update group information. * @param $group_name A group name. * @param $domain_id A valid domain identifier. * @param $user_id A valid user identifier. * @param $group_id The corresponding group identifier. * @param $group_data Associative array of group data, included group_id. * @return int The group identifier updated. */ function updateGroup($group_name, $group_id, $group_data, $user_id, $domain_id) { global $obm, $perm; $succeed = false; $params_db = $this->getGroupDataFromId($group_id, $domain_id); foreach ($params_db as $key => $value) { if (array_key_exists($key, $group_data)) $params_db[$key] = $group_data[$key]; } $params_db = $this->_setDefaultGroupData($params_db, $domain_id, $user_id); $params_db['action'] = DEFAULT_OBM_MODTYPE_UPDATE; $backup['obm_uid'] = $obm['uid']; $backup['obm_domain_id'] = $obm['domain_id']; $backup['globals_module'] = $GLOBALS['module']; $backup['perm'] = $perm; $obm['domain_id'] = $domain_id; $obm['uid'] = $params_db[$this->_sqlMap['group_usercreate']]; $GLOBALS['module'] = 'group'; $perm = new LemonLDAP_Perm(); if (check_group_data_form($params_db) && run_query_group_update($params_db)) { set_update_state(); $succeed = $group_id; $this->_updated = true; } $obm['uid'] = $backup['obm_uid']; $obm['domain_id'] = $backup['obm_domain_id']; $GLOBALS['module'] = $backup['globals_module']; $perm = $backup['perm']; unset($backup); return $succeed; }
if(!exec_tools_cancel_update($params)) { echo "({error:1,message:'".phpStringToJsString($GLOBALS['l_cant_undo_'.$params['state'].'_'.$params['entity']])."'})"; } else { echo "({error:0,message:'".phpStringToJsString($GLOBALS['l_undo_success'])."'})"; } die(); } elseif ($action == 'update_detail') { /////////////////////////////////////////////////////////////////////////////// $display['detail'] = dis_tools_update_detail(); } elseif ($action == 'update_update') { /////////////////////////////////////////////////////////////////////////////// if (check_tools_update_context_ok($params)) { set_update_lock(); set_update_state($params['domain_id']); store_update_data($params); run_query_tools_init_progress(); $res = exec_tools_update_update($params); if ($res === 0) { $display['msg'] .= display_ok_msg($l_upd_running); $display['detail'] = dis_tools_update_detail(); remove_update_lock(); } else { $display['msg'] .= display_err_msg("$l_upd_error ($res)"); remove_update_lock(); $display['detail'] = dis_tools_update_detail(); } } else { // Si le contexte ne permet pas une modification de configuration $display['msg'] .= display_warn_msg($err['msg']);
private static function storeCoords($contact) { global $cdg_sql; $id = sql_parse_id($contact->__get('entity_id')); $obm_q = new DB_OBM; $query = "DELETE FROM Phone WHERE phone_entity_id = $id"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(phone)'); $obm_q->query($query); if(is_array($contact->phone)) { $cpt = array(); foreach($contact->phone as $phone) { if(trim($phone['number']) != '' ) { if(is_array($phone['label'])) { array_pop($phone['label']); $phone['label'] = implode(';',$phone['label']); } else { $phone['label'] = str_replace('_', ';', $phone['label']); } $cpt[$phone['label']]++; $query = "INSERT INTO Phone (phone_entity_id, phone_number, phone_label) VALUES ($id, '$phone[number]', '$phone[label];X-OBM-Ref".$cpt[$phone['label']]."')"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(phone)'); $obm_q->query($query); } } } $query = "DELETE FROM Address WHERE address_entity_id = $id"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(address)'); $obm_q->query($query); if(is_array($contact->address)) { $cpt = array(); foreach($contact->address as $address) { if(trim($address['country_iso3166']) == 'none') $address['country_iso3166'] = ''; if(trim($address['country_iso3166']) == '' && trim($address['country']) != '') { $address['country_iso3166'] = self::getCountryIso3166($address['country']); } if(trim($address['street']) != '' || trim($address['country_iso3166']) != '' || trim($address['zipcode']) != '' || trim($address['expresspostal']) != '') { if(is_array($address['label'])) { array_pop($address['label']); $address['label'] = implode(';',$address['label']); } else { $address['label'] = str_replace('_', ';', $address['label']); } $cpt[$address['label']]++; $query = "INSERT INTO Address ( address_entity_id, address_street, address_zipcode, address_town, address_expresspostal, address_country, address_label ) VALUES ( $id, '".addslashes($address[street])."', '".addslashes($address[zipcode])."', '".addslashes($address[town])."', '".addslashes($address[expresspostal])."', '$address[country_iso3166]', '$address[label];X-OBM-Ref".$cpt[$address['label']]."' )"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(address)'); $obm_q->query($query); } } } $query = "DELETE FROM Website WHERE website_entity_id = $id"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(website)'); $obm_q->query($query); if(is_array($contact->website)) { $cpt = array(); foreach($contact->website as $website) { if(trim($website['url']) != '' ) { if(is_array($website['label'])) { array_pop($website['label']); $website['label'] = implode(';',$website['label']); } else { $website['label'] = str_replace('_', ';', $website['label']); } $cpt[$website['label']]++; $query = "INSERT INTO Website (website_entity_id, website_url, website_label) VALUES ($id, '".addslashes($website[url])."', '$website[label];X-OBM-Ref".$cpt[$website['label']]."')"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(website)'); $obm_q->query($query); } } } $query = "DELETE FROM IM WHERE im_entity_id = $id"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(IM)'); $obm_q->query($query); if(is_array($contact->im)) { $cpt = array(); foreach($contact->im as $im) { if(trim($im['address']) != '' ) { $cpt[$im['protocol']]++; $query = "INSERT INTO IM (im_entity_id, im_address, im_protocol, im_label) VALUES ($id, '".addslashes($im[address])."', '$im[protocol]', '$im[protocol];X-OBM-Ref".$cpt[$im['protocol']]."')"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(IM)'); $obm_q->query($query); } } } $query = "DELETE FROM Email WHERE email_entity_id = $id"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(Email)'); $obm_q->query($query); if($obm_q->affected_rows() > 0) $updateGroup = true; if(is_array($contact->email)) { $cpt = array(); foreach($contact->email as $email) { $updateGroup = true; if(trim($email['address']) != '' ) { if(is_array($email['label'])) { array_pop($email['label']); $email['label'] = implode(';',$email['label']); } else { $email['label'] = str_replace('_', ';', $email['label']); } $cpt[$email['label']]++; $query = "INSERT INTO Email (email_entity_id, email_address, email_label) VALUES ($id, '".trim($email['address'])."', '$email[label];X-OBM-Ref".$cpt[$email['label']]."')"; display_debug_msg($query, $cdg_sql, 'OBM_Contact::storeCoords(Email)'); $obm_q->query($query); } } } if($updateGroup) { $obm_q->query("UPDATE UGroup SET group_timeupdate = NOW() WHERE group_id IN (SELECT group_id FROM _contactgroup WHERE contact_id = ".$contact->id.")"); set_update_state(); } }