Эх сурвалжийг харах

HUE-872 [useradmin] Default group has access to all apps initially

- modified user_admin test case to include default group check.
- modified default group test case to check for existence of default group using get_default_user_group.
- default user group permissions being set with postsync signal handler
abec 13 жил өмнө
parent
commit
233395c

+ 1 - 1
apps/useradmin/src/useradmin/conf.py

@@ -25,4 +25,4 @@ DEFAULT_USER_GROUP = Config(
     help="The name of a default group for users at creation time, or at first login "
          "if the server is configured to authenticate against an external source.",
     type=str,
-    default=None)
+    default='default')

+ 6 - 0
apps/useradmin/src/useradmin/models.py

@@ -248,6 +248,12 @@ def update_app_permissions(**kwargs):
         new_dp.save()
         added.append(new_dp)
 
+  # Add all hue permissions to default group.
+  default_group = get_default_user_group()
+  if default_group:
+    for new_dp in added:
+      GroupPermission.objects.create(group=default_group, hue_permission=new_dp)
+
   available = HuePermission.objects.count()
 
   LOG.info("HuePermissions: %d added, %d updated, %d up to date, %d stale" %

+ 12 - 4
apps/useradmin/src/useradmin/tests.py

@@ -32,7 +32,7 @@ from django.utils.encoding import smart_unicode
 from django.core.urlresolvers import reverse
 
 from useradmin.models import HuePermission, GroupPermission, LdapGroup, UserProfile
-from useradmin.models import get_profile
+from useradmin.models import get_profile, get_default_user_group
 
 import useradmin.conf
 from hadoop import pseudo_hdfs4
@@ -159,14 +159,16 @@ def test_group_permissions():
 def test_default_group():
   reset_all_users()
   reset_all_groups()
+  useradmin.conf.DEFAULT_USER_GROUP.set_for_testing('test_default')
+  get_default_user_group()
 
   c = make_logged_in_client(username='test', is_superuser=True)
 
-  Group.objects.create(name="test_default")
+  # Create default group if it doesn't already exist.
+  assert_true(Group.objects.filter(name='test_default').exists())
 
   # Try deleting the default group
   assert_true(Group.objects.filter(name='test_default').exists())
-  useradmin.conf.DEFAULT_USER_GROUP.set_for_testing('test_default')
   response = c.post('/useradmin/groups/delete/test_default')
   assert_true('default user group may not be deleted' in response.content)
   assert_true(Group.objects.filter(name='test_default').exists())
@@ -245,6 +247,7 @@ def test_user_admin():
 
   reset_all_users()
   reset_all_groups()
+  useradmin.conf.DEFAULT_USER_GROUP.set_for_testing('test_default')
 
   c = make_logged_in_client('test', is_superuser=True)
 
@@ -293,8 +296,13 @@ def test_user_admin():
   assert_true(make_logged_in_client(username = "test", password = "test"),
               "Check that we can still login.")
 
+  # Check new user form for default group
+  group = get_default_user_group()
+  response = c.get('/useradmin/users/new')
+  assert_true(response)
+  assert_true(('<option value="1" selected="selected">%s</option>' % group) in str(response))
+
   # Create a new regular user (duplicate name)
-  assert_true(c.get('/useradmin/users/new'))
   response = c.post('/useradmin/users/new', dict(username="test", password1="test", password2="test"))
   assert_equal({ 'username': ["User with this Username already exists."]}, response.context["form"].errors)
 

+ 6 - 1
apps/useradmin/src/useradmin/views.py

@@ -229,7 +229,12 @@ def edit_user(request, username=None):
           request.error(_('Cannot make home directory for user %s' % instance.username))
       return redirect(reverse(list_users))
   else:
-    form = form_class(instance=instance, initial={'ensure_home_directory': instance is None})
+    default_user_group = get_default_user_group()
+    initial = {
+      'ensure_home_directory': instance is None,
+      'groups': default_user_group and [default_user_group] or []
+    }
+    form = form_class(instance=instance, initial=initial)
   return render('edit_user.mako', request, dict(form=form, action=request.path, username=username))
 
 def edit_group(request, name=None):

+ 1 - 1
desktop/conf.dist/hue.ini

@@ -460,4 +460,4 @@
 
 [useradmin]
   # The name of the default user group that users will be a member of
-  ## default_user_group=default_group
+  ## default_user_group=default

+ 1 - 1
desktop/conf/pseudo-distributed.ini.tmpl

@@ -469,4 +469,4 @@
 
 [useradmin]
   # The name of the default user group that users will be a member of
-  ## default_user_group=default_group
+  ## default_user_group=default