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
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 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 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