activity.ts 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  1. import { Ref } from './common';
  2. import { HasObjectId } from './has-object-id';
  3. import { IUser } from './user';
  4. // Model
  5. const MODEL_PAGE = 'Page';
  6. const MODEL_COMMENT = 'Comment';
  7. // Action
  8. const ACTION_UNSETTLED = 'UNSETTLED';
  9. const ACTION_USER_REGISTRATION_SUCCESS = 'USER_REGISTRATION_SUCCESS';
  10. const ACTION_USER_LOGIN_WITH_LOCAL = 'USER_LOGIN_WITH_LOCAL';
  11. const ACTION_USER_LOGIN_WITH_LDAP = 'USER_LOGIN_WITH_LDAP';
  12. const ACTION_USER_LOGIN_WITH_GOOGLE = 'USER_LOGIN_WITH_GOOGLE';
  13. const ACTION_USER_LOGIN_WITH_GITHUB = 'USER_LOGIN_WITH_GITHUB';
  14. const ACTION_USER_LOGIN_WITH_TWITTER = 'USER_LOGIN_WITH_TWITTER';
  15. const ACTION_USER_LOGIN_WITH_OIDC = 'USER_LOGIN_WITH_OIDC';
  16. const ACTION_USER_LOGIN_WITH_SAML = 'USER_LOGIN_WITH_SAML';
  17. const ACTION_USER_LOGIN_WITH_BASIC = 'USER_LOGIN_WITH_BASIC';
  18. const ACTION_USER_LOGIN_FAILURE = 'USER_LOGIN_FAILURE';
  19. const ACTION_USER_LOGOUT = 'USER_LOGOUT';
  20. const ACTION_USER_PERSONAL_SETTINGS_UPDATE = 'USER_PERSONAL_SETTINGS_UPDATE';
  21. const ACTION_USER_IMAGE_TYPE_UPDATE = 'USER_IMAGE_TYPE_UPDATE';
  22. const ACTION_USER_LDAP_ACCOUNT_ASSOCIATE = 'USER_LDAP_ACCOUNT_ASSOCIATE';
  23. const ACTION_USER_LDAP_ACCOUNT_DISCONNECT = 'USER_LDAP_ACCOUNT_DISCONNECT';
  24. const ACTION_USER_PASSWORD_UPDATE = 'USER_PASSWORD_UPDATE';
  25. const ACTION_USER_API_TOKEN_UPDATE = 'USER_API_TOKEN_UPDATE';
  26. const ACTION_USER_EDITOR_SETTINGS_UPDATE = 'USER_EDITOR_SETTINGS_UPDATE';
  27. const ACTION_USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE = 'USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE';
  28. const ACTION_PAGE_VIEW = 'PAGE_VIEW';
  29. const ACTION_PAGE_USER_HOME_VIEW = 'PAGE_USER_HOME_VIEW';
  30. const ACTION_PAGE_NOT_FOUND = 'PAGE_NOT_FOUND';
  31. const ACTION_PAGE_FORBIDDEN = 'PAGE_FORBIDDEN';
  32. const ACTION_PAGE_NOT_CREATABLE = 'PAGE_NOT_CREATABLE';
  33. const ACTION_PAGE_LIKE = 'PAGE_LIKE';
  34. const ACTION_PAGE_UNLIKE = 'PAGE_UNLIKE';
  35. const ACTION_PAGE_BOOKMARK = 'PAGE_BOOKMARK';
  36. const ACTION_PAGE_UNBOOKMARK = 'PAGE_UNBOOKMARK';
  37. const ACTION_PAGE_CREATE = 'PAGE_CREATE';
  38. const ACTION_PAGE_UPDATE = 'PAGE_UPDATE';
  39. const ACTION_PAGE_RENAME = 'PAGE_RENAME';
  40. const ACTION_PAGE_DUPLICATE = 'PAGE_DUPLICATE';
  41. const ACTION_PAGE_DELETE = 'PAGE_DELETE';
  42. const ACTION_PAGE_DELETE_COMPLETELY = 'PAGE_DELETE_COMPLETELY';
  43. const ACTION_PAGE_REVERT = 'PAGE_REVERT';
  44. const ACTION_PAGE_EMPTY_TRASH = 'PAGE_EMPTY_TRASH';
  45. const ACTION_PAGE_SUBSCRIBE = 'PAGE_SUBSCRIBE';
  46. const ACTION_PAGE_UNSUBSCRIBE = 'PAGE_UNSUBSCRIBE';
  47. const ACTION_PAGE_EXPORT = 'PAGE_EXPORT';
  48. const ACTION_TAG_UPDATE = 'TAG_UPDATE';
  49. const ACTION_IN_APP_NOTIFICATION_ALL_STATUSES_OPEN = 'IN_APP_NOTIFICATION_ALL_STATUSES_OPEN';
  50. const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
  51. const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
  52. const ACTION_COMMENT_REMOVE = 'COMMENT_REMOVE';
  53. const ACTION_SHARE_LINK_CREATE = 'SHARE_LINK_CREATE';
  54. const ACTION_SHARE_LINK_DELETE = 'SHARE_LINK_DELETE';
  55. const ACTION_SHARE_LINK_DELETE_BY_PAGE = 'SHARE_LINK_DELETE_BY_PAGE';
  56. const ACTION_SHARE_LINK_ALL_DELETE = 'SHARE_LINK_ALL_DELETE';
  57. const ACTION_SHARE_LINK_PAGE_VIEW = 'SHARE_LINK_PAGE_VIEW';
  58. const ACTION_SHARE_LINK_EXPIRED_PAGE_VIEW = 'SHARE_LINK_EXPIRED_PAGE_VIEW';
  59. const ACTION_SHARE_LINK_NOT_FOUND = 'SHARE_LINK_NOT_FOUND';
  60. const ACTION_ATTACHMENT_ADD = 'ATTACHMENT_ADD';
  61. const ACTION_ATTACHMENT_REMOVE = 'ATTACHMENT_REMOVE';
  62. const ACTION_ATTACHMENT_DOWNLOAD = 'ACTION_ATTACHMENT_DOWNLOAD';
  63. const ACTION_SEARCH_PAGE = 'SEARCH_PAGE';
  64. const ACTION_SEARCH_PAGE_VIEW = 'SEARCH_PAGE_VIEW';
  65. const ACTION_ADMIN_APP_SETTINGS_UPDATE = 'ADMIN_APP_SETTING_UPDATE';
  66. const ACTION_ADMIN_SITE_URL_UPDATE = 'ADMIN_SITE_URL_UPDATE';
  67. const ACTION_ADMIN_MAIL_SMTP_UPDATE = 'ADMIN_MAIL_SMTP_UPDATE';
  68. const ACTION_ADMIN_MAIL_SES_UPDATE = 'ADMIN_MAIL_SES_UPDATE';
  69. const ACTION_ADMIN_MAIL_TEST_SUBMIT = 'ADMIN_MAIL_TEST_SUBMIT ';
  70. const ACTION_ADMIN_FILE_UPLOAD_CONFIG_UPDATE = 'ADMIN_FILE_UPLOAD_CONFIG_UPDATE';
  71. const ACTION_ADMIN_PLUGIN_UPDATE = 'ADMIN_PLUGIN_UPDATE';
  72. const ACTION_ADMIN_MAINTENANCEMODE_ENABLED = 'ADMIN_MAINTENANCEMODE_ENABLED';
  73. const ACTION_ADMIN_MAINTENANCEMODE_DISABLED = 'ADMIN_MAINTENANCEMODE_DISABLED';
  74. const ACTION_ADMIN_SECURITY_SETTINGS_UPDATE = 'ADMIN_SECURITY_SETTINGS_UPDATE';
  75. const ACTION_ADMIN_PERMIT_SHARE_LINK = 'ADMIN_PERMIT_SHARE_LINK';
  76. const ACTION_ADMIN_REJECT_SHARE_LINK = 'ADMIN_REJECT_SHARE_LINK';
  77. const ACTION_ADMIN_AUTH_ID_PASS_ENABLED = 'ADMIN_AUTH_ID_PASS_ENABLED';
  78. const ACTION_ADMIN_AUTH_ID_PASS_DISABLED = 'ADMIN_AUTH_ID_PASS_DISABLED';
  79. const ACTION_ADMIN_AUTH_ID_PASS_UPDATE = 'ADMIN_AUTH_ID_PASS_UPDATE';
  80. const ACTION_ADMIN_AUTH_LDAP_ENABLED = 'ADMIN_AUTH_LDAP_ENABLED';
  81. const ACTION_ADMIN_AUTH_LDAP_DISABLED = 'ADMIN_AUTH_LDAP_DISABLED';
  82. const ACTION_ADMIN_AUTH_LDAP_UPDATE = 'ADMIN_AUTH_LDAP_UPDATE';
  83. const ACTION_ADMIN_AUTH_SAML_ENABLED = 'ADMIN_AUTH_SAML_ENABLED';
  84. const ACTION_ADMIN_AUTH_SAML_DISABLED = 'ADMIN_AUTH_SAML_DISABLED';
  85. const ACTION_ADMIN_AUTH_SAML_UPDATE = 'ADMIN_AUTH_SAML_UPDATE';
  86. const ACTION_ADMIN_AUTH_OIDC_ENABLED = 'ADMIN_AUTH_OIDC_ENABLED';
  87. const ACTION_ADMIN_AUTH_OIDC_DISABLED = 'ADMIN_AUTH_OIDC_DISABLED';
  88. const ACTION_ADMIN_AUTH_OIDC_UPDATE = 'ADMIN_AUTH_OIDC_UPDATE';
  89. const ACTION_ADMIN_AUTH_BASIC_ENABLED = 'ADMIN_AUTH_BASIC_ENABLED';
  90. const ACTION_ADMIN_AUTH_BASIC_DISABLED = 'ADMIN_AUTH_BASIC_DISABLED';
  91. const ACTION_ADMIN_AUTH_BASIC_UPDATE = 'ADMIN_AUTH_BASIC_UPDATE';
  92. const ACTION_ADMIN_AUTH_GOOGLE_ENABLED = 'ADMIN_AUTH_GOOGLE_ENABLED';
  93. const ACTION_ADMIN_AUTH_GOOGLE_DISABLED = 'ADMIN_AUTH_GOOGLE_DISABLED';
  94. const ACTION_ADMIN_AUTH_GOOGLE_UPDATE = 'ADMIN_AUTH_GOOGLE_UPDATE';
  95. const ACTION_ADMIN_AUTH_GITHUB_ENABLED = 'ADMIN_AUTH_GITHUB_ENABLED';
  96. const ACTION_ADMIN_AUTH_GITHUB_DISABLED = 'ADMIN_AUTH_GITHUB_DISABLED';
  97. const ACTION_ADMIN_AUTH_GITHUB_UPDATE = 'ADMIN_AUTH_GITHUB_UPDATE';
  98. const ACTION_ADMIN_AUTH_TWITTER_ENABLED = 'ADMIN_AUTH_TWITTER_ENABLED';
  99. const ACTION_ADMIN_AUTH_TWITTER_DISABLED = 'ADMIN_AUTH_TWITTER_DISABLED';
  100. const ACTION_ADMIN_AUTH_TWITTER_UPDATE = 'ADMIN_AUTH_TWITTER_UPDATE';
  101. const ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE = 'ADMIN_MARKDOWN_LINE_BREAK_UPDATE';
  102. const ACTION_ADMIN_MARKDOWN_INDENT_UPDATE = 'ADMIN_MARKDOWN_INDENT_UPDATE';
  103. const ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE = 'ADMIN_MARKDOWN_PRESENTATION_UPDATE';
  104. const ACTION_ADMIN_MARKDOWN_XSS_UPDATE = 'ADMIN_MARKDOWN_XSS_UPDATE';
  105. const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
  106. const ACTION_ADMIN_THEME_UPDATE = 'ADMIN_THEME_UPDATE';
  107. const ACTION_ADMIN_FUNCTION_UPDATE = 'ADMIN_FUNCTION_UPDATE';
  108. const ACTION_ADMIN_CODE_HIGHLIGHT_UPDATE = 'ADMIN_CODE_HIGHLIGHT_UPDATE';
  109. const ACTION_ADMIN_CUSTOM_TITLE_UPDATE = 'ADMIN_CUSTOM_TITLE_UPDATE';
  110. const ACTION_ADMIN_CUSTOM_HTML_HEADER_UPDATE = 'ADMIN_CUSTOM_HTML_HEADER_UPDATE';
  111. const ACTION_ADMIN_CUSTOM_CSS_UPDATE = 'ADMIN_CUSTOM_CSS_UPDATE';
  112. const ACTION_ADMIN_CUSTOM_SCRIPT_UPDATE = 'ADMIN_CUSTOM_SCRIPT_UPDATE';
  113. const ACTION_ADMIN_ARCHIVE_DATA_UPLOAD = 'ADMIN_ARCHIVE_DATA_UPLOAD';
  114. const ACTION_ADMIN_ARCHIVE_DATA_CREATE = 'ADMIN_ARCHIVE_DATA_CREATE';
  115. const ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD = 'ADMIN_USER_NOTIFICATION_SETTINGS_ADD';
  116. const ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_DELETE = 'ADMIN_USER_NOTIFICATION_SETTINGS_DELETE';
  117. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD = 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD';
  118. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE = 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE';
  119. const ACTION_ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE = 'ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE';
  120. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED = 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED';
  121. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED = 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED';
  122. const ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE = 'ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE';
  123. const ACTION_ADMIN_SLACK_WORKSPACE_CREATE = 'ADMIN_SLACK_WORKSPACE_CREATE';
  124. const ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE = 'ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE';
  125. const ACTION_ADMIN_USERS_INVITE = 'ADMIN_USERS_INVITE';
  126. const ACTION_ADMIN_USER_GROUP_CREATE = 'ADMIN_USER_GROUP_CREATE';
  127. const ACTION_ADMIN_USER_GROUP_UPDATE = 'ADMIN_USER_GROUP_UPDATE';
  128. const ACTION_ADMIN_USER_GROUP_DELETE = 'ADMIN_USER_GROUP_DELETE';
  129. const ACTION_ADMIN_USER_GROUP_ADD_USER = 'ADMIN_USER_GROUP_ADD_USER';
  130. const ACTION_ADMIN_SEARCH_INDICES_NORMALIZE = 'ADMIN_SEARCH_INDICES_NORMALIZE';
  131. const ACTION_ADMIN_SEARCH_INDICES_REBUILD = 'ADMIN_SEARCH_INDICES_REBUILD';
  132. const ACTION_ADMIN_GROWI_DATA_IMPORTED = 'ADMIN_GROWI_DATA_IMPORTED';
  133. const ACTION_ADMIN_ESA_DATA_IMPORTED = 'ADMIN_ESA_DATA_IMPORTED';
  134. const ACTION_ADMIN_QIITA_DATA_IMPORTED = 'ADMIN_QIITA_DATA_IMPORTED';
  135. const ACTION_ADMIN_UPLOADED_GROWI_DATA_DISCARDED = 'ADMIN_UPLOADED_GROWI_DATA_DISCARDED';
  136. const ACTION_ADMIN_ESA_DATA_UPDATED = 'ADMIN_ESA_DATA_UPDATED';
  137. const ACTION_ADMIN_CONNECTION_TEST_OF_ESA_DATA = 'ADMIN_CONNECTION_TEST_OF_ESA_DATA';
  138. const ACTION_ADMIN_QIITA_DATA_UPDATED = 'ADMIN_QIITA_DATA_UPDATED';
  139. const ACTION_ADMIN_CONNECTION_TEST_OF_QIITA_DATA = 'ADMIN_CONNECTION_TEST_OF_QIITA_DATA';
  140. export const SupportedTargetModel = {
  141. MODEL_PAGE,
  142. } as const;
  143. export const SupportedEventModel = {
  144. MODEL_COMMENT,
  145. } as const;
  146. export const SupportedActionCategory = {
  147. PAGE: 'Page',
  148. COMMENT: 'Comment',
  149. TAG: 'Tag',
  150. ATTACHMENT: 'Attachment',
  151. SHARE_LINK: 'ShareLink',
  152. IN_APP_NOTIFICATION: 'InAppNotification',
  153. SEARCH: 'Search',
  154. USER: 'User',
  155. ADMIN: 'Admin',
  156. } as const;
  157. export const SupportedAction = {
  158. ACTION_UNSETTLED,
  159. ACTION_USER_REGISTRATION_SUCCESS,
  160. ACTION_USER_LOGIN_WITH_LOCAL,
  161. ACTION_USER_LOGIN_WITH_LDAP,
  162. ACTION_USER_LOGIN_WITH_GOOGLE,
  163. ACTION_USER_LOGIN_WITH_GITHUB,
  164. ACTION_USER_LOGIN_WITH_TWITTER,
  165. ACTION_USER_LOGIN_WITH_OIDC,
  166. ACTION_USER_LOGIN_WITH_SAML,
  167. ACTION_USER_LOGIN_WITH_BASIC,
  168. ACTION_USER_LOGIN_FAILURE,
  169. ACTION_USER_LOGOUT,
  170. ACTION_USER_PERSONAL_SETTINGS_UPDATE,
  171. ACTION_USER_IMAGE_TYPE_UPDATE,
  172. ACTION_USER_LDAP_ACCOUNT_ASSOCIATE,
  173. ACTION_USER_LDAP_ACCOUNT_DISCONNECT,
  174. ACTION_USER_PASSWORD_UPDATE,
  175. ACTION_USER_API_TOKEN_UPDATE,
  176. ACTION_USER_EDITOR_SETTINGS_UPDATE,
  177. ACTION_USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE,
  178. ACTION_PAGE_VIEW,
  179. ACTION_PAGE_USER_HOME_VIEW,
  180. ACTION_PAGE_FORBIDDEN,
  181. ACTION_PAGE_NOT_FOUND,
  182. ACTION_PAGE_NOT_CREATABLE,
  183. ACTION_PAGE_LIKE,
  184. ACTION_PAGE_UNLIKE,
  185. ACTION_PAGE_BOOKMARK,
  186. ACTION_PAGE_UNBOOKMARK,
  187. ACTION_PAGE_CREATE,
  188. ACTION_PAGE_UPDATE,
  189. ACTION_PAGE_RENAME,
  190. ACTION_PAGE_DUPLICATE,
  191. ACTION_PAGE_DELETE,
  192. ACTION_PAGE_DELETE_COMPLETELY,
  193. ACTION_PAGE_REVERT,
  194. ACTION_PAGE_EMPTY_TRASH,
  195. ACTION_PAGE_SUBSCRIBE,
  196. ACTION_PAGE_UNSUBSCRIBE,
  197. ACTION_PAGE_EXPORT,
  198. ACTION_TAG_UPDATE,
  199. ACTION_IN_APP_NOTIFICATION_ALL_STATUSES_OPEN,
  200. ACTION_COMMENT_CREATE,
  201. ACTION_COMMENT_UPDATE,
  202. ACTION_COMMENT_REMOVE,
  203. ACTION_SHARE_LINK_CREATE,
  204. ACTION_SHARE_LINK_DELETE,
  205. ACTION_SHARE_LINK_DELETE_BY_PAGE,
  206. ACTION_SHARE_LINK_ALL_DELETE,
  207. ACTION_SHARE_LINK_PAGE_VIEW,
  208. ACTION_SHARE_LINK_EXPIRED_PAGE_VIEW,
  209. ACTION_SHARE_LINK_NOT_FOUND,
  210. ACTION_ATTACHMENT_ADD,
  211. ACTION_ATTACHMENT_REMOVE,
  212. ACTION_ATTACHMENT_DOWNLOAD,
  213. ACTION_SEARCH_PAGE,
  214. ACTION_SEARCH_PAGE_VIEW,
  215. ACTION_ADMIN_APP_SETTINGS_UPDATE,
  216. ACTION_ADMIN_SITE_URL_UPDATE,
  217. ACTION_ADMIN_MAIL_SMTP_UPDATE,
  218. ACTION_ADMIN_MAIL_SES_UPDATE,
  219. ACTION_ADMIN_MAIL_TEST_SUBMIT,
  220. ACTION_ADMIN_FILE_UPLOAD_CONFIG_UPDATE,
  221. ACTION_ADMIN_PLUGIN_UPDATE,
  222. ACTION_ADMIN_MAINTENANCEMODE_ENABLED,
  223. ACTION_ADMIN_MAINTENANCEMODE_DISABLED,
  224. ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
  225. ACTION_ADMIN_PERMIT_SHARE_LINK,
  226. ACTION_ADMIN_REJECT_SHARE_LINK,
  227. ACTION_ADMIN_AUTH_ID_PASS_ENABLED,
  228. ACTION_ADMIN_AUTH_ID_PASS_DISABLED,
  229. ACTION_ADMIN_AUTH_ID_PASS_UPDATE,
  230. ACTION_ADMIN_AUTH_LDAP_ENABLED,
  231. ACTION_ADMIN_AUTH_LDAP_DISABLED,
  232. ACTION_ADMIN_AUTH_LDAP_UPDATE,
  233. ACTION_ADMIN_AUTH_SAML_ENABLED,
  234. ACTION_ADMIN_AUTH_SAML_DISABLED,
  235. ACTION_ADMIN_AUTH_SAML_UPDATE,
  236. ACTION_ADMIN_AUTH_OIDC_ENABLED,
  237. ACTION_ADMIN_AUTH_OIDC_DISABLED,
  238. ACTION_ADMIN_AUTH_OIDC_UPDATE,
  239. ACTION_ADMIN_AUTH_BASIC_ENABLED,
  240. ACTION_ADMIN_AUTH_BASIC_DISABLED,
  241. ACTION_ADMIN_AUTH_BASIC_UPDATE,
  242. ACTION_ADMIN_AUTH_GOOGLE_ENABLED,
  243. ACTION_ADMIN_AUTH_GOOGLE_DISABLED,
  244. ACTION_ADMIN_AUTH_GOOGLE_UPDATE,
  245. ACTION_ADMIN_AUTH_GITHUB_ENABLED,
  246. ACTION_ADMIN_AUTH_GITHUB_DISABLED,
  247. ACTION_ADMIN_AUTH_GITHUB_UPDATE,
  248. ACTION_ADMIN_AUTH_TWITTER_ENABLED,
  249. ACTION_ADMIN_AUTH_TWITTER_DISABLED,
  250. ACTION_ADMIN_AUTH_TWITTER_UPDATE,
  251. ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE,
  252. ACTION_ADMIN_MARKDOWN_INDENT_UPDATE,
  253. ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE,
  254. ACTION_ADMIN_MARKDOWN_XSS_UPDATE,
  255. ACTION_ADMIN_LAYOUT_UPDATE,
  256. ACTION_ADMIN_THEME_UPDATE,
  257. ACTION_ADMIN_FUNCTION_UPDATE,
  258. ACTION_ADMIN_CODE_HIGHLIGHT_UPDATE,
  259. ACTION_ADMIN_CUSTOM_TITLE_UPDATE,
  260. ACTION_ADMIN_CUSTOM_HTML_HEADER_UPDATE,
  261. ACTION_ADMIN_CUSTOM_CSS_UPDATE,
  262. ACTION_ADMIN_CUSTOM_SCRIPT_UPDATE,
  263. ACTION_ADMIN_ARCHIVE_DATA_UPLOAD,
  264. ACTION_ADMIN_ARCHIVE_DATA_CREATE,
  265. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD,
  266. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_DELETE,
  267. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD,
  268. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE,
  269. ACTION_ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE,
  270. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED,
  271. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED,
  272. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE,
  273. ACTION_ADMIN_SLACK_WORKSPACE_CREATE,
  274. ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE,
  275. ACTION_ADMIN_USERS_INVITE,
  276. ACTION_ADMIN_USER_GROUP_CREATE,
  277. ACTION_ADMIN_USER_GROUP_UPDATE,
  278. ACTION_ADMIN_USER_GROUP_DELETE,
  279. ACTION_ADMIN_USER_GROUP_ADD_USER,
  280. ACTION_ADMIN_SEARCH_INDICES_NORMALIZE,
  281. ACTION_ADMIN_SEARCH_INDICES_REBUILD,
  282. ACTION_ADMIN_GROWI_DATA_IMPORTED,
  283. ACTION_ADMIN_ESA_DATA_IMPORTED,
  284. ACTION_ADMIN_QIITA_DATA_IMPORTED,
  285. ACTION_ADMIN_UPLOADED_GROWI_DATA_DISCARDED,
  286. ACTION_ADMIN_ESA_DATA_UPDATED,
  287. ACTION_ADMIN_CONNECTION_TEST_OF_ESA_DATA,
  288. ACTION_ADMIN_QIITA_DATA_UPDATED,
  289. ACTION_ADMIN_CONNECTION_TEST_OF_QIITA_DATA,
  290. } as const;
  291. // Action required for notification
  292. export const EssentialActionGroup = {
  293. ACTION_PAGE_LIKE,
  294. ACTION_PAGE_BOOKMARK,
  295. ACTION_PAGE_UPDATE,
  296. ACTION_PAGE_RENAME,
  297. ACTION_PAGE_DUPLICATE,
  298. ACTION_PAGE_DELETE,
  299. ACTION_PAGE_DELETE_COMPLETELY,
  300. ACTION_PAGE_REVERT,
  301. ACTION_COMMENT_CREATE,
  302. } as const;
  303. export const ActionGroupSize = {
  304. Small: 'SMALL',
  305. Medium: 'MEDIUM',
  306. Large: 'LARGE',
  307. } as const;
  308. export const SmallActionGroup = {
  309. ACTION_USER_LOGIN_WITH_LOCAL,
  310. ACTION_USER_LOGIN_WITH_LDAP,
  311. ACTION_USER_LOGIN_WITH_GOOGLE,
  312. ACTION_USER_LOGIN_WITH_GITHUB,
  313. ACTION_USER_LOGIN_WITH_TWITTER,
  314. ACTION_USER_LOGIN_WITH_OIDC,
  315. ACTION_USER_LOGIN_WITH_SAML,
  316. ACTION_USER_LOGIN_WITH_BASIC,
  317. ACTION_USER_LOGIN_FAILURE,
  318. ACTION_USER_LOGOUT,
  319. ACTION_PAGE_CREATE,
  320. ACTION_PAGE_DELETE,
  321. } as const;
  322. // SmallActionGroup + Action by all General Users - PAGE_VIEW
  323. export const MediumActionGroup = {
  324. ...SmallActionGroup,
  325. ACTION_USER_REGISTRATION_SUCCESS,
  326. ACTION_USER_PERSONAL_SETTINGS_UPDATE,
  327. ACTION_USER_IMAGE_TYPE_UPDATE,
  328. ACTION_USER_LDAP_ACCOUNT_ASSOCIATE,
  329. ACTION_USER_LDAP_ACCOUNT_DISCONNECT,
  330. ACTION_USER_PASSWORD_UPDATE,
  331. ACTION_USER_API_TOKEN_UPDATE,
  332. ACTION_USER_EDITOR_SETTINGS_UPDATE,
  333. ACTION_USER_IN_APP_NOTIFICATION_SETTINGS_UPDATE,
  334. ACTION_PAGE_LIKE,
  335. ACTION_PAGE_UNLIKE,
  336. ACTION_PAGE_BOOKMARK,
  337. ACTION_PAGE_UNBOOKMARK,
  338. ACTION_PAGE_CREATE,
  339. ACTION_PAGE_UPDATE,
  340. ACTION_PAGE_RENAME,
  341. ACTION_PAGE_DUPLICATE,
  342. ACTION_PAGE_DELETE,
  343. ACTION_PAGE_DELETE_COMPLETELY,
  344. ACTION_PAGE_REVERT,
  345. ACTION_PAGE_EMPTY_TRASH,
  346. ACTION_PAGE_SUBSCRIBE,
  347. ACTION_PAGE_UNSUBSCRIBE,
  348. ACTION_PAGE_EXPORT,
  349. ACTION_TAG_UPDATE,
  350. ACTION_IN_APP_NOTIFICATION_ALL_STATUSES_OPEN,
  351. ACTION_COMMENT_CREATE,
  352. ACTION_COMMENT_UPDATE,
  353. ACTION_COMMENT_REMOVE,
  354. ACTION_SHARE_LINK_CREATE,
  355. ACTION_SHARE_LINK_DELETE,
  356. ACTION_SHARE_LINK_DELETE_BY_PAGE,
  357. ACTION_ATTACHMENT_ADD,
  358. ACTION_ATTACHMENT_REMOVE,
  359. ACTION_ATTACHMENT_DOWNLOAD,
  360. ACTION_SEARCH_PAGE,
  361. ACTION_SEARCH_PAGE_VIEW,
  362. } as const;
  363. // MediumActionGroup + All Actions by Admin Users - PAGE_VIEW
  364. export const LargeActionGroup = {
  365. ...MediumActionGroup,
  366. ACTION_SHARE_LINK_ALL_DELETE,
  367. ACTION_ADMIN_APP_SETTINGS_UPDATE,
  368. ACTION_ADMIN_SITE_URL_UPDATE,
  369. ACTION_ADMIN_MAIL_SMTP_UPDATE,
  370. ACTION_ADMIN_MAIL_SES_UPDATE,
  371. ACTION_ADMIN_MAIL_TEST_SUBMIT,
  372. ACTION_ADMIN_FILE_UPLOAD_CONFIG_UPDATE,
  373. ACTION_ADMIN_PLUGIN_UPDATE,
  374. ACTION_ADMIN_MAINTENANCEMODE_ENABLED,
  375. ACTION_ADMIN_MAINTENANCEMODE_DISABLED,
  376. ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
  377. ACTION_ADMIN_PERMIT_SHARE_LINK,
  378. ACTION_ADMIN_REJECT_SHARE_LINK,
  379. ACTION_ADMIN_AUTH_ID_PASS_ENABLED,
  380. ACTION_ADMIN_AUTH_ID_PASS_DISABLED,
  381. ACTION_ADMIN_AUTH_ID_PASS_UPDATE,
  382. ACTION_ADMIN_AUTH_LDAP_ENABLED,
  383. ACTION_ADMIN_AUTH_LDAP_DISABLED,
  384. ACTION_ADMIN_AUTH_LDAP_UPDATE,
  385. ACTION_ADMIN_AUTH_SAML_ENABLED,
  386. ACTION_ADMIN_AUTH_SAML_DISABLED,
  387. ACTION_ADMIN_AUTH_SAML_UPDATE,
  388. ACTION_ADMIN_AUTH_OIDC_ENABLED,
  389. ACTION_ADMIN_AUTH_OIDC_DISABLED,
  390. ACTION_ADMIN_AUTH_OIDC_UPDATE,
  391. ACTION_ADMIN_AUTH_BASIC_ENABLED,
  392. ACTION_ADMIN_AUTH_BASIC_DISABLED,
  393. ACTION_ADMIN_AUTH_BASIC_UPDATE,
  394. ACTION_ADMIN_AUTH_GOOGLE_ENABLED,
  395. ACTION_ADMIN_AUTH_GOOGLE_DISABLED,
  396. ACTION_ADMIN_AUTH_GOOGLE_UPDATE,
  397. ACTION_ADMIN_AUTH_GITHUB_ENABLED,
  398. ACTION_ADMIN_AUTH_GITHUB_DISABLED,
  399. ACTION_ADMIN_AUTH_GITHUB_UPDATE,
  400. ACTION_ADMIN_AUTH_TWITTER_ENABLED,
  401. ACTION_ADMIN_AUTH_TWITTER_DISABLED,
  402. ACTION_ADMIN_AUTH_TWITTER_UPDATE,
  403. ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE,
  404. ACTION_ADMIN_MARKDOWN_INDENT_UPDATE,
  405. ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE,
  406. ACTION_ADMIN_MARKDOWN_XSS_UPDATE,
  407. ACTION_ADMIN_LAYOUT_UPDATE,
  408. ACTION_ADMIN_THEME_UPDATE,
  409. ACTION_ADMIN_FUNCTION_UPDATE,
  410. ACTION_ADMIN_CODE_HIGHLIGHT_UPDATE,
  411. ACTION_ADMIN_CUSTOM_TITLE_UPDATE,
  412. ACTION_ADMIN_CUSTOM_HTML_HEADER_UPDATE,
  413. ACTION_ADMIN_CUSTOM_CSS_UPDATE,
  414. ACTION_ADMIN_CUSTOM_SCRIPT_UPDATE,
  415. ACTION_ADMIN_ARCHIVE_DATA_UPLOAD,
  416. ACTION_ADMIN_ARCHIVE_DATA_CREATE,
  417. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD,
  418. ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_DELETE,
  419. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ADD,
  420. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_UPDATE,
  421. ACTION_ADMIN_NOTIFICATION_GRANT_SETTINGS_UPDATE,
  422. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_ENABLED,
  423. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DISABLED,
  424. ACTION_ADMIN_GLOBAL_NOTIFICATION_SETTINGS_DELETE,
  425. ACTION_ADMIN_SLACK_WORKSPACE_CREATE,
  426. ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE,
  427. ACTION_ADMIN_USERS_INVITE,
  428. ACTION_ADMIN_USER_GROUP_CREATE,
  429. ACTION_ADMIN_USER_GROUP_UPDATE,
  430. ACTION_ADMIN_USER_GROUP_DELETE,
  431. ACTION_ADMIN_USER_GROUP_ADD_USER,
  432. ACTION_ADMIN_SEARCH_INDICES_NORMALIZE,
  433. ACTION_ADMIN_SEARCH_INDICES_REBUILD,
  434. ACTION_ADMIN_GROWI_DATA_IMPORTED,
  435. ACTION_ADMIN_ESA_DATA_IMPORTED,
  436. ACTION_ADMIN_QIITA_DATA_IMPORTED,
  437. ACTION_ADMIN_UPLOADED_GROWI_DATA_DISCARDED,
  438. ACTION_ADMIN_ESA_DATA_UPDATED,
  439. ACTION_ADMIN_CONNECTION_TEST_OF_ESA_DATA,
  440. ACTION_ADMIN_QIITA_DATA_UPDATED,
  441. ACTION_ADMIN_CONNECTION_TEST_OF_QIITA_DATA,
  442. } as const;
  443. /*
  444. * Array
  445. */
  446. export const AllSupportedTargetModels = Object.values(SupportedTargetModel);
  447. export const AllSupportedEventModels = Object.values(SupportedEventModel);
  448. export const AllSupportedActions = Object.values(SupportedAction);
  449. export const AllEssentialActions = Object.values(EssentialActionGroup);
  450. export const AllSmallGroupActions = Object.values(SmallActionGroup);
  451. export const AllMediumGroupActions = Object.values(MediumActionGroup);
  452. export const AllLargeGroupActions = Object.values(LargeActionGroup);
  453. // Action categories(for SelectActionDropdown.tsx)
  454. const pageRegExp = new RegExp(`^${SupportedActionCategory.PAGE.toUpperCase()}_`);
  455. const commentRegExp = new RegExp(`^${SupportedActionCategory.COMMENT.toUpperCase()}_`);
  456. const tagRegExp = new RegExp(`^${SupportedActionCategory.TAG.toUpperCase()}_`);
  457. const attachmentRegExp = RegExp(`^${SupportedActionCategory.ATTACHMENT.toUpperCase()}_`);
  458. const shareLinkRegExp = RegExp(`^${SupportedActionCategory.SHARE_LINK.toUpperCase()}_`);
  459. const inAppNotificationRegExp = RegExp(`^${SupportedActionCategory.IN_APP_NOTIFICATION.toUpperCase()}_`);
  460. const searchRegExp = RegExp(`^${SupportedActionCategory.SEARCH.toUpperCase()}_`);
  461. const userRegExp = new RegExp(`^${SupportedActionCategory.USER.toUpperCase()}_`);
  462. const adminRegExp = new RegExp(`^${SupportedActionCategory.ADMIN.toUpperCase()}_`);
  463. export const PageActions = AllSupportedActions.filter(action => action.match(pageRegExp));
  464. export const CommentActions = AllSupportedActions.filter(action => action.match(commentRegExp));
  465. export const TagActions = AllSupportedActions.filter(action => action.match(tagRegExp));
  466. export const AttachmentActions = AllSupportedActions.filter(action => action.match(attachmentRegExp));
  467. export const ShareLinkActions = AllSupportedActions.filter(action => action.match(shareLinkRegExp));
  468. export const InAppNotificationActions = AllSupportedActions.filter(action => action.match(inAppNotificationRegExp));
  469. export const SearchActions = AllSupportedActions.filter(action => action.match(searchRegExp));
  470. export const UserActions = AllSupportedActions.filter(action => action.match(userRegExp));
  471. export const AdminActions = AllSupportedActions.filter(action => action.match(adminRegExp));
  472. /*
  473. * Type
  474. */
  475. export type SupportedTargetModelType = typeof SupportedTargetModel[keyof typeof SupportedTargetModel];
  476. export type SupportedEventModelType = typeof SupportedEventModel[keyof typeof SupportedEventModel];
  477. export type SupportedActionType = typeof SupportedAction[keyof typeof SupportedAction];
  478. export type SupportedActionCategoryType = typeof SupportedActionCategory[keyof typeof SupportedActionCategory]
  479. export type ISnapshot = Partial<Pick<IUser, 'username'>>
  480. export type IActivity = {
  481. user?: Ref<IUser>
  482. ip?: string
  483. endpoint?: string
  484. targetModel?: SupportedTargetModelType
  485. target?: string
  486. eventModel?: SupportedEventModelType
  487. event?: string
  488. action: SupportedActionType
  489. createdAt: Date
  490. snapshot?: ISnapshot
  491. }
  492. export type IActivityHasId = IActivity & HasObjectId;
  493. export type ISearchFilter = {
  494. usernames?: string[]
  495. dates?: {startDate: string | null, endDate: string | null}
  496. actions?: SupportedActionType[]
  497. }