Browse Source

HUE-720 [useradmin] Created home directory should belong to the user

Romain Rigaux 13 years ago
parent
commit
315d008
2 changed files with 12 additions and 3 deletions
  1. 11 1
      apps/useradmin/src/useradmin/tests.py
  2. 1 2
      apps/useradmin/src/useradmin/views.py

+ 11 - 1
apps/useradmin/src/useradmin/tests.py

@@ -540,15 +540,25 @@ def test_ensure_home_directory():
 
 
   # Cluster and client for home directory creation
   # Cluster and client for home directory creation
   cluster = pseudo_hdfs4.shared_cluster()
   cluster = pseudo_hdfs4.shared_cluster()
-  c = make_logged_in_client(cluster.superuser, is_superuser=True)
+  c = make_logged_in_client(cluster.superuser, is_superuser=True, groupname='test1')
   cluster.fs.setuser(cluster.superuser)
   cluster.fs.setuser(cluster.superuser)
 
 
   # Create a user with a home directory
   # Create a user with a home directory
+  assert_false(cluster.fs.exists('/user/test1'))
   response = c.post('/useradmin/users/new', dict(username="test1", password1='test', password2='test', ensure_home_directory=True))
   response = c.post('/useradmin/users/new', dict(username="test1", password1='test', password2='test', ensure_home_directory=True))
   assert_true(cluster.fs.exists('/user/test1'))
   assert_true(cluster.fs.exists('/user/test1'))
+  dir_stat = cluster.fs.stats('/user/test1')
+  assert_equal('test1', dir_stat.user)
+  assert_equal('test1', dir_stat.group)
+  assert_equal('40755', '%o' % dir_stat.mode)
 
 
   # Create a user, then add their home directory
   # Create a user, then add their home directory
+  assert_false(cluster.fs.exists('/user/test2'))
   response = c.post('/useradmin/users/new', dict(username="test2", password1='test', password2='test'))
   response = c.post('/useradmin/users/new', dict(username="test2", password1='test', password2='test'))
   assert_false(cluster.fs.exists('/user/test2'))
   assert_false(cluster.fs.exists('/user/test2'))
   response = c.post('/useradmin/users/edit/%s' % "test2", dict(username="test2", password1='test', password2='test', ensure_home_directory=True))
   response = c.post('/useradmin/users/edit/%s' % "test2", dict(username="test2", password1='test', password2='test', ensure_home_directory=True))
   assert_true(cluster.fs.exists('/user/test2'))
   assert_true(cluster.fs.exists('/user/test2'))
+  dir_stat = cluster.fs.stats('/user/test2')
+  assert_equal('test2', dir_stat.user)
+  assert_equal('test2', dir_stat.group)
+  assert_equal('40755', '%o' % dir_stat.mode)

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

@@ -457,8 +457,7 @@ def ensure_home_directory(fs, username):
   Throws WebHdfsException.
   Throws WebHdfsException.
   """
   """
   home_dir = '/user/%s' % username
   home_dir = '/user/%s' % username
-  if not fs.exists(home_dir):
-    fs.create_home_dir(home_dir)
+  fs.do_as_user(username, fs.create_home_dir, home_dir)
 
 
 def _check_remove_last_super(user_obj):
 def _check_remove_last_super(user_obj):
   """Raise an error if we're removing the last superuser"""
   """Raise an error if we're removing the last superuser"""