X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fjobs.inc.php;h=eada2bdcfa78b4f72c89956d8f907a59eb648383;hb=08b5c28f7adf245d5a262add9c31209f5d188ec7;hp=aaa256cce1e5686013cdc8dc068ad355a155bf46;hpb=c4f03937349bddfad25990239a825f8161615260;p=platal.git diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index aaa256c..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; } @@ -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()