flags related rights and stats api
This commit is contained in:
parent
ae199e3445
commit
8eff4de19d
22
src/api/routes/policies/stats.ts
Normal file
22
src/api/routes/policies/stats.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { route } from "@fosscord/api";
|
||||
import { Config, getRights, Guild, Member, Message, User } from "@fosscord/util";
|
||||
import { Request, Response, Router } from "express";
|
||||
const router = Router();
|
||||
|
||||
router.get("/", route({}), async (req: Request, res: Response) => {
|
||||
if (!Config.get().security.statsWorldReadable) {
|
||||
const rights = await getRights(req.user_id);
|
||||
rights.hasThrow("VIEW_SERVER_STATS");
|
||||
}
|
||||
|
||||
res.json({
|
||||
counts: {
|
||||
user: await User.count(),
|
||||
guild: await Guild.count(),
|
||||
message: await Message.count(),
|
||||
members: await Member.count(),
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
@ -13,4 +13,5 @@ export class SecurityConfiguration {
|
||||
forwadedFor: string | null = null;
|
||||
ipdataApiKey: string | null = "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9";
|
||||
mfaBackupCodeCount: number = 10;
|
||||
statsWorldReadable: boolean = true;
|
||||
}
|
||||
|
@ -78,6 +78,10 @@ export class Rights extends BitField {
|
||||
SEND_BACKDATED_EVENTS: BitFlag(42), // can send backdated events
|
||||
USE_MASS_INVITES: BitFlag(43), // added per @xnacly's request — can accept mass invites
|
||||
ACCEPT_INVITES: BitFlag(44), // added per @xnacly's request — can accept user-specific invites and DM requests
|
||||
SELF_EDIT_FLAGS: BitFlag(45), // can modify own flags
|
||||
EDIT_FLAGS: BitFlag(46), // can set others' flags
|
||||
MANAGE_GROUPS: BitFlag(47), // can manage others' groups
|
||||
VIEW_SERVER_STATS: BitFlag(48) // added per @chrischrome's request — can view server stats)
|
||||
};
|
||||
|
||||
any(permission: RightResolvable, checkOperator = true) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user