summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--users.py16
2 files changed, 14 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index ac49242fc..330c9c58a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,10 @@
* instdata.py (InstallData.writeKS): Write out user and services
commands and scripts to anaconda-ks.cfg if doing a kickstart install.
+ * users.py (Users.createUser): Make the default group of a new user
+ be the one created with their username. Modify entries for all the
+ other groups a user should be in to make that work.
+
2007-09-12 Peter Jones <pjones@redhat.com>
* isys/nl.c (netlink_init_interfaces_list): Rework recvmsg code to
diff --git a/users.py b/users.py
index b4b29a3e3..b5b8ef2db 100644
--- a/users.py
+++ b/users.py
@@ -67,12 +67,10 @@ class Users:
userEnt = self.admin.initUser(name)
groupEnt = self.admin.initGroup(name)
- gidLst = map(lambda grp: grp.get(libuser.GIDNUMBER)[0],
- filter(lambda grp: grp,
- map(lambda name: self.admin.lookupGroupByName(name), groups)))
- gidLst.extend(groupEnt.get(libuser.GIDNUMBER))
-
- userEnt.set(libuser.GIDNUMBER, gidLst)
+ grpLst = filter(lambda grp: grp,
+ map(lambda name: self.admin.lookupGroupByName(name), groups))
+ userEnt.set(libuser.GIDNUMBER, [groupEnt.get(libuser.GIDNUMBER)[0]] +
+ map(lambda grp: grp.get(libuser.GIDNUMBER)[0], grpLst))
if not homedir:
homedir = "/home/" + name
@@ -101,9 +99,15 @@ class Users:
if lock:
self.admin.lockUser(userEnt)
+ # Add the user to all the groups they should be part of.
+ for grp in grpLst:
+ grp.add(libuser.MEMBERNAME, name)
+ self.admin.modifyGroup(grp)
+
# Now set the correct home directory to fix up passwd.
userEnt.set(libuser.HOMEDIRECTORY, homedir)
self.admin.modifyUser(userEnt)
+ return True
def setRootPassword(self, password, isCrypted, useMD5, lock):
rootUser = self.admin.lookupUserByName("root")