GetUsersOOO
Retrieves users who are currently out of the office. The script use the OutOfOfficeListCleanup script to remove users from the out-of-office list whose 'off until day' is in the past.
- Type
- python
- Pack
- ShiftManagement
Source
from CommonServerPython import *
def main():
# get current time
now = datetime.now()
# args
list_name = demisto.getArg("listname")
if not list_name:
list_name = "OOO List"
# update list name to start with 'OOO', so we can't overwrite other lists with this
if not list_name.startswith("OOO"):
list_name = f"OOO {list_name}"
# clean the out of office list
ooo_cleanup_res = demisto.executeCommand("OutOfOfficeListCleanup", {"listName": list_name})
if isError(ooo_cleanup_res):
return_error(f"Failed to cleanup OOO list: {get_error(ooo_cleanup_res)!s}")
# get the out of office list, check if the list exists, if not create it:
ooo_list = demisto.executeCommand("getList", {"listName": list_name})[0]["Contents"]
get_users_response = demisto.executeCommand("getUsers", {})
if is_error(get_users_response):
return_error(f"Failed to get users: {get_error(get_users_response)!s}")
users_list = get_users_response[0]["EntryContext"]["DemistoUsers"]
if any(ele in ooo_list for ele in ["Item not found", "null"]):
users_list = []
else:
# get ooo users
ooo_users = []
list_data = json.loads(ooo_list)
for item in list_data:
if item.get("offuntil"):
off_until = datetime.strptime(item["offuntil"], "%Y-%m-%d")
if off_until > now:
ooo_users.append(item.get("user"))
# keep only ooo users in users_list
users_list = list(filter(lambda x: x["username"] in ooo_users, users_list))
if users_list:
hr = "Out of office Team members\n" + tableToMarkdown("", users_list)
else:
hr = "Out of office Team members\nNo team members are out of office today."
return_results(
{
"Type": entryTypes["note"],
"ContentsFormat": formats["markdown"],
"Contents": hr,
"EntryContext": {"ShiftManagment.OOOUsers": users_list},
}
)
if __name__ in ("__builtin__", "builtins", "__main__"):
main()
README
Retrieves users who are currently out of the office. The script use the OutOfOfficeListCleanup script to remove users from the out-of-office list whose ‘off until day’ is in the past.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | Shift Management, widget |
| Cortex XSOAR Version | 5.5.0 |
Used In
This script is used in the following playbooks and scripts.
Shift handover
Inputs
| Argument Name | Description |
|---|---|
| listname | The name of the out-of-office list. Default is “OOO List”. |
Outputs
There are no outputs for this script.