aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <redmatrix@redmatrix.me>2016-01-02 23:39:57 -0800
committerredmatrix <redmatrix@redmatrix.me>2016-01-02 23:39:57 -0800
commit5b0a17359d6b5b3e27219c9e56117f1017996175 (patch)
tree2b5988c7661c9a5a67f5da8797ca57381e2aad7a
parent1ad90b8662a719a0455c6e1e8c21da0844c6d80d (diff)
downloadvolse-hubzilla-5b0a17359d6b5b3e27219c9e56117f1017996175.tar.gz
volse-hubzilla-5b0a17359d6b5b3e27219c9e56117f1017996175.tar.bz2
volse-hubzilla-5b0a17359d6b5b3e27219c9e56117f1017996175.zip
Provide the ability for a hub admin to specify a default permissions role for the first channel created by a new account. This simplifies channel creation by restricting the available options at registration time. The restriction is not applied to any additional channels created under the same account; and in any event can be changed immediately after channel creation, if desired.
-rw-r--r--doc/hidden_configs.bb4
-rw-r--r--mod/new_channel.php12
-rwxr-xr-xview/tpl/new_channel.tpl11
3 files changed, 23 insertions, 4 deletions
diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb
index 8a02a23f2..39ec9569d 100644
--- a/doc/hidden_configs.bb
+++ b/doc/hidden_configs.bb
@@ -65,6 +65,10 @@ This document assumes you're an administrator.
this website. Can be overwritten by user settings.
[b]system > projecthome[/b]
Set the project homepage as the homepage of your hub.
+ [b]system > default_permissions_role[/b]
+ If set to a valid permissions role name (for instance 'public'), use that role for
+ the first channel created by a new account and don't ask for the "Channel Type" on
+ the channel creation form.
[b]system > workflow_channel_next[/b]
The page to direct users to immediately after creating a channel.
[b]system > max_daily_registrations[/b]
diff --git a/mod/new_channel.php b/mod/new_channel.php
index 047048f0a..bec2a3c09 100644
--- a/mod/new_channel.php
+++ b/mod/new_channel.php
@@ -100,6 +100,17 @@ function new_channel_content(&$a) {
return;
}
+ $default_role = '';
+ $aid = get_account_id();
+ if($aid) {
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d",
+ intval($aid)
+ );
+ if($r && (! intval($r[0]['total']))) {
+ $default_role = get_config('system','default_permissions_role');
+ }
+ }
+
$name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : "" );
$nickname = ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : "" );
$privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "" );
@@ -117,6 +128,7 @@ function new_channel_content(&$a) {
'$name' => $name,
'$help_role' => t('Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you'),
'$role' => array('permissions_role' , t('Channel Type'), ($privacy_role) ? $privacy_role : 'social', '<a href="help/roles" target="_blank">'.t('Read more about roles').'</a>',get_roles()),
+ '$default_role' => $default_role,
'$nickname' => $nickname,
'$submit' => t('Create')
));
diff --git a/view/tpl/new_channel.tpl b/view/tpl/new_channel.tpl
index f78a3fc2d..46b32b8a9 100755
--- a/view/tpl/new_channel.tpl
+++ b/view/tpl/new_channel.tpl
@@ -5,10 +5,13 @@
<div id="newchannel-desc" class="descriptive-paragraph">{{$desc}}</div>
- <div id="newchannel-role-help" class="descriptive-paragraph">{{$help_role}}</div>
- {{include file="field_select_grouped.tpl" field=$role}}
- <div id="newchannel-role-end" class="newchannel-field-end"></div>
-
+ {{if $default_role}}
+ <input type="hidden" name="permissions_role" value="{{$default_role}}" />
+ {{else}}
+ <div id="newchannel-role-help" class="descriptive-paragraph">{{$help_role}}</div>
+ {{include file="field_select_grouped.tpl" field=$role}}
+ <div id="newchannel-role-end" class="newchannel-field-end"></div>
+ {{/if}}
<label for="newchannel-name" id="label-newchannel-name" class="newchannel-label" >{{$label_name}}</label>
<input type="text" name="name" id="newchannel-name" class="newchannel-input" value="{{$name}}" />