def add(ctx, **args): """add a netgroup""" type = args.pop('nisNetgroupType') data = dict_merge(netgroups.get(type), args) cn = data.get('cn') path = data.pop('path', None) requires = data.pop('requires', None) dn = "cn=%s,%s" % (cn, dir.get_netgroup_base(type)) netgroup_entry = dir.Entry(dn=dn, attrs=data) newnetgroup = Netgroup(cn, netgroup_entry) newnetgroup.add()
def add_netgroup(args, netgroup_type): netgroup_data = util.merge(netgroups.get(netgroup_type), args) if netgroup_type in netgroups.keys(): cn = netgroup_data.get('cn') path = netgroup_data.pop('path', None) requires = netgroup_data.pop('requires', None) dn = "cn=%s,%s" % (cn, dir.get_netgroup_base(netgroup_type)) netgroup_entry = dir.Entry(dn=dn, attrs=netgroup_data) newnetgroup = Netgroup(cn, netgroup_entry) newnetgroup.add() else: print "Netgroup type %s is not exactly known." % netgroup_type sys.exit(1)
def get_access_group(name, priv_level): """ Gets a netgroup handle. Creates the group when necessary. """ group_type = 'security' group_data = dict_merge(netgroups.get(group_type), {}) path = group_data.pop('path') requires = group_data.pop('requires') group_name = '%s-%s' % (name, priv_level) description = 'Users with %s access to %s.' % (access_levels[priv_level], name) dn = 'cn=%s,%s' % (group_name, dir.get_netgroup_base(group_type)) access_group = Netgroup(group_name, dir.Entry(dn=dn, attrs=group_data, use_dn=True)) if not access_group.exists: access_group.add() access_group.set_description(description) return access_group
def get_access_group(name, access_type=granted): """ Gets a netgroup handle. Creates the group when necessary. """ group_type = 'security' group_data = util.merge(netgroups.get(group_type), {}) path = group_data.pop('path') requires = group_data.pop('requires') if access_type: group_name = '%s-granted' %(name) description = 'Users allowed to access %s.' % name else: group_name = '%s-denied' % (name) description = 'Users denied access to %s.' % name dn = 'cn=%s,%s' % (group_name, dir.get_netgroup_base(group_type)) access_group = Netgroup(group_name, dir.Entry(dn=dn, attrs=group_data, use_dn=True)) if not access_group.exists: access_group.add() access_group.set_description(description) return access_group