Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This guide explains how to create an auto-deactivating-user task in OpenMRS. The task involves setting the "number of days to retire users" via the user interface and then running the auto-deactivation task.

Setting the Number of Days to Retire Users

  1. Log in to OpenMRS.

  2. Set the global property GP_NUMBER_OF_DAYS_FOR_AUTO_RETIRING_USER:

    • Find global property GP_NUMBER_OF_DAYS_FOR_AUTO_RETIRING_USER.

    • Enter the desired number of days of inactivity after which users should be retired.

    • Save the changes.

Running the Auto-Deactivating User Task

The auto-deactivating user task is implemented as a scheduled task in OpenMRS. This task will automatically retire users who have been inactive for the specified number of days.

Note: Admin users (aka super users) will not be retired.

Implementation

The task is defined in the AutoRetireUsersTask class.

Steps to Schedule the Task:

  1. Fill in the details for the task:

    • Name: Auto Retire Users

    • Description: e.g Retires all active users that are inactive for XX number of days specified by the value of the global property 'users.numberOfDaysToRetire'.

    • Class: org.openmrs.scheduler.tasks.AutoRetireUsersTask

    • Start Time: Set the desired start time.

    • Repeat Interval: Set to 86400 (which represents 24 hours) to run daily.

    • Start on Startup: Set to true.

    • Started: Set to true to start the task immediately.

  2. Save the Task:

    1. Save the task configuration.

    2. The task will now be scheduled to run at the specified interval, automatically retiring inactive users based on the global property setting.

Example Database Changeset

<changeSet author="name (generated)" id="202405201900-1">
    <insert tableName="scheduler_task_config">
       <column name="task_config_id" valueNumeric="3"/>
       <column name="name" value="Auto Retire users"/>
       <column name="description" value="Retires all active users that are inactive for XX number of days specified by the value of the global property 'users.numberOfDaysToRetire'"/>
       <column name="schedulable_class" value="org.openmrs.scheduler.tasks.AutoRetireUsersTask"/>
       <column name="start_time" value="2024-05-22T23:59:59"/>
       <column name="start_time_pattern" value="MM/dd/yyyy HH:mm:ss"/>
       <column name="repeat_interval" valueNumeric="86400"/>
       <column name="start_on_startup" valueBoolean="true"/>
       <column name="started" valueBoolean="false"/>
       <column name="created_by" valueNumeric="1"/>
       <column name="date_created" value="2024-05-20T10:00:00"/>
       <column name="changed_by"/>
       <column name="date_changed"/>
       <column name="last_execution_time"/>
       <column name="uuid" value="02f598d9-e3bb-4f6f-94b6-182c6856413a"/>
    </insert>
</changeSet>

By following these steps, you can schedule and run the auto-deactivating user task in OpenMRS, ensuring that inactive users are retired after the specified period of inactivity.

  • No labels