activity.ts 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704
  1. import type {
  2. HasObjectId,
  3. IPageHasId,
  4. IUser,
  5. IUserHasId,
  6. Ref,
  7. } from '@growi/core';
  8. import type { PaginateResult } from './mongoose-utils';
  9. // Model
  10. const MODEL_PAGE = 'Page';
  11. const MODEL_USER = 'User';
  12. const MODEL_COMMENT = 'Comment';
  13. const MODEL_PAGE_BULK_EXPORT_JOB = 'PageBulkExportJob';
  14. // Action
  15. const ACTION_UNSETTLED = 'UNSETTLED';
  16. const ACTION_USER_REGISTRATION_APPROVAL_REQUEST =
  17. 'USER_REGISTRATION_APPROVAL_REQUEST';
  18. const ACTION_USER_REGISTRATION_SUCCESS = 'USER_REGISTRATION_SUCCESS';
  19. const ACTION_USER_LOGIN_WITH_LOCAL = 'USER_LOGIN_WITH_LOCAL';
  20. const ACTION_USER_LOGIN_WITH_LDAP = 'USER_LOGIN_WITH_LDAP';
  21. const ACTION_USER_LOGIN_WITH_GOOGLE = 'USER_LOGIN_WITH_GOOGLE';
  22. const ACTION_USER_LOGIN_WITH_GITHUB = 'USER_LOGIN_WITH_GITHUB';
  23. const ACTION_USER_LOGIN_WITH_OIDC = 'USER_LOGIN_WITH_OIDC';
  24. const ACTION_USER_LOGIN_WITH_SAML = 'USER_LOGIN_WITH_SAML';
  25. const ACTION_USER_LOGIN_FAILURE = 'USER_LOGIN_FAILURE';
  26. const ACTION_USER_LOGOUT = 'USER_LOGOUT';
  27. const ACTION_USER_FOGOT_PASSWORD = 'USER_FOGOT_PASSWORD';
  28. const ACTION_USER_RESET_PASSWORD = 'USER_RESET_PASSWORD';
  29. const ACTION_USER_PERSONAL_SETTINGS_UPDATE = 'USER_PERSONAL_SETTINGS_UPDATE';
  30. const ACTION_USER_IMAGE_TYPE_UPDATE = 'USER_IMAGE_TYPE_UPDATE';
  31. const ACTION_USER_LDAP_ACCOUNT_ASSOCIATE = 'USER_LDAP_ACCOUNT_ASSOCIATE';
  32. const ACTION_USER_LDAP_ACCOUNT_DISCONNECT = 'USER_LDAP_ACCOUNT_DISCONNECT';
  33. const ACTION_USER_PASSWORD_UPDATE = 'USER_PASSWORD_UPDATE';
  34. const ACTION_USER_ACCESS_TOKEN_CREATE = 'USER_ACCESS_TOKEN_CREATE';
  35. const ACTION_USER_ACCESS_TOKEN_DELETE = 'USER_ACCESS_TOKEN_DELETE';
  36. const ACTION_USER_EDITOR_SETTINGS_UPDATE = 'USER_EDITOR_SETTINGS_UPDATE';
  37. const ACTION_USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE =
  38. 'USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE';
  39. const ACTION_PAGE_VIEW = 'PAGE_VIEW';
  40. const ACTION_PAGE_USER_HOME_VIEW = 'PAGE_USER_HOME_VIEW';
  41. const ACTION_PAGE_NOT_FOUND = 'PAGE_NOT_FOUND';
  42. const ACTION_PAGE_FORBIDDEN = 'PAGE_FORBIDDEN';
  43. const ACTION_PAGE_NOT_CREATABLE = 'PAGE_NOT_CREATABLE';
  44. const ACTION_PAGE_LIKE = 'PAGE_LIKE';
  45. const ACTION_PAGE_UNLIKE = 'PAGE_UNLIKE';
  46. const ACTION_PAGE_BOOKMARK = 'PAGE_BOOKMARK';
  47. const ACTION_PAGE_UNBOOKMARK = 'PAGE_UNBOOKMARK';
  48. const ACTION_PAGE_CREATE = 'PAGE_CREATE';
  49. const ACTION_PAGE_UPDATE = 'PAGE_UPDATE';
  50. const ACTION_PAGE_RENAME = 'PAGE_RENAME';
  51. const ACTION_PAGE_DUPLICATE = 'PAGE_DUPLICATE';
  52. const ACTION_PAGE_DELETE = 'PAGE_DELETE';
  53. const ACTION_PAGE_DELETE_COMPLETELY = 'PAGE_DELETE_COMPLETELY';
  54. const ACTION_PAGE_REVERT = 'PAGE_REVERT';
  55. const ACTION_PAGE_EMPTY_TRASH = 'PAGE_EMPTY_TRASH';
  56. const ACTION_PAGE_RECURSIVELY_RENAME = 'PAGE_RECURSIVELY_RENAME';
  57. const ACTION_PAGE_RECURSIVELY_DELETE = 'PAGE_RECURSIVELY_DELETE';
  58. const ACTION_PAGE_RECURSIVELY_DELETE_COMPLETELY =
  59. 'PAGE_RECURSIVELY_DELETE_COMPLETELY';
  60. const ACTION_PAGE_RECURSIVELY_REVERT = 'PAGE_RECURSIVELY_REVERT';
  61. const ACTION_PAGE_SUBSCRIBE = 'PAGE_SUBSCRIBE';
  62. const ACTION_PAGE_UNSUBSCRIBE = 'PAGE_UNSUBSCRIBE';
  63. const ACTION_PAGE_EXPORT = 'PAGE_EXPORT';
  64. const ACTION_PAGE_BULK_EXPORT_COMPLETED = 'PAGE_BULK_EXPORT_COMPLETED';
  65. const ACTION_PAGE_BULK_EXPORT_FAILED = 'PAGE_BULK_EXPORT_FAILED';
  66. const ACTION_PAGE_BULK_EXPORT_JOB_EXPIRED = 'PAGE_BULK_EXPORT_JOB_EXPIRED';
  67. const ACTION_TAG_UPDATE = 'TAG_UPDATE';
  68. const ACTION_IN_APP_NOTIFICATION_ALL_STATUSES_OPEN =
  69. 'IN_APP_NOTIFICATION_ALL_STATUSES_OPEN';
  70. const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
  71. const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
  72. const ACTION_COMMENT_REMOVE = 'COMMENT_REMOVE';
  73. const ACTION_SHARE_LINK_CREATE = 'SHARE_LINK_CREATE';
  74. const ACTION_SHARE_LINK_DELETE = 'SHARE_LINK_DELETE';
  75. const ACTION_SHARE_LINK_DELETE_BY_PAGE = 'SHARE_LINK_DELETE_BY_PAGE';
  76. const ACTION_SHARE_LINK_ALL_DELETE = 'SHARE_LINK_ALL_DELETE';
  77. const ACTION_SHARE_LINK_PAGE_VIEW = 'SHARE_LINK_PAGE_VIEW';
  78. const ACTION_SHARE_LINK_EXPIRED_PAGE_VIEW = 'SHARE_LINK_EXPIRED_PAGE_VIEW';
  79. const ACTION_SHARE_LINK_NOT_FOUND = 'SHARE_LINK_NOT_FOUND';
  80. const ACTION_ATTACHMENT_ADD = 'ATTACHMENT_ADD';
  81. const ACTION_ATTACHMENT_REMOVE = 'ATTACHMENT_REMOVE';
  82. const ACTION_ATTACHMENT_DOWNLOAD = 'ATTACHMENT_DOWNLOAD';
  83. const ACTION_SEARCH_PAGE = 'SEARCH_PAGE';
  84. const ACTION_SEARCH_PAGE_VIEW = 'SEARCH_PAGE_VIEW';
  85. const ACTION_ADMIN_APP_SETTINGS_UPDATE = 'ADMIN_APP_SETTING_UPDATE';
  86. const ACTION_ADMIN_SITE_URL_UPDATE = 'ADMIN_SITE_URL_UPDATE';
  87. const ACTION_ADMIN_MAIL_SMTP_UPDATE = 'ADMIN_MAIL_SMTP_UPDATE';
  88. const ACTION_ADMIN_MAIL_SES_UPDATE = 'ADMIN_MAIL_SES_UPDATE';
  89. const ACTION_ADMIN_MAIL_TEST_SUBMIT = 'ADMIN_MAIL_TEST_SUBMIT';
  90. const ACTION_ADMIN_FILE_UPLOAD_CONFIG_UPDATE =
  91. 'ADMIN_FILE_UPLOAD_CONFIG_UPDATE';
  92. const ACTION_ADMIN_PAGE_BULK_EXPORT_SETTINGS_UPDATE =
  93. 'ADMIN_PAGE_BULK_EXPORT_SETTINGS_UPDATE';
  94. const ACTION_ADMIN_ATTACHMENT_DISPOSITION_UPDATE =
  95. 'ADMIN_ATTACHMENT_DISPOSITION_UPDATE';
  96. const ACTION_ADMIN_MAINTENANCEMODE_ENABLED = 'ADMIN_MAINTENANCEMODE_ENABLED';
  97. const ACTION_ADMIN_MAINTENANCEMODE_DISABLED = 'ADMIN_MAINTENANCEMODE_DISABLED';
  98. const ACTION_ADMIN_SECURITY_SETTINGS_UPDATE = 'ADMIN_SECURITY_SETTINGS_UPDATE';
  99. const ACTION_ADMIN_PERMIT_SHARE_LINK = 'ADMIN_PERMIT_SHARE_LINK';
  100. const ACTION_ADMIN_REJECT_SHARE_LINK = 'ADMIN_REJECT_SHARE_LINK';
  101. const ACTION_ADMIN_AUTH_ID_PASS_ENABLED = 'ADMIN_AUTH_ID_PASS_ENABLED';
  102. const ACTION_ADMIN_AUTH_ID_PASS_DISABLED = 'ADMIN_AUTH_ID_PASS_DISABLED';
  103. const ACTION_ADMIN_AUTH_ID_PASS_UPDATE = 'ADMIN_AUTH_ID_PASS_UPDATE';
  104. const ACTION_ADMIN_AUTH_LDAP_ENABLED = 'ADMIN_AUTH_LDAP_ENABLED';
  105. const ACTION_ADMIN_AUTH_LDAP_DISABLED = 'ADMIN_AUTH_LDAP_DISABLED';
  106. const ACTION_ADMIN_AUTH_LDAP_UPDATE = 'ADMIN_AUTH_LDAP_UPDATE';
  107. const ACTION_ADMIN_AUTH_SAML_ENABLED = 'ADMIN_AUTH_SAML_ENABLED';
  108. const ACTION_ADMIN_AUTH_SAML_DISABLED = 'ADMIN_AUTH_SAML_DISABLED';
  109. const ACTION_ADMIN_AUTH_SAML_UPDATE = 'ADMIN_AUTH_SAML_UPDATE';
  110. const ACTION_ADMIN_AUTH_OIDC_ENABLED = 'ADMIN_AUTH_OIDC_ENABLED';
  111. const ACTION_ADMIN_AUTH_OIDC_DISABLED = 'ADMIN_AUTH_OIDC_DISABLED';
  112. const ACTION_ADMIN_AUTH_OIDC_UPDATE = 'ADMIN_AUTH_OIDC_UPDATE';
  113. const ACTION_ADMIN_AUTH_GOOGLE_ENABLED = 'ADMIN_AUTH_GOOGLE_ENABLED';
  114. const ACTION_ADMIN_AUTH_GOOGLE_DISABLED = 'ADMIN_AUTH_GOOGLE_DISABLED';
  115. const ACTION_ADMIN_AUTH_GOOGLE_UPDATE = 'ADMIN_AUTH_GOOGLE_UPDATE';
  116. const ACTION_ADMIN_AUTH_GITHUB_ENABLED = 'ADMIN_AUTH_GITHUB_ENABLED';
  117. const ACTION_ADMIN_AUTH_GITHUB_DISABLED = 'ADMIN_AUTH_GITHUB_DISABLED';
  118. const ACTION_ADMIN_AUTH_GITHUB_UPDATE = 'ADMIN_AUTH_GITHUB_UPDATE';
  119. const ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE =
  120. 'ADMIN_MARKDOWN_LINE_BREAK_UPDATE';
  121. const ACTION_ADMIN_MARKDOWN_INDENT_UPDATE = 'ADMIN_MARKDOWN_INDENT_UPDATE';
  122. const ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE =
  123. 'ADMIN_MARKDOWN_PRESENTATION_UPDATE';
  124. const ACTION_ADMIN_MARKDOWN_XSS_UPDATE = 'ADMIN_MARKDOWN_XSS_UPDATE';
  125. const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
  126. const ACTION_ADMIN_THEME_UPDATE = 'ADMIN_THEME_UPDATE';
  127. const ACTION_ADMIN_SIDEBAR_UPDATE = 'ADMIN_SIDEBAR_UPDATE';
  128. const ACTION_ADMIN_FUNCTION_UPDATE = 'ADMIN_FUNCTION_UPDATE';
  129. const ACTION_ADMIN_CODE_HIGHLIGHT_UPDATE = 'ADMIN_CODE_HIGHLIGHT_UPDATE';
  130. const ACTION_ADMIN_CUSTOM_TITLE_UPDATE = 'ADMIN_CUSTOM_TITLE_UPDATE';
  131. const ACTION_ADMIN_CUSTOM_NOSCRIPT_UPDATE = 'ADMIN_CUSTOM_NOSCRIPT_UPDATE';
  132. const ACTION_ADMIN_CUSTOM_CSS_UPDATE = 'ADMIN_CUSTOM_CSS_UPDATE';
  133. const ACTION_ADMIN_CUSTOM_SCRIPT_UPDATE = 'ADMIN_CUSTOM_SCRIPT_UPDATE';
  134. const ACTION_ADMIN_ARCHIVE_DATA_UPLOAD = 'ADMIN_ARCHIVE_DATA_UPLOAD';
  135. const ACTION_ADMIN_GROWI_DATA_IMPORTED = 'ADMIN_GROWI_DATA_IMPORTED';
  136. const ACTION_ADMIN_UPLOADED_GROWI_DATA_DISCARDED =
  137. 'ADMIN_UPLOADED_GROWI_DATA_DISCARDED';
  138. const ACTION_ADMIN_ESA_DATA_IMPORTED = 'ADMIN_ESA_DATA_IMPORTED';
  139. const ACTION_ADMIN_ESA_DATA_UPDATED = 'ADMIN_ESA_DATA_UPDATED';
  140. const ACTION_ADMIN_CONNECTION_TEST_OF_ESA_DATA =
  141. 'ADMIN_CONNECTION_TEST_OF_ESA_DATA';
  142. const ACTION_ADMIN_QIITA_DATA_IMPORTED = 'ADMIN_QIITA_DATA_IMPORTED';
  143. const ACTION_ADMIN_QIITA_DATA_UPDATED = 'ADMIN_QIITA_DATA_UPDATED';
  144. const ACTION_ADMIN_CONNECTION_TEST_OF_QIITA_DATA =
  145. 'ADMIN_CONNECTION_TEST_OF_QIITA_DATA';
  146. const ACTION_ADMIN_ARCHIVE_DATA_CREATE = 'ADMIN_ARCHIVE_DATA_CREATE';
  147. const ACTION_ADMIN_ARCHIVE_DATA_DOWNLOAD = 'ADMIN_ARCHIVE_DATA_DOWNLOAD';
  148. const ACTION_ADMIN_ARCHIVE_DATA_DELETE = 'ADMIN_ARCHIVE_DATA_DELETE';
  149. const ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD =
  150. 'ADMIN_USER_NOTIFICATION_SETTINGS_ADD';
  151. const ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_DELETE =
  152. 'ADMIN_USER_NOTIFICATION_SETTINGS_DELETE';
  153. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD =
  154. 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD';
  155. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE =
  156. 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE';
  157. const ACTION_ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE =
  158. 'ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE';
  159. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED =
  160. 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED';
  161. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED =
  162. 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED';
  163. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE =
  164. 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE';
  165. const ACTION_ADMIN_SLACK_WORKSPACE_CREATE = 'ADMIN_SLACK_WORKSPACE_CREATE';
  166. const ACTION_ADMIN_SLACK_WORKSPACE_DELETE = 'ADMIN_SLACK_WORKSPACE_DELETE';
  167. const ACTION_ADMIN_SLACK_BOT_TYPE_UPDATE = 'ADMIN_SLACK_BOT_TYPE_UPDATE';
  168. const ACTION_ADMIN_SLACK_BOT_TYPE_DELETE = 'ADMIN_SLACK_BOT_TYPE_DELETE';
  169. const ACTION_ADMIN_SLACK_ACCESS_TOKEN_REGENERATE =
  170. 'ADMIN_SLACK_ACCESS_TOKEN_REGENERATE';
  171. const ACTION_ADMIN_SLACK_MAKE_APP_PRIMARY = 'ADMIN_SLACK_MAKE_APP_PRIMARY';
  172. const ACTION_ADMIN_SLACK_PERMISSION_UPDATE = 'ADMIN_SLACK_PERMISSION_UPDATE';
  173. const ACTION_ADMIN_SLACK_PROXY_URI_UPDATE = 'ADMIN_SLACK_PROXY_URI_UPDATE';
  174. const ACTION_ADMIN_SLACK_RELATION_TEST = 'ADMIN_SLACK_RELATION_TEST';
  175. const ACTION_ADMIN_SLACK_WITHOUT_PROXY_SETTINGS_UPDATE =
  176. 'ADMIN_SLACK_WITHOUT_PROXY_SETTINGS_UPDATE';
  177. const ACTION_ADMIN_SLACK_WITHOUT_PROXY_PERMISSION_UPDATE =
  178. 'ADMIN_SLACK_WITHOUT_PROXY_PERMISSION_UPDATE';
  179. const ACTION_ADMIN_SLACK_WITHOUT_PROXY_TEST = 'ADMIN_SLACK_WITHOUT_PROXY_TEST';
  180. const ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE =
  181. 'ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE';
  182. const ACTION_ADMIN_USERS_INVITE = 'ADMIN_USERS_INVITE';
  183. const ACTION_ADMIN_USERS_PASSWORD_RESET = 'ADMIN_USERS_PASSWORD_RESET';
  184. const ACTION_ADMIN_USERS_ACTIVATE = 'ADMIN_USERS_ACTIVATE';
  185. const ACTION_ADMIN_USERS_GRANT_ADMIN = 'ADMIN_USERS_GRANT_ADMIN';
  186. const ACTION_ADMIN_USERS_REVOKE_ADMIN = 'ADMIN_USERS_REVOKE_ADMIN';
  187. const ACTION_ADMIN_USERS_GRANT_READ_ONLY = 'ADMIN_USERS_GRANT_READ_ONLY';
  188. const ACTION_ADMIN_USERS_REVOKE_READ_ONLY = 'ADMIN_USERS_REVOKE_READ_ONLY';
  189. const ACTION_ADMIN_USERS_DEACTIVATE = 'ADMIN_USERS_DEACTIVATE';
  190. const ACTION_ADMIN_USERS_SEND_INVITATION_EMAIL =
  191. 'ADMIN_USERS_SEND_INVITATION_EMAIL';
  192. const ACTION_ADMIN_USERS_REMOVE = 'ADMIN_USERS_REMOVE';
  193. const ACTION_ADMIN_USER_GROUP_CREATE = 'ADMIN_USER_GROUP_CREATE';
  194. const ACTION_ADMIN_USER_GROUP_UPDATE = 'ADMIN_USER_GROUP_UPDATE';
  195. const ACTION_ADMIN_USER_GROUP_DELETE = 'ADMIN_USER_GROUP_DELETE';
  196. const ACTION_ADMIN_USER_GROUP_ADD_USER = 'ADMIN_USER_GROUP_ADD_USER';
  197. const ACTION_ADMIN_SEARCH_CONNECTION = 'ADMIN_SEARCH_CONNECTION';
  198. const ACTION_ADMIN_SEARCH_INDICES_NORMALIZE = 'ADMIN_SEARCH_INDICES_NORMALIZE';
  199. const ACTION_ADMIN_SEARCH_INDICES_REBUILD = 'ADMIN_SEARCH_INDICES_REBUILD';
  200. export const SupportedTargetModel = {
  201. MODEL_PAGE,
  202. MODEL_USER,
  203. MODEL_PAGE_BULK_EXPORT_JOB,
  204. } as const;
  205. export const SupportedEventModel = {
  206. MODEL_COMMENT,
  207. } as const;
  208. export const SupportedActionCategory = {
  209. PAGE: 'Page',
  210. COMMENT: 'Comment',
  211. TAG: 'Tag',
  212. ATTACHMENT: 'Attachment',
  213. SHARE_LINK: 'ShareLink',
  214. IN_APP_NOTIFICATION: 'InAppNotification',
  215. SEARCH: 'Search',
  216. USER: 'User',
  217. ADMIN: 'Admin',
  218. } as const;
  219. export const SupportedAction = {
  220. ACTION_UNSETTLED,
  221. ACTION_USER_REGISTRATION_APPROVAL_REQUEST,
  222. ACTION_USER_REGISTRATION_SUCCESS,
  223. ACTION_USER_LOGIN_WITH_LOCAL,
  224. ACTION_USER_LOGIN_WITH_LDAP,
  225. ACTION_USER_LOGIN_WITH_GOOGLE,
  226. ACTION_USER_LOGIN_WITH_GITHUB,
  227. ACTION_USER_LOGIN_WITH_OIDC,
  228. ACTION_USER_LOGIN_WITH_SAML,
  229. ACTION_USER_LOGIN_FAILURE,
  230. ACTION_USER_LOGOUT,
  231. ACTION_USER_FOGOT_PASSWORD,
  232. ACTION_USER_RESET_PASSWORD,
  233. ACTION_USER_PERSONAL_SETTINGS_UPDATE,
  234. ACTION_USER_IMAGE_TYPE_UPDATE,
  235. ACTION_USER_LDAP_ACCOUNT_ASSOCIATE,
  236. ACTION_USER_LDAP_ACCOUNT_DISCONNECT,
  237. ACTION_USER_PASSWORD_UPDATE,
  238. ACTION_USER_ACCESS_TOKEN_CREATE,
  239. ACTION_USER_ACCESS_TOKEN_DELETE,
  240. ACTION_USER_EDITOR_SETTINGS_UPDATE,
  241. ACTION_USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE,
  242. ACTION_PAGE_VIEW,
  243. ACTION_PAGE_USER_HOME_VIEW,
  244. ACTION_PAGE_FORBIDDEN,
  245. ACTION_PAGE_NOT_FOUND,
  246. ACTION_PAGE_NOT_CREATABLE,
  247. ACTION_PAGE_LIKE,
  248. ACTION_PAGE_UNLIKE,
  249. ACTION_PAGE_BOOKMARK,
  250. ACTION_PAGE_UNBOOKMARK,
  251. ACTION_PAGE_CREATE,
  252. ACTION_PAGE_UPDATE,
  253. ACTION_PAGE_RENAME,
  254. ACTION_PAGE_DUPLICATE,
  255. ACTION_PAGE_DELETE,
  256. ACTION_PAGE_DELETE_COMPLETELY,
  257. ACTION_PAGE_REVERT,
  258. ACTION_PAGE_EMPTY_TRASH,
  259. ACTION_PAGE_RECURSIVELY_RENAME,
  260. ACTION_PAGE_RECURSIVELY_DELETE,
  261. ACTION_PAGE_RECURSIVELY_DELETE_COMPLETELY,
  262. ACTION_PAGE_RECURSIVELY_REVERT,
  263. ACTION_PAGE_SUBSCRIBE,
  264. ACTION_PAGE_UNSUBSCRIBE,
  265. ACTION_PAGE_EXPORT,
  266. ACTION_TAG_UPDATE,
  267. ACTION_IN_APP_NOTIFICATION_ALL_STATUSES_OPEN,
  268. ACTION_COMMENT_CREATE,
  269. ACTION_COMMENT_UPDATE,
  270. ACTION_COMMENT_REMOVE,
  271. ACTION_SHARE_LINK_CREATE,
  272. ACTION_SHARE_LINK_DELETE,
  273. ACTION_SHARE_LINK_DELETE_BY_PAGE,
  274. ACTION_SHARE_LINK_ALL_DELETE,
  275. ACTION_SHARE_LINK_PAGE_VIEW,
  276. ACTION_SHARE_LINK_EXPIRED_PAGE_VIEW,
  277. ACTION_SHARE_LINK_NOT_FOUND,
  278. ACTION_ATTACHMENT_ADD,
  279. ACTION_ATTACHMENT_REMOVE,
  280. ACTION_ATTACHMENT_DOWNLOAD,
  281. ACTION_SEARCH_PAGE,
  282. ACTION_SEARCH_PAGE_VIEW,
  283. ACTION_ADMIN_APP_SETTINGS_UPDATE,
  284. ACTION_ADMIN_SITE_URL_UPDATE,
  285. ACTION_ADMIN_MAIL_SMTP_UPDATE,
  286. ACTION_ADMIN_MAIL_SES_UPDATE,
  287. ACTION_ADMIN_MAIL_TEST_SUBMIT,
  288. ACTION_ADMIN_FILE_UPLOAD_CONFIG_UPDATE,
  289. ACTION_ADMIN_ATTACHMENT_DISPOSITION_UPDATE,
  290. ACTION_ADMIN_PAGE_BULK_EXPORT_SETTINGS_UPDATE,
  291. ACTION_ADMIN_MAINTENANCEMODE_ENABLED,
  292. ACTION_ADMIN_MAINTENANCEMODE_DISABLED,
  293. ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
  294. ACTION_ADMIN_PERMIT_SHARE_LINK,
  295. ACTION_ADMIN_REJECT_SHARE_LINK,
  296. ACTION_ADMIN_AUTH_ID_PASS_ENABLED,
  297. ACTION_ADMIN_AUTH_ID_PASS_DISABLED,
  298. ACTION_ADMIN_AUTH_ID_PASS_UPDATE,
  299. ACTION_ADMIN_AUTH_LDAP_ENABLED,
  300. ACTION_ADMIN_AUTH_LDAP_DISABLED,
  301. ACTION_ADMIN_AUTH_LDAP_UPDATE,
  302. ACTION_ADMIN_AUTH_SAML_ENABLED,
  303. ACTION_ADMIN_AUTH_SAML_DISABLED,
  304. ACTION_ADMIN_AUTH_SAML_UPDATE,
  305. ACTION_ADMIN_AUTH_OIDC_ENABLED,
  306. ACTION_ADMIN_AUTH_OIDC_DISABLED,
  307. ACTION_ADMIN_AUTH_OIDC_UPDATE,
  308. ACTION_ADMIN_AUTH_GOOGLE_ENABLED,
  309. ACTION_ADMIN_AUTH_GOOGLE_DISABLED,
  310. ACTION_ADMIN_AUTH_GOOGLE_UPDATE,
  311. ACTION_ADMIN_AUTH_GITHUB_ENABLED,
  312. ACTION_ADMIN_AUTH_GITHUB_DISABLED,
  313. ACTION_ADMIN_AUTH_GITHUB_UPDATE,
  314. ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE,
  315. ACTION_ADMIN_MARKDOWN_INDENT_UPDATE,
  316. ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE,
  317. ACTION_ADMIN_MARKDOWN_XSS_UPDATE,
  318. ACTION_ADMIN_LAYOUT_UPDATE,
  319. ACTION_ADMIN_THEME_UPDATE,
  320. ACTION_ADMIN_SIDEBAR_UPDATE,
  321. ACTION_ADMIN_FUNCTION_UPDATE,
  322. ACTION_ADMIN_CODE_HIGHLIGHT_UPDATE,
  323. ACTION_ADMIN_CUSTOM_TITLE_UPDATE,
  324. ACTION_ADMIN_CUSTOM_NOSCRIPT_UPDATE,
  325. ACTION_ADMIN_CUSTOM_CSS_UPDATE,
  326. ACTION_ADMIN_CUSTOM_SCRIPT_UPDATE,
  327. ACTION_ADMIN_ARCHIVE_DATA_UPLOAD,
  328. ACTION_ADMIN_GROWI_DATA_IMPORTED,
  329. ACTION_ADMIN_ESA_DATA_IMPORTED,
  330. ACTION_ADMIN_QIITA_DATA_IMPORTED,
  331. ACTION_ADMIN_UPLOADED_GROWI_DATA_DISCARDED,
  332. ACTION_ADMIN_ESA_DATA_UPDATED,
  333. ACTION_ADMIN_CONNECTION_TEST_OF_ESA_DATA,
  334. ACTION_ADMIN_QIITA_DATA_UPDATED,
  335. ACTION_ADMIN_CONNECTION_TEST_OF_QIITA_DATA,
  336. ACTION_ADMIN_ARCHIVE_DATA_CREATE,
  337. ACTION_ADMIN_ARCHIVE_DATA_DOWNLOAD,
  338. ACTION_ADMIN_ARCHIVE_DATA_DELETE,
  339. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD,
  340. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_DELETE,
  341. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD,
  342. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE,
  343. ACTION_ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE,
  344. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED,
  345. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED,
  346. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE,
  347. ACTION_ADMIN_SLACK_WORKSPACE_CREATE,
  348. ACTION_ADMIN_SLACK_WORKSPACE_DELETE,
  349. ACTION_ADMIN_SLACK_BOT_TYPE_UPDATE,
  350. ACTION_ADMIN_SLACK_BOT_TYPE_DELETE,
  351. ACTION_ADMIN_SLACK_ACCESS_TOKEN_REGENERATE,
  352. ACTION_ADMIN_SLACK_MAKE_APP_PRIMARY,
  353. ACTION_ADMIN_SLACK_PERMISSION_UPDATE,
  354. ACTION_ADMIN_SLACK_PROXY_URI_UPDATE,
  355. ACTION_ADMIN_SLACK_RELATION_TEST,
  356. ACTION_ADMIN_SLACK_WITHOUT_PROXY_SETTINGS_UPDATE,
  357. ACTION_ADMIN_SLACK_WITHOUT_PROXY_PERMISSION_UPDATE,
  358. ACTION_ADMIN_SLACK_WITHOUT_PROXY_TEST,
  359. ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE,
  360. ACTION_ADMIN_USERS_INVITE,
  361. ACTION_ADMIN_USERS_PASSWORD_RESET,
  362. ACTION_ADMIN_USERS_ACTIVATE,
  363. ACTION_ADMIN_USERS_DEACTIVATE,
  364. ACTION_ADMIN_USERS_GRANT_ADMIN,
  365. ACTION_ADMIN_USERS_REVOKE_ADMIN,
  366. ACTION_ADMIN_USERS_GRANT_READ_ONLY,
  367. ACTION_ADMIN_USERS_REVOKE_READ_ONLY,
  368. ACTION_ADMIN_USERS_SEND_INVITATION_EMAIL,
  369. ACTION_ADMIN_USERS_REMOVE,
  370. ACTION_ADMIN_USER_GROUP_CREATE,
  371. ACTION_ADMIN_USER_GROUP_UPDATE,
  372. ACTION_ADMIN_USER_GROUP_DELETE,
  373. ACTION_ADMIN_USER_GROUP_ADD_USER,
  374. ACTION_ADMIN_SEARCH_CONNECTION,
  375. ACTION_ADMIN_SEARCH_INDICES_NORMALIZE,
  376. ACTION_ADMIN_SEARCH_INDICES_REBUILD,
  377. ACTION_PAGE_BULK_EXPORT_COMPLETED,
  378. ACTION_PAGE_BULK_EXPORT_FAILED,
  379. ACTION_PAGE_BULK_EXPORT_JOB_EXPIRED,
  380. } as const;
  381. // Action required for notification
  382. export const EssentialActionGroup = {
  383. ACTION_PAGE_CREATE,
  384. ACTION_PAGE_LIKE,
  385. ACTION_PAGE_BOOKMARK,
  386. ACTION_PAGE_UPDATE,
  387. ACTION_PAGE_RENAME,
  388. ACTION_PAGE_DUPLICATE,
  389. ACTION_PAGE_DELETE,
  390. ACTION_PAGE_DELETE_COMPLETELY,
  391. ACTION_PAGE_REVERT,
  392. ACTION_PAGE_RECURSIVELY_RENAME,
  393. ACTION_PAGE_RECURSIVELY_DELETE,
  394. ACTION_PAGE_RECURSIVELY_DELETE_COMPLETELY,
  395. ACTION_PAGE_RECURSIVELY_REVERT,
  396. ACTION_COMMENT_CREATE,
  397. ACTION_USER_REGISTRATION_APPROVAL_REQUEST,
  398. ACTION_PAGE_BULK_EXPORT_COMPLETED,
  399. ACTION_PAGE_BULK_EXPORT_FAILED,
  400. ACTION_PAGE_BULK_EXPORT_JOB_EXPIRED,
  401. } as const;
  402. export const ActionGroupSize = {
  403. Small: 'SMALL',
  404. Medium: 'MEDIUM',
  405. Large: 'LARGE',
  406. } as const;
  407. export type ActionGroupSize =
  408. (typeof ActionGroupSize)[keyof typeof ActionGroupSize];
  409. export const SmallActionGroup = {
  410. ACTION_USER_LOGIN_WITH_LOCAL,
  411. ACTION_USER_LOGIN_WITH_LDAP,
  412. ACTION_USER_LOGIN_WITH_GOOGLE,
  413. ACTION_USER_LOGIN_WITH_GITHUB,
  414. ACTION_USER_LOGIN_WITH_OIDC,
  415. ACTION_USER_LOGIN_WITH_SAML,
  416. ACTION_USER_LOGIN_FAILURE,
  417. ACTION_USER_LOGOUT,
  418. ACTION_PAGE_CREATE,
  419. ACTION_PAGE_DELETE,
  420. ACTION_PAGE_DELETE_COMPLETELY,
  421. ACTION_PAGE_EMPTY_TRASH,
  422. } as const;
  423. // SmallActionGroup + Action by all General Users - PAGE_VIEW
  424. export const MediumActionGroup = {
  425. ...SmallActionGroup,
  426. ACTION_USER_REGISTRATION_APPROVAL_REQUEST,
  427. ACTION_USER_REGISTRATION_SUCCESS,
  428. ACTION_USER_FOGOT_PASSWORD,
  429. ACTION_USER_RESET_PASSWORD,
  430. ACTION_USER_PERSONAL_SETTINGS_UPDATE,
  431. ACTION_USER_IMAGE_TYPE_UPDATE,
  432. ACTION_USER_LDAP_ACCOUNT_ASSOCIATE,
  433. ACTION_USER_LDAP_ACCOUNT_DISCONNECT,
  434. ACTION_USER_PASSWORD_UPDATE,
  435. ACTION_USER_ACCESS_TOKEN_CREATE,
  436. ACTION_USER_ACCESS_TOKEN_DELETE,
  437. ACTION_USER_EDITOR_SETTINGS_UPDATE,
  438. ACTION_USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE,
  439. ACTION_PAGE_LIKE,
  440. ACTION_PAGE_UNLIKE,
  441. ACTION_PAGE_BOOKMARK,
  442. ACTION_PAGE_UNBOOKMARK,
  443. ACTION_PAGE_CREATE,
  444. ACTION_PAGE_UPDATE,
  445. ACTION_PAGE_RENAME,
  446. ACTION_PAGE_DUPLICATE,
  447. ACTION_PAGE_DELETE,
  448. ACTION_PAGE_DELETE_COMPLETELY,
  449. ACTION_PAGE_REVERT,
  450. ACTION_PAGE_RECURSIVELY_RENAME,
  451. ACTION_PAGE_RECURSIVELY_DELETE,
  452. ACTION_PAGE_RECURSIVELY_DELETE_COMPLETELY,
  453. ACTION_PAGE_RECURSIVELY_REVERT,
  454. ACTION_PAGE_EMPTY_TRASH,
  455. ACTION_PAGE_SUBSCRIBE,
  456. ACTION_PAGE_UNSUBSCRIBE,
  457. ACTION_PAGE_EXPORT,
  458. ACTION_TAG_UPDATE,
  459. ACTION_IN_APP_NOTIFICATION_ALL_STATUSES_OPEN,
  460. ACTION_COMMENT_CREATE,
  461. ACTION_COMMENT_UPDATE,
  462. ACTION_COMMENT_REMOVE,
  463. ACTION_SHARE_LINK_CREATE,
  464. ACTION_SHARE_LINK_DELETE,
  465. ACTION_SHARE_LINK_DELETE_BY_PAGE,
  466. ACTION_ATTACHMENT_ADD,
  467. ACTION_ATTACHMENT_REMOVE,
  468. ACTION_ATTACHMENT_DOWNLOAD,
  469. ACTION_SEARCH_PAGE,
  470. ACTION_SEARCH_PAGE_VIEW,
  471. } as const;
  472. // MediumActionGroup + All Actions by Admin Users - PAGE_VIEW
  473. export const LargeActionGroup = {
  474. ...MediumActionGroup,
  475. ACTION_SHARE_LINK_ALL_DELETE,
  476. ACTION_ADMIN_APP_SETTINGS_UPDATE,
  477. ACTION_ADMIN_SITE_URL_UPDATE,
  478. ACTION_ADMIN_MAIL_SMTP_UPDATE,
  479. ACTION_ADMIN_MAIL_SES_UPDATE,
  480. ACTION_ADMIN_MAIL_TEST_SUBMIT,
  481. ACTION_ADMIN_FILE_UPLOAD_CONFIG_UPDATE,
  482. ACTION_ADMIN_ATTACHMENT_DISPOSITION_UPDATE,
  483. ACTION_ADMIN_PAGE_BULK_EXPORT_SETTINGS_UPDATE,
  484. ACTION_ADMIN_MAINTENANCEMODE_ENABLED,
  485. ACTION_ADMIN_MAINTENANCEMODE_DISABLED,
  486. ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
  487. ACTION_ADMIN_PERMIT_SHARE_LINK,
  488. ACTION_ADMIN_REJECT_SHARE_LINK,
  489. ACTION_ADMIN_AUTH_ID_PASS_ENABLED,
  490. ACTION_ADMIN_AUTH_ID_PASS_DISABLED,
  491. ACTION_ADMIN_AUTH_ID_PASS_UPDATE,
  492. ACTION_ADMIN_AUTH_LDAP_ENABLED,
  493. ACTION_ADMIN_AUTH_LDAP_DISABLED,
  494. ACTION_ADMIN_AUTH_LDAP_UPDATE,
  495. ACTION_ADMIN_AUTH_SAML_ENABLED,
  496. ACTION_ADMIN_AUTH_SAML_DISABLED,
  497. ACTION_ADMIN_AUTH_SAML_UPDATE,
  498. ACTION_ADMIN_AUTH_OIDC_ENABLED,
  499. ACTION_ADMIN_AUTH_OIDC_DISABLED,
  500. ACTION_ADMIN_AUTH_OIDC_UPDATE,
  501. ACTION_ADMIN_AUTH_GOOGLE_ENABLED,
  502. ACTION_ADMIN_AUTH_GOOGLE_DISABLED,
  503. ACTION_ADMIN_AUTH_GOOGLE_UPDATE,
  504. ACTION_ADMIN_AUTH_GITHUB_ENABLED,
  505. ACTION_ADMIN_AUTH_GITHUB_DISABLED,
  506. ACTION_ADMIN_AUTH_GITHUB_UPDATE,
  507. ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE,
  508. ACTION_ADMIN_MARKDOWN_INDENT_UPDATE,
  509. ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE,
  510. ACTION_ADMIN_MARKDOWN_XSS_UPDATE,
  511. ACTION_ADMIN_LAYOUT_UPDATE,
  512. ACTION_ADMIN_THEME_UPDATE,
  513. ACTION_ADMIN_SIDEBAR_UPDATE,
  514. ACTION_ADMIN_FUNCTION_UPDATE,
  515. ACTION_ADMIN_CODE_HIGHLIGHT_UPDATE,
  516. ACTION_ADMIN_CUSTOM_TITLE_UPDATE,
  517. ACTION_ADMIN_CUSTOM_NOSCRIPT_UPDATE,
  518. ACTION_ADMIN_CUSTOM_CSS_UPDATE,
  519. ACTION_ADMIN_CUSTOM_SCRIPT_UPDATE,
  520. ACTION_ADMIN_ARCHIVE_DATA_UPLOAD,
  521. ACTION_ADMIN_GROWI_DATA_IMPORTED,
  522. ACTION_ADMIN_ESA_DATA_IMPORTED,
  523. ACTION_ADMIN_QIITA_DATA_IMPORTED,
  524. ACTION_ADMIN_UPLOADED_GROWI_DATA_DISCARDED,
  525. ACTION_ADMIN_ESA_DATA_UPDATED,
  526. ACTION_ADMIN_CONNECTION_TEST_OF_ESA_DATA,
  527. ACTION_ADMIN_QIITA_DATA_UPDATED,
  528. ACTION_ADMIN_CONNECTION_TEST_OF_QIITA_DATA,
  529. ACTION_ADMIN_ARCHIVE_DATA_CREATE,
  530. ACTION_ADMIN_ARCHIVE_DATA_DOWNLOAD,
  531. ACTION_ADMIN_ARCHIVE_DATA_DELETE,
  532. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD,
  533. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_DELETE,
  534. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD,
  535. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE,
  536. ACTION_ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE,
  537. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED,
  538. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED,
  539. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE,
  540. ACTION_ADMIN_SLACK_WORKSPACE_CREATE,
  541. ACTION_ADMIN_SLACK_WORKSPACE_DELETE,
  542. ACTION_ADMIN_SLACK_BOT_TYPE_UPDATE,
  543. ACTION_ADMIN_SLACK_BOT_TYPE_DELETE,
  544. ACTION_ADMIN_SLACK_ACCESS_TOKEN_REGENERATE,
  545. ACTION_ADMIN_SLACK_MAKE_APP_PRIMARY,
  546. ACTION_ADMIN_SLACK_PERMISSION_UPDATE,
  547. ACTION_ADMIN_SLACK_PROXY_URI_UPDATE,
  548. ACTION_ADMIN_SLACK_RELATION_TEST,
  549. ACTION_ADMIN_SLACK_WITHOUT_PROXY_SETTINGS_UPDATE,
  550. ACTION_ADMIN_SLACK_WITHOUT_PROXY_PERMISSION_UPDATE,
  551. ACTION_ADMIN_SLACK_WITHOUT_PROXY_TEST,
  552. ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE,
  553. ACTION_ADMIN_USERS_INVITE,
  554. ACTION_ADMIN_USERS_PASSWORD_RESET,
  555. ACTION_ADMIN_USERS_ACTIVATE,
  556. ACTION_ADMIN_USERS_DEACTIVATE,
  557. ACTION_ADMIN_USERS_GRANT_ADMIN,
  558. ACTION_ADMIN_USERS_REVOKE_ADMIN,
  559. ACTION_ADMIN_USERS_GRANT_READ_ONLY,
  560. ACTION_ADMIN_USERS_REVOKE_READ_ONLY,
  561. ACTION_ADMIN_USERS_SEND_INVITATION_EMAIL,
  562. ACTION_ADMIN_USERS_REMOVE,
  563. ACTION_ADMIN_USER_GROUP_CREATE,
  564. ACTION_ADMIN_USER_GROUP_UPDATE,
  565. ACTION_ADMIN_USER_GROUP_DELETE,
  566. ACTION_ADMIN_USER_GROUP_ADD_USER,
  567. ACTION_ADMIN_SEARCH_CONNECTION,
  568. ACTION_ADMIN_SEARCH_INDICES_NORMALIZE,
  569. ACTION_ADMIN_SEARCH_INDICES_REBUILD,
  570. } as const;
  571. export const ActivityLogActions = {
  572. ACTION_PAGE_CREATE,
  573. ACTION_PAGE_UPDATE,
  574. ACTION_PAGE_RENAME,
  575. ACTION_PAGE_DUPLICATE,
  576. ACTION_PAGE_DELETE,
  577. ACTION_PAGE_DELETE_COMPLETELY,
  578. ACTION_PAGE_REVERT,
  579. ACTION_PAGE_LIKE,
  580. ACTION_COMMENT_CREATE,
  581. } as const;
  582. /*
  583. * Array
  584. */
  585. export const AllSupportedTargetModels = Object.values(SupportedTargetModel);
  586. export const AllSupportedEventModels = Object.values(SupportedEventModel);
  587. export const AllSupportedActions = Object.values(SupportedAction);
  588. export const AllEssentialActions = Object.values(EssentialActionGroup);
  589. export const AllSmallGroupActions = Object.values(SmallActionGroup);
  590. export const AllMediumGroupActions = Object.values(MediumActionGroup);
  591. export const AllLargeGroupActions = Object.values(LargeActionGroup);
  592. // Action categories(for SelectActionDropdown.tsx)
  593. const pageRegExp = new RegExp(
  594. `^${SupportedActionCategory.PAGE.toUpperCase()}_`,
  595. );
  596. const commentRegExp = new RegExp(
  597. `^${SupportedActionCategory.COMMENT.toUpperCase()}_`,
  598. );
  599. const tagRegExp = new RegExp(`^${SupportedActionCategory.TAG.toUpperCase()}_`);
  600. const attachmentRegExp = RegExp(
  601. `^${SupportedActionCategory.ATTACHMENT.toUpperCase()}_`,
  602. );
  603. const shareLinkRegExp = RegExp(
  604. `^${SupportedActionCategory.SHARE_LINK.toUpperCase()}_`,
  605. );
  606. const inAppNotificationRegExp = RegExp(
  607. `^${SupportedActionCategory.IN_APP_NOTIFICATION.toUpperCase()}_`,
  608. );
  609. const searchRegExp = RegExp(
  610. `^${SupportedActionCategory.SEARCH.toUpperCase()}_`,
  611. );
  612. const userRegExp = new RegExp(
  613. `^${SupportedActionCategory.USER.toUpperCase()}_`,
  614. );
  615. const adminRegExp = new RegExp(
  616. `^${SupportedActionCategory.ADMIN.toUpperCase()}_`,
  617. );
  618. export const PageActions = AllSupportedActions.filter((action) =>
  619. action.match(pageRegExp),
  620. );
  621. export const CommentActions = AllSupportedActions.filter((action) =>
  622. action.match(commentRegExp),
  623. );
  624. export const TagActions = AllSupportedActions.filter((action) =>
  625. action.match(tagRegExp),
  626. );
  627. export const AttachmentActions = AllSupportedActions.filter((action) =>
  628. action.match(attachmentRegExp),
  629. );
  630. export const ShareLinkActions = AllSupportedActions.filter((action) =>
  631. action.match(shareLinkRegExp),
  632. );
  633. export const InAppNotificationActions = AllSupportedActions.filter((action) =>
  634. action.match(inAppNotificationRegExp),
  635. );
  636. export const SearchActions = AllSupportedActions.filter((action) =>
  637. action.match(searchRegExp),
  638. );
  639. export const UserActions = AllSupportedActions.filter((action) =>
  640. action.match(userRegExp),
  641. );
  642. export const AdminActions = AllSupportedActions.filter((action) =>
  643. action.match(adminRegExp),
  644. );
  645. /*
  646. * Type
  647. */
  648. export type SupportedTargetModelType =
  649. (typeof SupportedTargetModel)[keyof typeof SupportedTargetModel];
  650. export type SupportedEventModelType =
  651. (typeof SupportedEventModel)[keyof typeof SupportedEventModel];
  652. export type SupportedActionType =
  653. (typeof SupportedAction)[keyof typeof SupportedAction];
  654. export type SupportedActionCategoryType =
  655. (typeof SupportedActionCategory)[keyof typeof SupportedActionCategory];
  656. export type SupportedActivityActionType =
  657. (typeof ActivityLogActions)[keyof typeof ActivityLogActions];
  658. export type ISnapshot = Partial<Pick<IUser, 'username'>>;
  659. export type IActivity = {
  660. user?: Ref<IUser>;
  661. ip?: string;
  662. endpoint?: string;
  663. targetModel?: SupportedTargetModelType;
  664. target?: string;
  665. eventModel?: SupportedEventModelType;
  666. event?: string;
  667. action: SupportedActionType;
  668. createdAt: Date;
  669. snapshot?: ISnapshot;
  670. };
  671. export type ActivityHasUserId = IActivityHasId & {
  672. user: IUserHasId;
  673. };
  674. export type IActivityHasId = IActivity & HasObjectId;
  675. export type ISearchFilter = {
  676. usernames?: string[];
  677. dates?: { startDate: string | null; endDate: string | null };
  678. actions?: SupportedActionType[];
  679. };
  680. export interface UserActivitiesResult {
  681. serializedPaginationResult: PaginateResult<IActivityHasId>;
  682. }