Exemple #1
0
def reload_all():
    """
    Reloads all users, groups, and permissions from file
    """
    global registered_users, registered_groups

    if config.users_config().reload() and config.groups_config().reload():
        registered_groups = []
        new_registered_users = []

        for group in config.groups_config().sections():
            group_permissions = config.parse_safe_csv(config.groups_config()[group]["permissions"])
            registered_groups.append(Group(group, [p for p in group_permissions if p != ""]))
        for user in config.users_config().sections():
            user_groups = config.parse_safe_csv(config.users_config()[user]["groups"])
            groups = []
            for group in user_groups:
                for group2 in registered_groups:
                    if group == group2.name:
                        groups.append(group2)
            user_permissions = config.parse_safe_csv(config.users_config()[user]["permissions"])
            user_address = config.users_config()[user]["socket_address"]
            new_user = User(user, user_address, groups, [p for p in user_permissions if p != ""])
            for existing in registered_users:
                if existing.name == new_user.name:
                    new_user._sockets = existing._sockets
            new_registered_users.append(new_user)
        registered_users = new_registered_users
    else:
        return False
Exemple #2
0
def add_user_permissions(user_name, perms):
    """
    Adds a permission string to a user
    """
    if config.users_config().has_section(user_name):
        old_perms = config.parse_safe_csv(config.users_config()[user_name]["permissions"])
        new_perms = config.parse_safe_csv(perms)
        if all([perm not in old_perms for perm in new_perms]):
            config.users_config().set(user_name, "permissions", config.append_csv(config.users_config()[user_name]["permissions"], perms))
            config.users_config().save()
            return True
        else:
            return -2
    else:
        return -1
Exemple #3
0
def remove_user_permissions(user_name, perms):
    """
    Adds a permission string to a user
    """
    if config.users_config().has_section(user_name):
        old_perms = config.parse_safe_csv(config.users_config()[user_name]["permissions"])
        rem_perms = config.parse_safe_csv(perms)
        if all([perm in old_perms for perm in rem_perms]):
            for perm in rem_perms:
                old_perms.remove(perm)
            config.users_config().set(user_name, "permissions", config.list_to_csv(old_perms))
            config.users_config().save()
            return True
        else:
            return -2
    else:
        return -1
Exemple #4
0
def add_user_to_group(user_name, group_name):
    """
    Adds a user to the specified group
    """
    if config.users_config().has_section(user_name):
        if config.groups_config().has_section(group_name):
            groups = config.parse_safe_csv(config.users_config()[user_name]["groups"])
            if group_name in groups:
                return -3
            config.users_config().set(user_name, "groups", config.append_csv(config.users_config()[user_name]["groups"], group_name))
            config.users_config().save()
            return True
        else:
            return -2
    else:
        return -1
Exemple #5
0
def remove_user_from_group(user_name, group_name):
    """
    Removes a user from the specified group
    """
    if config.users_config().has_section(user_name):
        if config.groups_config().has_section(group_name):
            groups = config.parse_safe_csv(config.users_config()[user_name]["groups"])
            if group_name not in groups:
                return -3
            groups.remove(group_name)
            config.users_config().set(user_name, "groups", config.list_to_csv(groups))
            config.users_config().save()
            return True
        else:
            return -2
    else:
        return -1