parent
							
								
									165d272552
								
							
						
					
					
						commit
						9ea7d75aa4
					
				
					 4 changed files with 82 additions and 10 deletions
				
			
		|  | @ -14,6 +14,7 @@ | |||
| - インスタンスプロフィールレンダリング ready | ||||
| - 通知のリアクションアイコンをホバーで拡大できるように | ||||
| - 返信の際にメンションを含めるように | ||||
| - 通報があったときに管理者へEメールで通知されるように | ||||
| - メールアドレスのバリデーションを強化 | ||||
| 
 | ||||
| ### Bugfixes | ||||
|  |  | |||
|  | @ -59,6 +59,7 @@ | |||
| 		"@types/redis": "2.8.32", | ||||
| 		"@types/rename": "1.0.4", | ||||
| 		"@types/request-stats": "3.0.0", | ||||
| 		"@types/sanitize-html": "2.5.0", | ||||
| 		"@types/seedrandom": "2.4.28", | ||||
| 		"@types/sharp": "0.29.3", | ||||
| 		"@types/sinonjs__fake-timers": "6.0.4", | ||||
|  | @ -163,6 +164,7 @@ | |||
| 		"require-all": "3.0.0", | ||||
| 		"rndstr": "1.0.0", | ||||
| 		"s-age": "1.1.2", | ||||
| 		"sanitize-html": "2.5.3", | ||||
| 		"seedrandom": "3.0.5", | ||||
| 		"sharp": "0.29.2", | ||||
| 		"speakeasy": "2.0.0", | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| import $ from 'cafy'; | ||||
| import * as sanitizeHtml from 'sanitize-html'; | ||||
| import { ID } from '@/misc/cafy-id'; | ||||
| import define from '../../define'; | ||||
| import { publishAdminStream } from '@/services/stream'; | ||||
|  | @ -6,6 +7,8 @@ import { ApiError } from '../../error'; | |||
| import { getUser } from '../../common/getters'; | ||||
| import { AbuseUserReports, Users } from '@/models/index'; | ||||
| import { genId } from '@/misc/gen-id'; | ||||
| import { sendEmail } from '@/services/send-email'; | ||||
| import { fetchMeta } from '@/misc/fetch-meta'; | ||||
| 
 | ||||
| export const meta = { | ||||
| 	tags: ['users'], | ||||
|  | @ -26,23 +29,24 @@ export const meta = { | |||
| 		noSuchUser: { | ||||
| 			message: 'No such user.', | ||||
| 			code: 'NO_SUCH_USER', | ||||
| 			id: '1acefcb5-0959-43fd-9685-b48305736cb5' | ||||
| 			id: '1acefcb5-0959-43fd-9685-b48305736cb5', | ||||
| 		}, | ||||
| 
 | ||||
| 		cannotReportYourself: { | ||||
| 			message: 'Cannot report yourself.', | ||||
| 			code: 'CANNOT_REPORT_YOURSELF', | ||||
| 			id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f' | ||||
| 			id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f', | ||||
| 		}, | ||||
| 
 | ||||
| 		cannotReportAdmin: { | ||||
| 			message: 'Cannot report the admin.', | ||||
| 			code: 'CANNOT_REPORT_THE_ADMIN', | ||||
| 			id: '35e166f5-05fb-4f87-a2d5-adb42676d48f' | ||||
| 		} | ||||
| 	} | ||||
| 			id: '35e166f5-05fb-4f87-a2d5-adb42676d48f', | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| 
 | ||||
| // eslint-disable-next-line import/no-default-export
 | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	// Lookup user
 | ||||
| 	const user = await getUser(ps.userId).catch(e => { | ||||
|  | @ -72,10 +76,10 @@ export default define(meta, async (ps, me) => { | |||
| 	setTimeout(async () => { | ||||
| 		const moderators = await Users.find({ | ||||
| 			where: [{ | ||||
| 				isAdmin: true | ||||
| 				isAdmin: true, | ||||
| 			}, { | ||||
| 				isModerator: true | ||||
| 			}] | ||||
| 				isModerator: true, | ||||
| 			}], | ||||
| 		}); | ||||
| 
 | ||||
| 		for (const moderator of moderators) { | ||||
|  | @ -83,8 +87,15 @@ export default define(meta, async (ps, me) => { | |||
| 				id: report.id, | ||||
| 				targetUserId: report.targetUserId, | ||||
| 				reporterId: report.reporterId, | ||||
| 				comment: report.comment | ||||
| 				comment: report.comment, | ||||
| 			}); | ||||
| 		} | ||||
| 
 | ||||
| 		const meta = await fetchMeta(); | ||||
| 		if (meta.email) { | ||||
| 			sendEmail(meta.email, 'New abuse report', | ||||
| 				sanitizeHtml(ps.comment), | ||||
| 				sanitizeHtml(ps.comment)); | ||||
| 		} | ||||
| 	}, 1); | ||||
| }); | ||||
|  |  | |||
|  | @ -769,6 +769,13 @@ | |||
|   resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.4.tgz#55e93e7054027f1ad4b4ebc1e60e59eb091e2d32" | ||||
|   integrity sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg== | ||||
| 
 | ||||
| "@types/sanitize-html@2.5.0": | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.5.0.tgz#bfef58fbcf2674b20ffcc23c3506faa68c3a13e3" | ||||
|   integrity sha512-PeFIEZsO9m1+ACJlXUaimgrR+5DEDiIXhz7Hso307jmq5Yz0lb5kDp8LiTr5dMMMliC/jNNx/qds7Zoxa4zexw== | ||||
|   dependencies: | ||||
|     htmlparser2 "^6.0.0" | ||||
| 
 | ||||
| "@types/seedrandom@2.4.28": | ||||
|   version "2.4.28" | ||||
|   resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.28.tgz#9ce8fa048c1e8c85cb71d7fe4d704e000226036f" | ||||
|  | @ -2631,6 +2638,11 @@ deep-is@^0.1.3, deep-is@~0.1.3: | |||
|   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" | ||||
|   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= | ||||
| 
 | ||||
| deepmerge@^4.2.2: | ||||
|   version "4.2.2" | ||||
|   resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" | ||||
|   integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== | ||||
| 
 | ||||
| defer-to-connect@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" | ||||
|  | @ -2831,7 +2843,7 @@ domutils@^1.5.1: | |||
|     dom-serializer "0" | ||||
|     domelementtype "1" | ||||
| 
 | ||||
| domutils@^2.6.0: | ||||
| domutils@^2.5.2, domutils@^2.6.0: | ||||
|   version "2.8.0" | ||||
|   resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" | ||||
|   integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== | ||||
|  | @ -3889,6 +3901,16 @@ htmlparser2@^3.9.1: | |||
|     inherits "^2.0.1" | ||||
|     readable-stream "^3.1.1" | ||||
| 
 | ||||
| htmlparser2@^6.0.0: | ||||
|   version "6.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" | ||||
|   integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== | ||||
|   dependencies: | ||||
|     domelementtype "^2.0.1" | ||||
|     domhandler "^4.0.0" | ||||
|     domutils "^2.5.2" | ||||
|     entities "^2.0.0" | ||||
| 
 | ||||
| http-assert@^1.3.0: | ||||
|   version "1.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" | ||||
|  | @ -4358,6 +4380,11 @@ is-plain-obj@^2.1.0: | |||
|   resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" | ||||
|   integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== | ||||
| 
 | ||||
| is-plain-object@^5.0.0: | ||||
|   version "5.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" | ||||
|   integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== | ||||
| 
 | ||||
| is-potential-custom-element-name@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" | ||||
|  | @ -5471,6 +5498,11 @@ nanoid@^3.1.23: | |||
|   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" | ||||
|   integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== | ||||
| 
 | ||||
| nanoid@^3.1.30: | ||||
|   version "3.1.30" | ||||
|   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" | ||||
|   integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== | ||||
| 
 | ||||
| napi-build-utils@^1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" | ||||
|  | @ -5940,6 +5972,11 @@ parse-passwd@^1.0.0: | |||
|   resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" | ||||
|   integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= | ||||
| 
 | ||||
| parse-srcset@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" | ||||
|   integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= | ||||
| 
 | ||||
| parse5-htmlparser2-tree-adapter@^6.0.0: | ||||
|   version "6.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" | ||||
|  | @ -6371,6 +6408,15 @@ postcss@^8.2.15: | |||
|     nanoid "^3.1.23" | ||||
|     source-map-js "^0.6.2" | ||||
| 
 | ||||
| postcss@^8.3.11: | ||||
|   version "8.3.11" | ||||
|   resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" | ||||
|   integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== | ||||
|   dependencies: | ||||
|     nanoid "^3.1.30" | ||||
|     picocolors "^1.0.0" | ||||
|     source-map-js "^0.6.2" | ||||
| 
 | ||||
| postgres-array@~2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" | ||||
|  | @ -7049,6 +7095,18 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: | |||
|   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" | ||||
|   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== | ||||
| 
 | ||||
| sanitize-html@2.5.3: | ||||
|   version "2.5.3" | ||||
|   resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.5.3.tgz#91aa3dc760b072cdf92f9c6973747569b1ba1cd8" | ||||
|   integrity sha512-DGATXd1fs/Rm287/i5FBKVYSBBUL0iAaztOA1/RFhEs4yqo39/X52i/q/CwsfCUG5cilmXSBmnQmyWfnKhBlOg== | ||||
|   dependencies: | ||||
|     deepmerge "^4.2.2" | ||||
|     escape-string-regexp "^4.0.0" | ||||
|     htmlparser2 "^6.0.0" | ||||
|     is-plain-object "^5.0.0" | ||||
|     parse-srcset "^1.0.2" | ||||
|     postcss "^8.3.11" | ||||
| 
 | ||||
| sax@1.2.1: | ||||
|   version "1.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue