channel permission roles
This commit is contained in:
@@ -219,13 +219,15 @@ function create_identity($arr) {
|
||||
$perms_sql = '';
|
||||
|
||||
$role_permissions = null;
|
||||
$global_perms = get_perms();
|
||||
|
||||
if(array_key_exists('permissions_role',$arr) && $arr['permissions_role']) {
|
||||
$role_permissions = get_role_perms($arr['permissions_role']);
|
||||
|
||||
if($role_permissions) {
|
||||
foreach($role_permissions as $p => $v) {
|
||||
if(strpos($p,'channel_') !== false) {
|
||||
$perms_keys .= ', ' . $global_perms[$p][0];
|
||||
$perms_keys .= ', ' . $p;
|
||||
$perms_vals .= ', ' . intval($v);
|
||||
}
|
||||
if($p === 'directory_publish')
|
||||
@@ -235,16 +237,16 @@ function create_identity($arr) {
|
||||
}
|
||||
else {
|
||||
$defperms = site_default_perms();
|
||||
$global_perms = get_perms();
|
||||
foreach($defperms as $p => $v) {
|
||||
$perms_keys .= ', ' . $global_perms[$p][0];
|
||||
$perms_vals .= ', ' . intval($v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$expire = get_config('system', 'default_expire_days');
|
||||
$expire = (($expire===false)? '0': $expire);
|
||||
|
||||
|
||||
$r = q("insert into channel ( channel_account_id, channel_primary,
|
||||
channel_name, channel_address, channel_guid, channel_guid_sig,
|
||||
channel_hash, channel_prvkey, channel_pubkey, channel_pageflags, channel_expire_days $perms_keys )
|
||||
@@ -264,8 +266,6 @@ function create_identity($arr) {
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
$r = q("select * from channel where channel_account_id = %d
|
||||
and channel_guid = '%s' limit 1",
|
||||
intval($arr['account_id']),
|
||||
|
||||
@@ -528,7 +528,7 @@ function get_role_perms($role) {
|
||||
|
||||
break;
|
||||
|
||||
case 'forum_public':
|
||||
case 'forum':
|
||||
$ret['perms_auto'] = true;
|
||||
$ret['default_collection'] = false;
|
||||
$ret['directory_publish'] = true;
|
||||
@@ -719,3 +719,28 @@ function get_role_perms($role) {
|
||||
}
|
||||
|
||||
|
||||
function role_selector($current) {
|
||||
$roles = array(
|
||||
'social' => array( t('Social Networking'),
|
||||
array('social' => t('Mostly Public'), 'social_restricted' => t('Restricted'), 'social_private' => t('Private'))),
|
||||
'forum' => array( t('Community Forum'),
|
||||
array('forum' => t('Mostly Public'), 'forum_restricted' => t('Restricted'), 'forum_private' => t('Private'))),
|
||||
'feed' => array( t('Feed Republish'),
|
||||
array('feed' => t('Mostly Public'), 'feed_restricted' => t('Restricted'))),
|
||||
'soapbox' => array( t('Celebrity/Soapbox'),
|
||||
array('soapbox' => t('Mostly Public'))),
|
||||
'other' => array( t('Other'),
|
||||
array('custom' => t('Custom/Expert Mode'))));
|
||||
$o = '<select name="permissions_role" id="privacy-role-select">';
|
||||
foreach($roles as $k => $v) {
|
||||
$o .= '<optgroup label="'. htmlspecialchars($v[0]) . '" >';
|
||||
foreach($v[1] as $kk => $vv) {
|
||||
$selected = (($kk === $current) ? ' selected="selected" ' : '');
|
||||
$o .= '<option value="' . $kk . '" ' . $selected . '>' . htmlspecialchars($vv) . '</option>';
|
||||
}
|
||||
$o .= '<optgroup>';
|
||||
}
|
||||
$o .= '</select>';
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user