]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #1792. Added pluggin setting in groups to set who can create groups, logged...
authorSem <sembrestels@riseup.net>
Sun, 8 Jul 2012 10:21:19 +0000 (12:21 +0200)
committerSem <sembrestels@riseup.net>
Sun, 8 Jul 2012 10:21:19 +0000 (12:21 +0200)
mod/groups/actions/groups/edit.php
mod/groups/languages/en.php
mod/groups/lib/groups.php
mod/groups/views/default/plugins/groups/settings.php

index b513a60989a3e76d0beee8ee8e802c3fd1524e11..a76bde0ac4a0bcf53054dcad90f67b60b7e35080 100644 (file)
@@ -39,10 +39,14 @@ $user = elgg_get_logged_in_user_entity();
 $group_guid = (int)get_input('group_guid');
 $new_group_flag = $group_guid == 0;
 
+if ($new_group_flag && elgg_get_plugin_setting('limited_groups', 'groups') == 'yes' && !elgg_is_admin_logged_in()) {
+       register_error(elgg_echo("groups:cantcreate"));
+       forward(REFERER);
+}
+
 $group = new ElggGroup($group_guid); // load if present, if not create a new group
 if (($group_guid) && (!$group->canEdit())) {
        register_error(elgg_echo("groups:cantedit"));
-
        forward(REFERER);
 }
 
index 4868aa334618d2d697e0f40a59577632ab0190be..0ca9801087d16f6b4ba9a00fcfd16a7368fb73b6 100644 (file)
@@ -41,6 +41,7 @@ $english = array(
        'groups:noaccess' => 'No access to group',
        'groups:permissions:error' => 'You do not have the permissions for this',
        'groups:ingroup' => 'in the group',
+       'groups:cantcreate' => 'You can not create a group. Only admins can.',
        'groups:cantedit' => 'You can not edit this group',
        'groups:saved' => 'Group saved',
        'groups:featured' => 'Featured groups',
@@ -259,6 +260,7 @@ or click below to view the group's join requests:
        'groups:forumtopic:edited' => 'Forum topic successfully edited.',
 
        'groups:allowhiddengroups' => 'Do you want to allow private (invisible) groups?',
+       'groups:whocancreate' => 'Who can create new groups?',
 
        /**
         * Action messages
@@ -285,4 +287,4 @@ or click below to view the group's join requests:
 
 );
 
-add_translation("en", $english);
\ No newline at end of file
+add_translation("en", $english);
index 51ae89a8755a441bd33910ab8e85de0832ba892c..dfbb1154b973c55e482efd2e74c8539bdc83c8dc 100644 (file)
@@ -12,7 +12,9 @@ function groups_handle_all_page() {
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('groups'));
 
-       elgg_register_title_button();
+       if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) {
+               elgg_register_title_button();
+       }
 
        $selected_tab = get_input('filter', 'newest');
 
@@ -184,7 +186,11 @@ function groups_handle_edit_page($page, $guid = 0) {
                elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
                $title = elgg_echo('groups:add');
                elgg_push_breadcrumb($title);
-               $content = elgg_view('groups/edit');
+               if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) {
+                       $content = elgg_view('groups/edit');
+               } else {
+                       $content = elgg_echo('groups:cantcreate');
+               }
        } else {
                $title = elgg_echo("groups:edit");
                $group = get_entity($guid);
index 7197dcb379dfb3841ed75daf3a56dc24634c54f9..41ea146dbf86ef61ba0830ef9f1b8a57345daf10 100644 (file)
@@ -8,6 +8,11 @@ if (!isset($vars['entity']->hidden_groups)) {
        $vars['entity']->hidden_groups = 'no';
 }
 
+// set default value
+if (!isset($vars['entity']->limited_groups)) {
+       $vars['entity']->limited_groups = 'no';
+}
+
 echo '<div>';
 echo elgg_echo('groups:allowhiddengroups');
 echo ' ';
@@ -20,3 +25,16 @@ echo elgg_view('input/dropdown', array(
        'value' => $vars['entity']->hidden_groups,
 ));
 echo '</div>';
+
+echo '<div>';
+echo elgg_echo('groups:whocancreate');
+echo ' ';
+echo elgg_view('input/dropdown', array(
+       'name' => 'params[limited_groups]',
+       'options_values' => array(
+               'no' => elgg_echo('LOGGED_IN'),
+               'yes' => elgg_echo('admin')
+       ),
+       'value' => $vars['entity']->limited_groups,
+));
+echo '</div>';