Roles Overview

| All Roles | Attorney | Judge | Colocated | Acting Judge | Dispatch User | Regional Office User | Intake User | Hearings User |

Roles Overview #

There are a number of different roles available within Caseflow defined primarily by which functions they are allowed to perform.

Users with a particular role will have access to perform different actions on tasks that have been assigned to them in their queue. To learn more about what roles can perform which actions on a given task, refer to each of the user role pages above.

Caseflow User Access Guidance.pdf

Queue #

Each of the roles is associated with a particular queue that will be created for them if it does not exist as well as a list of available tasks associated with that queue. Attorneys get a special AttorneyQueue while all other user roles will receive a GenericQueue. Queues are built whenever the task list is loaded or a new task is created

In the Queue application, there are some tasks that are specific to the user roles above (see the individual role pages for specific examples). Other tasks are created and used by the system, such as the Distribution Task which is used to auto-assign tasks to judges.


Access Control #

The Caseflow access control logic is implemented by checking several different attributes about the user. These attributes can come from a few different systems and use different methods to determine access.

The primary method for determining roles on a user is called roles

def roles
  (self[:roles] || []).inject([]) do |result, role|
    result.concat([role]).concat(FUNCTION_ALIASES[role] || [])
  end
end

Additional methods for verifying user roles are as follows

By Organization #

The different organizations that the user is associated with (through organization_users table) can determine to which team the user belongs. Some teams have tasks specific to them:

By Location #

If the user has a station ID that is listed in the Regional Office, their roles will include the Regional Office User role.

By Staff Fields #

If the user is a VACOLS Staff, then they will have additional information on user profile to determine whether they will have one of the following roles:

By Function #

Functions encompass a number of actions within the application that a user can perform if they have been granted that particular function. These actions help determine whether the user will be in one of the secondary roles listed above. Current functions include the following:

  • Build HearSched
  • Edit HearSched
  • RO ViewHearSched
  • VSO (a misleading term, as PrivateBar Organization users also receive the VSO role)
  • Hearing Prep