$this->pid, $this->jobid, $this->type, $this->id);
}
- static public function deleteAddresses($pid, $type, $jobid = null)
+ static public function deleteAddresses($pid, $type, $jobid = null, $deletePrivate = true)
{
$where = '';
if (!is_null($pid)) {
$where = XDB::format(' AND jobid = {?}', $jobid);
}
XDB::execute('DELETE FROM profile_addresses
- WHERE type = {?}' . $where,
+ WHERE type = {?}' . $where . (($deletePrivate) ? '' : ' AND pub IN (\'public\', \'ax\')'),
$type);
if ($type == self::LINK_PROFILE) {
- Phone::deletePhones($pid, Phone::LINK_ADDRESS);
+ Phone::deletePhones($pid, Phone::LINK_ADDRESS, null, $deletePrivate);
}
}
$this->pid, $this->link_type, $this->link_id, $this->id);
}
- static public function deletePhones($pid, $link_type, $link_id = null)
+ static public function deletePhones($pid, $link_type, $link_id = null, $deletePrivate = true)
{
$where = '';
if (!is_null($link_id)) {
$where = XDB::format(' AND link_id = {?}', $link_id);
}
XDB::execute('DELETE FROM profile_phones
- WHERE pid = {?} AND link_type = {?}' . $where,
+ WHERE pid = {?} AND link_type = {?}' . $where . (($deletePrivate) ? '' : ' AND pub IN (\'public\', \'ax\')'),
$pid, $link_type);
}
public function save(ProfilePage &$page, $field, $value)
{
- Phone::deletePhones($page->pid(), Phone::LINK_ADDRESS);
- Address::deleteAddresses($page->pid(), Address::LINK_PROFILE);
+ Phone::deletePhones($page->pid(), Phone::LINK_ADDRESS, null, S::user()->isMe($page->owner) || S::admin());
+ Address::deleteAddresses($page->pid(), Address::LINK_PROFILE, null, S::user()->isMe($page->owner) || S::admin());
Address::saveFromArray($value, $page->pid(), Address::LINK_PROFILE);
}
public function save(ProfilePage &$page, $field, $value)
{
- XDB::execute("DELETE FROM profile_job
- WHERE pid = {?}",
+ $deletePrivate = S::user()->isMe($this->owner) || S::admin();
+ XDB::execute('DELETE FROM pj, pjt
+ USING profile_job AS pj
+ LEFT JOIN profile_job_term AS pjt ON (pj.pid = pjt.pid AND pj.id = pjt.jid)
+ WHERE pj.pid = {?}' . (($deletePrivate) ? '' : ' AND pj.pub IN (\'public\', \'ax\')'),
$page->pid());
- XDB::execute("DELETE FROM profile_job_term
- WHERE pid = {?}",
- $page->pid());
- Address::deleteAddresses($page->pid(), Address::LINK_JOB);
- Phone::deletePhones($page->pid(), Phone::LINK_JOB);
+ Address::deleteAddresses($page->pid(), Address::LINK_JOB, null, $deletePrivate);
+ Phone::deletePhones($page->pid(), Phone::LINK_JOB, null, $deletePrivate);
$terms_values = array();
foreach ($value as $id => &$job) {
if (isset($job['name']) && $job['name']) {
public function save(ProfilePage &$page, $field, $value)
{
- Phone::deletePhones($page->pid(), Phone::LINK_PROFILE);
+ Phone::deletePhones($page->pid(), Phone::LINK_PROFILE, null, S::user()->isMe($page->owner) || S::admin());
Phone::savePhones($value, $page->pid(), Phone::LINK_PROFILE);
}