Skip to main content

User Group Source Plugins


User Group Source Plugins

About

User Group Source plugins allow you to add roles to a user when the user logs in.

Use

Create a user group source plugin and install it like other Rundeck plugins. When a user logs in, your plugin will be called with the user's username and will add any roles you have designated to the user.

Configuring

To configure your plugin you can add configuration values to the framework scope.

Framework scope property definition in framework.properties

framework.plugin.UserGroupSource.[your_plugin_name].[property]=value

Please note you cannot configure this plugin at a project level because it executes before any project information is applicable.

Java Plugin Type

package example;

import com.dtolabs.rundeck.core.plugins.Plugin;
import com.dtolabs.rundeck.plugins.ServiceNameConstants;
import com.dtolabs.rundeck.plugins.user.groups.UserGroupSourcePlugin;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Plugin(name = "example-user-group-source-plugin",service= ServiceNameConstants.UserGroupSource)
public class ExampleUserGroupSourcePlugin implements UserGroupSourcePlugin {
    List<String> groups = new ArrayList<>();

    public ExampleUserGroupSourcePlugin() {
        groups.add("RUNDECK_USER"); //This group would get added to all users
    }

    @Override
    public List<String> getGroups(final String username, final Map<String, Object> config) {
        //Check username and add groups from your datasource
        if(username.equals("bob")) {
            groups.add("PROJECT_MANAGER");
        } else if(username.equals("alice")) {
            groups.add("ENGINEERING");
        }
        return groups;
    }
}

Script Plugin Type

Roles will be picked up from the script between the markers ==START_GROUPS== and ==END_GROUPS==. Echo one role name per line.

#!/usr/bin/env bash

echo "==START_GROUPS=="
echo "role1"
echo "role2"
echo "==END_GROUPS=="