def groupmod(gid, config, new_name, non_unique, password, group): try: gr = grp.getgrnam(group) except KeyError: print(_("Error: Group not found")) exit(1) return conf = get_config(config) dbs = connect_db(conf) if gid: try: if not non_unique and grp.getgrgid(gid): print("Error: GID already taken") exit(1) except KeyError: pass old_gid = int(gr.gr_gid) glm = GroupListManager(conf, dbs) glm.modallgroupgid(old_gid, gid) um = UserManager(conf, dbs) um.modallgid(old_gid, gid) gm = GroupManager(conf, dbs) gm.modgroup(name_old=group, name=new_name, gid=gid, password=password) dbs.commit() dbs.close()
def groupadd(force, gid, key, non_unique, password, system, config, group): if not gid or force: gid = find_new_gid(sysuser=system) else: try: if not non_unique and grp.getgrgid(gid): print("Error: GID already taken") exit(1) except KeyError: pass try: if grp.getgrnam(group): if force: exit(0) print("Error: Group name already taken") exit(1) except KeyError: pass conf = get_config(config) defs = get_defs() for k, v in key: defs[k] = v dbs = connect_db(conf) gm = GroupManager(conf, dbs) gm.addgroup(group, gid, password) dbs.commit() dbs.close()
def userdel(force, remove, config, login): user = None try: user = pwd.getpwnam(login) except KeyError: print(_("Error: User not found")) exit(1) conf = get_config(config) dbs = connect_db(conf) pm = UserManager(config=conf, dbs=dbs) try: pm.deluser(username=login) except KeyError: print(_("Error: User not in database")) exit(1) if remove: shutil.rmtree(str(user.pw_dir), ignore_errors=force) glm = GroupListManager(conf, dbs) glm.delallgroupuser(login) dbs.commit() gr = None try: gr = grp.getgrgid(user.pw_gid) if gr.gr_mem: exit(0) except KeyError: dbs.commit() dbs.close() exit(0) gm = GroupManager(config=conf, dbs=dbs) try: gm.delgroup(gid=str(gr.gr_gid)) except ValueError: print( _('Warning: Primary group "{group}" of user is empty but not in Database. Try "groupdel {group}"' ).format(group=gr.gr_gid)) exit(1) dbs.commit() dbs.close()
def groupdel(config, group): try: gr = grp.getgrnam(group) except KeyError: print("Error: Group not found") exit(1) return conf = get_config(config) dbs = connect_db(conf) gm = GroupManager(config=conf, dbs=dbs) try: gm.delgroup(gid=str(gr.gr_gid)) except KeyError as e: print("Error: %s" % e) exit(1) dbs.commit() dbs.close()
def setUpClass(cls): ManagerTests.setUpClass() cls.gm = GroupManager(cls.config, cls.dbs)