X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fprofile%2Fjobs.inc.php;h=e2029085cd40a5656f3974a6e8d33b079702a33a;hb=6c21094e45512da7fb1321a1df4335b1d48ed9bd;hp=4726e94cdba07a72e958fb3ff4af526d36b4e5a6;hpb=cafb410fea6f257f45da08631c6cdb5c35f86b17;p=platal.git diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index 4726e94..e202908 100644 --- a/modules/profile/jobs.inc.php +++ b/modules/profile/jobs.inc.php @@ -1,6 +1,6 @@ pid()), array(Phone::LINK_JOB)); while ($phone = $it->next()) { - $jobs[$phone->linkId()]['w_phone'][$phone->id()] = $phone->toFormArray(); + $jobs[$phone->link_id]['w_phone'][$phone->id] = $phone->toFormArray(); } $res = XDB::iterator("SELECT e.jtid, e.full_name, j.jid FROM profile_job_term_enum AS e @@ -224,11 +224,16 @@ class ProfileSettingJob implements ProfileSetting } if (isset($job['removed']) && $job['removed']) { - if ($job['name'] == '' && $entreprise) { - $entreprise[$entr_val - 1]->clean(); + if (S::user()->checkPerms('directory_ax') + && (Phone::hasPrivate($job['w_phone']) || Address::hasPrivate($job['w_address']) || $job['w_email_pub'] == 'private')) { + Platal::page()->trigWarning("L'entreprise ne peut être supprimée car elle contient des informations pour lesquelles vous n'avez le droit d'édition."); + } else { + if ($job['name'] == '' && $entreprise && isset($entreprise[$entr_val - 1])) { + $entreprise[$entr_val - 1]->clean(); + } + unset($value[$key]); + continue; } - unset($value[$key]); - continue; } if (!isset($job['pub']) || !$job['pub']) { $job['pub'] = 'private'; @@ -248,6 +253,7 @@ class ProfileSettingJob implements ProfileSetting $success = ($success && $s); } } + usort($value, 'ProfileVisibility::comparePublicity'); return $value; } @@ -263,7 +269,7 @@ class ProfileSettingJob implements ProfileSetting Phone::deletePhones($page->pid(), Phone::LINK_JOB, null, $deletePrivate); $terms_values = array(); foreach ($value as $id => &$job) { - if (isset($job['name']) && $job['name']) { + if (($job['pub'] != 'private' || $deletePrivate) && (isset($job['name']) && $job['name'])) { if (isset($job['jobid']) && $job['jobid']) { XDB::execute('INSERT INTO profile_job (pid, id, description, email, url, pub, email_pub, jobid) @@ -296,6 +302,9 @@ class ProfileSettingJob implements ProfileSetting VALUES ' . implode(', ', $terms_values) . ' ON DUPLICATE KEY UPDATE computed = VALUES(computed)'); } + if (S::user()->isMe($page->owner) && count($value) > 1) { + Platal::page()->trigWarning('Attention, tu as plusieurs emplois sur ton profil. Pense à supprimer ceux qui sont obsolètes.'); + } } public function getText($value)