<?php
/***************************************************************************
- * Copyright (C) 2003-2011 Polytechnique.org *
+ * Copyright (C) 2003-2014 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
$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_ADMIN));
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_ADMIN));
while ($phone = $it->next()) {
$jobs[$phone->link_id]['w_phone'][$phone->id] = $phone->toFormArray();
}
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'];
}
}
- 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;
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;
}
public function getText($value)
{
- static $pubs = array('public' => 'publique', 'ax' => 'annuaire AX', 'private' => 'privé');
+ static $pubs = array('public' => 'publique', 'ax' => 'annuaire papier', 'private' => 'privé', 'hidden' => 'administrateurs');
$jobs = array();
foreach ($value as $id => $job) {
$address = Address::formArrayToString(array($job['w_address']));
public function getText($value)
{
- static $pubs = array('public' => 'publique', 'ax' => 'annuaire AX', 'private' => 'privé');
+ static $pubs = array('public' => 'publique', 'ax' => 'annuaire papier', 'private' => 'privé', 'hidden' => 'administrateurs');
$corpsList = DirEnum::getOptions(DirEnum::ORIGINCORPS);
$rankList = DirEnum::getOptions(DirEnum::CORPSRANKS);
return $corpsList[$value['current']] . ', ' . $corpsList[$value['rank']] . ' ('
}
}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
?>