@atproto/ozone 0.1.56 → 0.1.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/api/moderation/emitEvent.d.ts.map +1 -1
- package/dist/api/moderation/emitEvent.js +66 -11
- package/dist/api/moderation/emitEvent.js.map +1 -1
- package/dist/api/setting/upsertOption.d.ts.map +1 -1
- package/dist/api/setting/upsertOption.js +7 -2
- package/dist/api/setting/upsertOption.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +9822 -22228
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +7 -1
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/mod-service/index.d.ts +13 -13
- package/dist/setting/constants.d.ts +2 -0
- package/dist/setting/constants.d.ts.map +1 -0
- package/dist/setting/constants.js +5 -0
- package/dist/setting/constants.js.map +1 -0
- package/dist/setting/types.d.ts +7 -0
- package/dist/setting/types.d.ts.map +1 -0
- package/dist/setting/types.js +3 -0
- package/dist/setting/types.js.map +1 -0
- package/dist/setting/validators.d.ts +4 -0
- package/dist/setting/validators.d.ts.map +1 -0
- package/dist/setting/validators.js +43 -0
- package/dist/setting/validators.js.map +1 -0
- package/package.json +3 -3
- package/src/api/moderation/emitEvent.ts +114 -13
- package/src/api/setting/upsertOption.ts +10 -3
- package/src/lexicon/lexicons.ts +9 -4
- package/src/lexicon/types/app/bsky/actor/defs.ts +7 -1
- package/src/setting/constants.ts +1 -0
- package/src/setting/types.ts +3 -0
- package/src/setting/validators.ts +61 -0
- package/tests/protected-tags.test.ts +201 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.tests.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atproto/ozone
|
|
2
2
|
|
|
3
|
+
## 0.1.57
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3082](https://github.com/bluesky-social/atproto/pull/3082) [`a3ce23c4c`](https://github.com/bluesky-social/atproto/commit/a3ce23c4ccf4f40998b9d1f5731e5c905390aedc) Thanks [@gaearon](https://github.com/gaearon)! - Add hotness as a thread sorting option
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`a3ce23c4c`](https://github.com/bluesky-social/atproto/commit/a3ce23c4ccf4f40998b9d1f5731e5c905390aedc)]:
|
|
10
|
+
- @atproto/api@0.13.18
|
|
11
|
+
|
|
3
12
|
## 0.1.56
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitEvent.d.ts","sourceRoot":"","sources":["../../../src/api/moderation/emitEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"emitEvent.d.ts","sourceRoot":"","sources":["../../../src/api/moderation/emitEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;AAoPtC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAoCvD"}
|
|
@@ -6,6 +6,7 @@ const defs_1 = require("../../lexicon/types/tools/ozone/moderation/defs");
|
|
|
6
6
|
const subject_1 = require("../../mod-service/subject");
|
|
7
7
|
const tag_service_1 = require("../../tag-service");
|
|
8
8
|
const util_1 = require("../../util");
|
|
9
|
+
const constants_1 = require("../../setting/constants");
|
|
9
10
|
const handleModerationEvent = async ({ ctx, input, auth, }) => {
|
|
10
11
|
const access = auth.credentials;
|
|
11
12
|
const createdBy = auth.credentials.type === 'moderator'
|
|
@@ -13,6 +14,7 @@ const handleModerationEvent = async ({ ctx, input, auth, }) => {
|
|
|
13
14
|
: input.body.createdBy;
|
|
14
15
|
const db = ctx.db;
|
|
15
16
|
const moderationService = ctx.modService(db);
|
|
17
|
+
const settingService = ctx.settingService(db);
|
|
16
18
|
const { event } = input.body;
|
|
17
19
|
const isTakedownEvent = (0, defs_1.isModEventTakedown)(event);
|
|
18
20
|
const isReverseTakedownEvent = (0, defs_1.isModEventReverseTakedown)(event);
|
|
@@ -48,6 +50,33 @@ const handleModerationEvent = async ({ ctx, input, auth, }) => {
|
|
|
48
50
|
if (!status?.takendown && isReverseTakedownEvent) {
|
|
49
51
|
throw new xrpc_server_1.InvalidRequestError(`Subject is not taken down`);
|
|
50
52
|
}
|
|
53
|
+
if (status?.tags?.length) {
|
|
54
|
+
const protectedTags = await getProtectedTags(settingService, ctx.cfg.service.did);
|
|
55
|
+
if (protectedTags) {
|
|
56
|
+
status.tags.forEach((tag) => {
|
|
57
|
+
if (!Object.hasOwn(protectedTags, tag))
|
|
58
|
+
return;
|
|
59
|
+
if (protectedTags[tag]['moderators'] &&
|
|
60
|
+
!protectedTags[tag]['moderators'].includes(createdBy)) {
|
|
61
|
+
throw new xrpc_server_1.InvalidRequestError(`Not allowed to action on protected tag: ${tag}`);
|
|
62
|
+
}
|
|
63
|
+
if (protectedTags[tag]['roles']) {
|
|
64
|
+
if (auth.credentials.isAdmin &&
|
|
65
|
+
!protectedTags[tag]['roles'].includes('tools.ozone.team.defs#roleAdmin')) {
|
|
66
|
+
throw new xrpc_server_1.InvalidRequestError(`Not allowed to action on protected tag: ${tag}`);
|
|
67
|
+
}
|
|
68
|
+
if (auth.credentials.isModerator &&
|
|
69
|
+
!protectedTags[tag]['roles'].includes('tools.ozone.team.defs#roleModerator')) {
|
|
70
|
+
throw new xrpc_server_1.InvalidRequestError(`Not allowed to action on protected tag: ${tag}`);
|
|
71
|
+
}
|
|
72
|
+
if (auth.credentials.isTriage &&
|
|
73
|
+
!protectedTags[tag]['roles'].includes('tools.ozone.team.defs#roleTriage')) {
|
|
74
|
+
throw new xrpc_server_1.InvalidRequestError(`Not allowed to action on protected tag: ${tag}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
51
80
|
if (status?.takendown && isReverseTakedownEvent && subject.isRecord()) {
|
|
52
81
|
// due to the way blob status is modeled, we should reverse takedown on all
|
|
53
82
|
// blobs for the record being restored, which aren't taken down on another record.
|
|
@@ -77,7 +106,7 @@ const handleModerationEvent = async ({ ctx, input, auth, }) => {
|
|
|
77
106
|
throw new xrpc_server_1.InvalidRequestError('Subject must be a repo when muting reporter');
|
|
78
107
|
}
|
|
79
108
|
if ((0, defs_1.isModEventTag)(event)) {
|
|
80
|
-
assertTagAuth(event, auth);
|
|
109
|
+
await assertTagAuth(settingService, ctx.cfg.service.did, event, auth);
|
|
81
110
|
}
|
|
82
111
|
const moderationEvent = await db.transaction(async (dbTxn) => {
|
|
83
112
|
const moderationTxn = ctx.modService(dbTxn);
|
|
@@ -156,25 +185,51 @@ function default_1(server, ctx) {
|
|
|
156
185
|
},
|
|
157
186
|
});
|
|
158
187
|
}
|
|
159
|
-
const
|
|
160
|
-
'chat-disabled': 'moderator',
|
|
161
|
-
};
|
|
162
|
-
const assertTagAuth = (event, auth) => {
|
|
188
|
+
const assertTagAuth = async (settingService, serviceDid, event, auth) => {
|
|
163
189
|
// admins can add/remove any tag
|
|
164
190
|
if (auth.credentials.isAdmin)
|
|
165
191
|
return;
|
|
166
|
-
|
|
192
|
+
const protectedTags = await getProtectedTags(settingService, serviceDid);
|
|
193
|
+
if (!protectedTags) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
for (const tag of Object.keys(protectedTags)) {
|
|
167
197
|
if (event.add.includes(tag) || event.remove.includes(tag)) {
|
|
168
|
-
if
|
|
169
|
-
|
|
198
|
+
// if specific moderators are configured to manage this tag but the current user
|
|
199
|
+
// is not one of them, then throw an error
|
|
200
|
+
const configuredModerators = protectedTags[tag]?.['moderators'];
|
|
201
|
+
if (configuredModerators &&
|
|
202
|
+
!configuredModerators.includes(auth.credentials.iss)) {
|
|
203
|
+
throw new xrpc_server_1.InvalidRequestError(`Not allowed to manage tag: ${tag}`);
|
|
170
204
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
205
|
+
const configuredRoles = protectedTags[tag]?.['roles'];
|
|
206
|
+
if (configuredRoles) {
|
|
207
|
+
// admins can already do everything so we only check for moderator and triage role config
|
|
208
|
+
if (auth.credentials.isModerator &&
|
|
209
|
+
!configuredRoles.includes('tools.ozone.team.defs#roleModerator')) {
|
|
210
|
+
throw new xrpc_server_1.InvalidRequestError(`Can not manage tag ${tag} with moderator role`);
|
|
211
|
+
}
|
|
212
|
+
else if (auth.credentials.isTriage &&
|
|
213
|
+
!configuredRoles.includes('tools.ozone.team.defs#roleTriage')) {
|
|
214
|
+
throw new xrpc_server_1.InvalidRequestError(`Can not manage tag ${tag} with triage role`);
|
|
215
|
+
}
|
|
174
216
|
}
|
|
175
217
|
}
|
|
176
218
|
}
|
|
177
219
|
};
|
|
220
|
+
const getProtectedTags = async (settingService, serviceDid) => {
|
|
221
|
+
const protectedTagSetting = await settingService.query({
|
|
222
|
+
keys: [constants_1.ProtectedTagSettingKey],
|
|
223
|
+
scope: 'instance',
|
|
224
|
+
did: serviceDid,
|
|
225
|
+
limit: 1,
|
|
226
|
+
});
|
|
227
|
+
// if no protected tags are configured, then no need to do further check
|
|
228
|
+
if (!protectedTagSetting.options.length) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
return protectedTagSetting.options[0].value;
|
|
232
|
+
};
|
|
178
233
|
const validateLabels = (labels) => {
|
|
179
234
|
for (const label of labels) {
|
|
180
235
|
for (const char of badChars) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitEvent.js","sourceRoot":"","sources":["../../../src/api/moderation/emitEvent.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"emitEvent.js","sourceRoot":"","sources":["../../../src/api/moderation/emitEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertOption.d.ts","sourceRoot":"","sources":["../../../src/api/setting/upsertOption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"upsertOption.d.ts","sourceRoot":"","sources":["../../../src/api/setting/upsertOption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;AAQtC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,QAqFvD"}
|
|
@@ -7,6 +7,7 @@ exports.default = default_1;
|
|
|
7
7
|
const xrpc_server_1 = require("@atproto/xrpc-server");
|
|
8
8
|
const api_1 = require("@atproto/api");
|
|
9
9
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
10
|
+
const validators_1 = require("../../setting/validators");
|
|
10
11
|
function default_1(server, ctx) {
|
|
11
12
|
server.tools.ozone.setting.upsertOption({
|
|
12
13
|
auth: ctx.authVerifier.modOrAdminToken,
|
|
@@ -50,11 +51,15 @@ function default_1(server, ctx) {
|
|
|
50
51
|
!manageableRoles.includes(existingSetting.managerRole)) {
|
|
51
52
|
throw new xrpc_server_1.AuthRequiredError(`Not permitted to update setting ${key}`);
|
|
52
53
|
}
|
|
53
|
-
|
|
54
|
+
const option = {
|
|
54
55
|
...baseOption,
|
|
55
56
|
scope: 'instance',
|
|
56
57
|
managerRole: getManagerRole(managerRole),
|
|
57
|
-
}
|
|
58
|
+
};
|
|
59
|
+
if (validators_1.settingValidators.has(key)) {
|
|
60
|
+
await validators_1.settingValidators.get(key)?.(option);
|
|
61
|
+
}
|
|
62
|
+
await settingService.upsert(option);
|
|
58
63
|
}
|
|
59
64
|
const newOption = await getExistingSetting(settingService, ownerDid, key, scope);
|
|
60
65
|
(0, node_assert_1.default)(newOption, 'Failed to get the updated setting');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertOption.js","sourceRoot":"","sources":["../../../src/api/setting/upsertOption.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"upsertOption.js","sourceRoot":"","sources":["../../../src/api/setting/upsertOption.ts"],"names":[],"mappings":"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"}
|