Example #1
0
def delete_user_groups(username, groups):
    #groups is a list of (silo_name, permission_name) tuples
    try:
        groups_list_names = [group_name(*group) for group in groups]
        u = User.objects.get(username=username)
        log.info("Adding user '%s' to %s" % (username, groups_list_names))
        # gather list of group objects
        groups_list = []
        for gname in groups_list_names:
            try:
                g_obj = Group.objects.get(name=gname)
                groups_list.append(g_obj)
            except Group.DoesNotExist:
                log.warn("Group '%s' does not exist so cannot add '%s' to it" %
                         (gname, username))
                # TODO: Should groups be automagically added here?
                return False

        u.groups.remove(*groups_list)
        u.save()
    except User.DoesNotExist:
        log.error(
            'Error finding user %s to update permissions. Does the user exist?'
            % username)
        return False
    return True
def add_user_groups(username, groups):
    #groups is a list of (silo_name, permission_name) tuples
    try:
        groups_list_names = [group_name(*group) for group in groups]
        u = User.objects.get(username=username)
        log.info("Adding user '%s' to %s" % (username, groups_list_names))
        # gather list of group objects
        groups_list = []
        for gname in groups_list_names:
            try:
                if gname == u"superuser":
                    u.is_superuser = True
                else:
                    g_obj = Group.objects.get(name=gname)
                    groups_list.append(g_obj)
            except Group.DoesNotExist:
                log.warn("Group '%s' does not exist so cannot add '%s' to it" % (gname, username))
                # TODO: Should groups be automagically added here?
                return False
                
        u.groups.add(*groups_list)
        u.save()
    except User.DoesNotExist:
        log.error('Error finding user %s to update permissions. Does the user exist?'%username)
        return False
    return True
Example #3
0
def del_group_helper(siloname, role):
    group_name = group_name(siloname, role)
    try:
        group = Group.objects.get(name=group_name)
        log.info("Deleting '%s'")
        g.delete()
    except Group.DoesNotExist:
        log.info("Skipping '%s' - does not exists in db" % group_name)
def del_group_helper(siloname, role):
    group_name = group_name(siloname, role)
    try:
        group = Group.objects.get(name=group_name)
        log.info("Deleting '%s'")
        g.delete()
    except Group.DoesNotExist:
        log.info("Skipping '%s' - does not exists in db" % group_name)
Example #5
0
def add_group_helper(siloname, role):
    gname = group_name(siloname, role)
    try:
        group = Group.objects.get(name=gname)
        log.info("Skipping '%s' - exists in db already" % group_name)
    except Group.DoesNotExist:
        log.info("Creating '%s'")
        g = Group(name=gname)
        g.save()
def add_group_helper(siloname, role):
    gname = group_name(siloname, role)
    try:
        group = Group.objects.get(name=gname)
        log.info("Skipping '%s' - exists in db already" % group_name)
    except Group.DoesNotExist:
        log.info("Creating '%s'")
        g = Group(name=gname)
        g.save()
Example #7
0
def delete_group_users(silo_name, user_groups):
    #user_groups is a list of (user_name, permission_name) tuples
    groups_holder = {}
    user_holder = {}
    user_groups_holder = {}
    for user, role in user_groups:
        if not user_groups_holder.has_key(user):
            user_groups_holder[user] = []
        try:
            gname = group_name(silo_name, role)
            if not groups_holder.has_key(gname):
                g_obj = Group.objects.get(name=gname)
                groups_holder[gname] = g_obj
                user_groups_holder[user].append(g_obj)
            else:
                user_groups_holder[user].append(groups_holder[gname])
        except Group.DoesNotExist:
            log.warn("Group '%s' does not exist" % (gname))
            # TODO: Should groups be automagically added here?
            return False

        try:
            if not user_holder.has_key(user):
                u_obj = User.objects.get(username=user)
                user_holder[user] = u_obj
        except User.DoesNotExist:
            log.warn("User '%s' does not exist" % (user))
            # TODO: Should users be automagically added here?

    # Now actually add the users to their groups
    for user, roles in user_groups_holder.iteritems():
        user_holder[user].groups.remove(*roles)
        user_holder[user].save()

    # explicitly delete references to the heavy db object collections
    # to give the gc a headstart
    del groups_holder
    del user_holder
    del user_groups

    return True
def delete_group_users(silo_name, user_groups):    
    #user_groups is a list of (user_name, permission_name) tuples
    groups_holder = {}
    user_holder = {}
    user_groups_holder = {}
    for user, role in user_groups:
        if not user_groups_holder.has_key(user):
            user_groups_holder[user] = []
        try:
            gname = group_name(silo_name, role)
            if not groups_holder.has_key(gname):
                g_obj = Group.objects.get(name=gname)
                groups_holder[gname] = g_obj
                user_groups_holder[user].append(g_obj)
            else:
                user_groups_holder[user].append(groups_holder[gname])
        except Group.DoesNotExist:
            log.warn("Group '%s' does not exist" % (gname))
            # TODO: Should groups be automagically added here?
            return False
        
        try:
            if not user_holder.has_key(user):
                u_obj = User.objects.get(username=user)
                user_holder[user] = u_obj
        except User.DoesNotExist:
            log.warn("User '%s' does not exist" % (user))
            # TODO: Should users be automagically added here?
    
    # Now actually add the users to their groups
    for user, roles in user_groups_holder.iteritems():
        user_holder[user].groups.remove(*roles)
        user_holder[user].save()
    
    # explicitly delete references to the heavy db object collections
    # to give the gc a headstart
    del groups_holder
    del user_holder
    del user_groups
    
    return True