Pushing users into PaperCut (IDM Integration)

Management of users within PaperCut is usually handled through importing from a directory source such as Active Directory, eDirectory or Open Directory.

Sites with a high turnover of Users & Shared Accounts, or with the need for more real time configuration of a large user base, can take advantage of the PaperCut API set to configure information. This information can be new Users and their configuration, new Shared Account codes and their configuration and importantly the relationship between the two.

A number of larger installations are taking advantage of this style of integration as IDM solutions mature and allow for custom hook-ins to be written in languages like Java or C#.

Interfacing into PaperCut

PaperCut includes everything you need to make use of the API set. The APIs are hosted as part of the PaperCut Application Server and don’t require any additional licensing to take advantage of them. PaperCut also ships with a ServerCommandProxy class that abstracts the XML-RPC calls and provides these web service calls as functions of an object. If you can create an instance of a class and call its methods you will be able to integrate with PaperCut.

Use case

In this example, we will consider the creation of a user that is required to charge their jobs to a secondary Shared Account. This is a common scenario for employees in professional industry (Lawyers charging to Matters) as well as education (Staff charging to Departments).

Recommended API calls

The complete list of extensive APIs available can be found here. For this particular task, the interfaces required are;

  1. isUserExists - Test to see if a user exists in the system/database.
  2. addNewUser - Triggers the process of adding a new user account defined by a given username.
  3. setUserProperty - Sets a user property. Properties include the user’s full name, department, email, notes, office, password (for internal users) and restriction status among others.
  4. setUserAccountSelectionStandardPopup - Sets a user’s account selection to standard account selection popup.
  5. isSharedAccountExists - Test to see if a shared account exists in the system/database.
  6. addNewSharedAccount - Create a new shared account with the given name.
  7. AddSharedAccountAccessUser - Allow the given user access to the given shared account without using a pin.

Pseudocode process

The pseudocode of the process would be

  1. Connect to the PaperCut Server
  2. If the username doesn’t exist
    1. Create the user
  3. Configure the user to be unrestricted (unlimited copy and print)
  4. Configure the user to select a Shared Account for their transactions
  5. For each of the Departments/Matters this user should be able to access
    1. If the Department/Matter doesn’t exist
      1. Create the Department/Matter
    2. If this user doesn’t have access to charge to this Department/Matter
      1. Grant this user the ability to charge to the Department/Matter

C# example

Categories: How-to Articles, User Management, Scripting and APIs

Keywords: IDM, FIM, ID Vault