X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fjobs.inc.php;h=eada2bdcfa78b4f72c89956d8f907a59eb648383;hb=92ac93ec91a6e7b0f00fd21c6d19c31d46fe9f52;hp=37b8f3d9da9e556fdb78c4f2ec6afc3c3400c956;hpb=87c297112074d1da4773359b7c9d17d5fab0ff1b;p=platal.git diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index 37b8f3d..eada2bd 100644 --- a/modules/profile/jobs.inc.php +++ b/modules/profile/jobs.inc.php @@ -86,11 +86,11 @@ class ProfileSettingJob implements ProfileSetting $backtrack[$job['id']] = $key; } - $it = Address::iterate(array($page->pid()), array(Address::LINK_JOB)); + $it = Address::iterate(array($page->pid()), array(Address::LINK_JOB), array(), Visibility::get(Visibility::VIEW_PRIVATE)); while ($address = $it->next()) { $jobs[$address->id]['w_address'] = $address->toFormArray(); } - $it = Phone::iterate(array($page->pid()), array(Phone::LINK_JOB)); + $it = Phone::iterate(array($page->pid()), array(Phone::LINK_JOB), array(), Visibility::get(Visibility::VIEW_PRIVATE)); while ($phone = $it->next()) { $jobs[$phone->link_id]['w_phone'][$phone->id] = $phone->toFormArray(); } @@ -131,7 +131,7 @@ class ProfileSettingJob implements ProfileSetting return $jobs; } - private function cleanJob(ProfilePage $page, $jobid, array &$job, &$success, $maxPublicity) + private function cleanJob(ProfilePage $page, $jobid, array &$job, &$success, $job_level) { if ($job['w_email'] == "new@example.org") { $job['w_email'] = $job['w_email_new']; @@ -178,10 +178,10 @@ class ProfileSettingJob implements ProfileSetting } } - if ($maxPublicity->isVisible($job['w_email_pub'])) { - $job['w_email_pub'] = $maxPublicity->level(); + if (Visibility::isLessRestrictive($job_level, $job['w_email_pub'])) { + $job['w_email_pub'] = $job_level; } - $job['w_phone'] = Phone::formatFormArray($job['w_phone'], $s, $maxPublicity); + $job['w_phone'] = Phone::formatFormArray($job['w_phone'], $s, $job_level); if ($job['w_entry_year'] && strlen($job['w_entry_year']) != 4) { $job['w_entry_year_error'] = true; @@ -244,17 +244,20 @@ class ProfileSettingJob implements ProfileSetting foreach ($value as $key => &$job) { $address = new Address($job['w_address']); $s = $address->format(); - $maxPublicity = new ProfileVisibility($job['pub']); - if ($maxPublicity->isVisible($address->pub)) { - $address->pub = $maxPublicity->level(); + + // Force the address publicity to be at least as restricted as + // the job publicity. + $job_level = $job['pub']; + if (Visibility::isLessRestrictive($job_level, $address->pub)) { + $address->pub = $job_level; } $job['w_address'] = $address->toFormArray(); - $this->cleanJob($page, $key, $job, $s, $maxPublicity); + $this->cleanJob($page, $key, $job, $s, $job_level); if (!$init) { $success = ($success && $s); } } - usort($value, 'ProfileVisibility::comparePublicity'); + usort($value, 'Visibility::comparePublicity'); return $value; } @@ -389,7 +392,7 @@ class ProfileSettingCorps implements ProfileSetting public function getText($value) { static $pubs = array('public' => 'publique', 'ax' => 'annuaire AX', 'private' => 'privé'); - $corpsList = DirEnum::getOptions(DirEnum::CORPS); + $corpsList = DirEnum::getOptions(DirEnum::ORIGINCORPS); $rankList = DirEnum::getOptions(DirEnum::CORPSRANKS); return $corpsList[$value['current']] . ', ' . $corpsList[$value['rank']] . ' (' . 'corps d\'origine : ' . $corpsList[$value['original']] . ', affichage ' . $pubs[$value['pub']] . ')'; @@ -409,6 +412,7 @@ class ProfilePageJobs extends ProfilePage $this->settings['corps'] = new ProfileSettingCorps(); $this->settings['jobs'] = new ProfileSettingJob(); $this->watched = array('cv' => true, 'jobs' => true, 'corps' => true); + Platal::page()->assign('geocoding_removal', true); } protected function _fetchData()