Merge pull request #371 from Treer/permissions

minor cleanup. No functional changes
This commit is contained in:
redmatrix 2016-05-10 06:13:05 +10:00
commit ea1173f8f6
3 changed files with 20 additions and 11 deletions

View file

@ -1066,7 +1066,7 @@ class Settings extends \Zotlabs\Web\Controller {
'$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')),
'$permissions' => t('Default Post Permissions'),
'$permdesc' => t("\x28click to open/close\x29"),
'$aclselect' => populate_acl($perm_defaults, false, \PermissionDescription::fromDescription(t('Use my default audience setting for the type of channel'))),
'$aclselect' => populate_acl($perm_defaults, false, \PermissionDescription::fromDescription(t('Use my default audience setting for the type of post'))),
'$suggestme' => $suggestme,
'$group_select' => $group_select,
'$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', get_roles()),

View file

@ -3,13 +3,11 @@
<h2>Post Permissions</h2>
<p>Sometimes called Access Control List, or ACL, the permissions set who is able to see your new post.</p>
<p>The permissions dialog lets you select which channels and/or privacy groups can see the post. You can also select who is explicitly denied access. For example, say you are planning a surprise party for a friend. You can send an invitation post to everyone in your <b>Friends</b> group <i>except</i> the friend you are surprising. In this case you "Show" the <b>Friends</b> group but "Don't show" that one person.</p>
<p>Pressing the ACL button (<i class="fa fa-lock"></i> or <i class="fa fa-unlock"></i>) beside the Submit button will display a dialog in which you can select what channels and/or privacy groups can see the post. You can also select who is explicitly denied access. For example, say you are planning a surprise party for a friend. You can send an invitation post to everyone in your <b>Friends</b> group <i>except</i> the friend you are surprising. In this case you "Show" the <b>Friends</b> group but "Don't show" that one person.</p>
<dl>
<dt>Tip:</dt>
<dd>The border color of each channel indicates whether that channel &mdash; or one of the groups it belongs to &mdash; has access to the post. The border color will also indicate when a channel [or group it belongs to] has been expliciyly set to "Don't show".</dd>
<dl class="text-info dl-terms-large dl-horizontal">
<dt style="width: 3em;">Tip!</td>
<dd style="margin-left: 4em;">The border color of each channel indicates whether that channel &mdash; or one of the groups it's a member of &mdash; will have access to the post. The border color will also indicate when a channel, or group it belongs to, has been explicitly set to "Don't show".</dd>
</dl>
<h3>Why can't I edit a post's permissions after I saved it?</h3>

View file

@ -32,10 +32,11 @@ class PermissionDescription {
}
/**
* If the interpretation of an empty ACL can't be summarised with a global default permission
* If the interpretation of an empty ACL can't be summarised with a global default permission
* or a specific permission setting then use this method and describe what it means instead.
* Remember to localize the description first.
*
* @param string $description - the caption for the no-ACL option in the ACL dialog.
* @param string $description - the localized caption for the no-ACL option in the ACL dialog.
* @return a new instance of PermissionDescription
*/
public static function fromDescription($description) {
@ -44,8 +45,9 @@ class PermissionDescription {
/**
* Use this method only if the interpretation of an empty ACL doesn't fall back to a global
* default permission. You should pass one of the constants from boot.php - PERMS_PUBLIC, PERMS_NETWORK etc.
* Use this method only if the interpretation of an empty ACL doesn't fall back to a global
* default permission. You should pass one of the constants from boot.php - PERMS_PUBLIC,
* PERMS_NETWORK etc.
*
* @param integer $perm - a single enumerated constant permission - PERMS_PUBLIC, PERMS_NETWORK etc.
* @return a new instance of PermissionDescription
@ -81,6 +83,15 @@ class PermissionDescription {
if (array_key_exists($permname, $global_perms)) {
$permDetails = $global_perms[$permname];
// It should be OK to always just read the permissions from App::$channel
//
// App::$profile is a union of channel and profile fields.
// The distinction is basically that App::$profile is pointing to the resource
// being observed. App::$channel is referring to the current logged-in channel
// member (if this is a local channel) e.g. the observer. We only show the ACL
// widget to the page owner (observer and observed are the same) so in that case
// I believe either may be safely used here.
$channelPerm = \App::$channel[$permDetails[0]];
$result = new PermissionDescription($permDetails[1], $channelPerm);
} else {