From: Nicolas Iooss Date: Sun, 1 Jun 2014 19:39:16 +0000 (+0200) Subject: Implement hidden permission in profile editor X-Git-Tag: xorg/1.1.13~13 X-Git-Url: http://git.polytechnique.org/?p=platal.git;a=commitdiff_plain;h=4555d49036d51e04d2a55e1ed11c5c1b3de3feb9 Implement hidden permission in profile editor Accounts with "directory_hidden" permission (ie. people allowed to read and update almost every information in the directory) need to be allowed to read attributes flagged "private" (because the order of the visibility flags is public < ax < private < hidden). While at it, explicitly allow admin accout to read hidden values too. --- diff --git a/templates/profile/adresses.address.tpl b/templates/profile/adresses.address.tpl index 69dd6d0..223629b 100644 --- a/templates/profile/adresses.address.tpl +++ b/templates/profile/adresses.address.tpl @@ -22,10 +22,14 @@ {assign var=prefname value="addresses[$i]"} {assign var=prefid value="addresses_$i"} -{if !hasPerm('directory_private') && ($address.pub eq 'private') && !$new} -{assign var=hiddenaddr value=true} +{if $isMe || hasPerm('admin') || $new} + {assign var=hiddenaddr value=false} +{elseif hasPerm('directory_hidden') || (($address.pub neq 'hidden') && ($address.pub neq 'private'))} + {assign var=hiddenaddr value=false} +{elseif hasPerm('directory_private') && ($address.pub neq 'hidden')} + {assign var=hiddenaddr value=false} {else} -{assign var=hiddenaddr value=false} + {assign var=hiddenaddr value=true} {/if} diff --git a/templates/profile/deco.tpl b/templates/profile/deco.tpl index 234ba70..e12b5ad 100644 --- a/templates/profile/deco.tpl +++ b/templates/profile/deco.tpl @@ -20,10 +20,14 @@ {* *} {**************************************************************************} -{if !hasPerm('directory_private') && ($medals_pub eq 'private') && ($medals|@count neq 0)} -{assign var=hidden_medal value=true} +{if $isMe || hasPerm('admin') || ($medals|@count eq 0)} + {assign var=hidden_medal value=false} +{elseif hasPerm('directory_hidden') || (($medals_pub neq 'hidden') && ($medals_pub neq 'private'))} + {assign var=hidden_medal value=false} +{elseif hasPerm('directory_private') && ($medals_pub neq 'hidden')} + {assign var=hidden_medal value=false} {else} -{assign var=hidden_medal value=false} + {assign var=hidden_medal value=true} {/if} diff --git a/templates/profile/general.hobby.tpl b/templates/profile/general.hobby.tpl index e573404..c7d68d0 100644 --- a/templates/profile/general.hobby.tpl +++ b/templates/profile/general.hobby.tpl @@ -20,10 +20,14 @@ {* *} {**************************************************************************} -{if !hasPerm('directory_private') && ($hobby.pub eq 'private') && !empty($hobby.text|smarty:nodefaults)} -{assign var=hiddenhobby value=true} +{if $isMe || hasPerm('admin') || empty($hobby.text|smarty:nodefaults)} + {assign var=hiddenhobby value=false} +{elseif hasPerm('directory_hidden') || (($hobby.pub neq 'hidden') && ($hobby.pub neq 'private'))} + {assign var=hiddenhobby value=false} +{elseif hasPerm('directory_private') && ($hobby.pub neq 'hidden')} + {assign var=hiddenhobby value=false} {else} -{assign var=hiddenhobby value=false} + {assign var=hiddenhobby value=true} {/if} diff --git a/templates/profile/general.networking.tpl b/templates/profile/general.networking.tpl index aa3cd40..3e07904 100644 --- a/templates/profile/general.networking.tpl +++ b/templates/profile/general.networking.tpl @@ -20,10 +20,14 @@ {* *} {**************************************************************************} -{if !hasPerm('directory_private') && ($nw.pub eq 'private') && !empty($nw.address|smarty:nodefaults)} -{assign var=hiddennw value=true} +{if $isMe || hasPerm('admin') || empty($nw.address|smarty:nodefaults)} + {assign var=hiddennw value=false} +{elseif hasPerm('directory_hidden') || (($nw.pub neq 'hidden') && ($nw.pub neq 'private'))} + {assign var=hiddennw value=false} +{elseif hasPerm('directory_private') && ($nw.pub neq 'hidden')} + {assign var=hiddennw value=false} {else} -{assign var=hiddennw value=false} + {assign var=hiddennw value=true} {/if} diff --git a/templates/profile/jobs.job.tpl b/templates/profile/jobs.job.tpl index e83ecf5..8cd4199 100644 --- a/templates/profile/jobs.job.tpl +++ b/templates/profile/jobs.job.tpl @@ -27,20 +27,32 @@ {assign var=sector_text value="sector_text_"|cat:$i} {assign var=sector value="sector_"|cat:$i} {assign var=entreprise value="entreprise_"|cat:$i} -{if !hasPerm('directory_private') && ($job.pub eq 'private') && !$new} -{assign var=hiddenjob value=true} +{if $isMe || hasPerm('admin')} + {assign var=hiddenjob value=false} + {assign var=hiddenaddr value=false} + {assign var=hiddenemail value=false} {else} -{assign var=hiddenjob value=false} -{/if} -{if !hasPerm('directory_private') && ($job.w_address.pub eq 'private') && !empty($job.w_address.text|smarty:nodefaults)} -{assign var=hiddenaddr value=true} -{else} -{assign var=hiddenaddr value=false} -{/if} -{if !hasPerm('directory_private') && ($job.w_email_pub eq 'private') && !empty($job.w_email|smarty:nodefaults)} -{assign var=hiddenemail value=true} -{else} -{assign var=hiddenemail value=false} + {if hasPerm('directory_hidden') || ( ($job.pub neq 'hidden') && ($job.pub neq 'private')) || $new} + {assign var=hiddenjob value=false} + {elseif hasPerm('directory_private') && ($job.pub neq 'hidden')} + {assign var=hiddenjob value=false} + {else} + {assign var=hiddenjob value=true} + {/if} + {if hasPerm('directory_hidden') || ( ($job.w_address.pub neq 'hidden') && ($job.w_address.pub neq 'private')) || empty($job.w_address.text|smarty:nodefaults)} + {assign var=hiddenaddr value=false} + {elseif hasPerm('directory_private') && ($job.w_address.pub neq 'hidden')} + {assign var=hiddenaddr value=false} + {else} + {assign var=hiddenaddr value=true} + {/if} + {if hasPerm('directory_hidden') || ( ($job.w_email_pub neq 'hidden') && ($job.w_email_pub neq 'private')) || empty($job.w_email|smarty:nodefaults)} + {assign var=hiddenemail value=false} + {elseif hasPerm('directory_private') && ($job.w_email_pub neq 'hidden')} + {assign var=hiddenemail value=false} + {else} + {assign var=hiddenemail value=true} + {/if} {/if}
diff --git a/templates/profile/phone.tpl b/templates/profile/phone.tpl index 4d9adb6..7fb869a 100644 --- a/templates/profile/phone.tpl +++ b/templates/profile/phone.tpl @@ -22,10 +22,14 @@ {assign var=telpref value="`$prefname`[`$telid`]"} {assign var=id value="`$prefid`_`$telid`"} -{if !hasPerm('directory_private') && ($tel.pub eq 'private') && !empty($tel.display|smarty:nodefaults)} -{assign var=hiddentel value=true} +{if $isMe || hasPerm('admin') || empty($tel.display|smarty:nodefaults)} + {assign var=hiddentel value=false} +{elseif hasPerm('directory_hidden') || (($tel.pub neq 'hidden') && ($tel.pub neq 'private'))} + {assign var=hiddentel value=false} +{elseif hasPerm('directory_private') && ($tel.pub neq 'hidden')} + {assign var=hiddentel value=false} {else} -{assign var=hiddentel value=false} + {assign var=hiddentel value=true} {/if}
N°{$telid+1}