mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
bump version
This commit is contained in:
43 files changed
+96
-53
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "5.0.0-alpha.0",
|
||||
"version": "5.0.0-beta.0",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "src/plugin-api",
|
||||
"module": "src/plugin-api",
|
||||
|
||||
@@ -113,7 +113,7 @@ export async function load(ctx: Context) {
|
||||
await ctx.plugin(ConfigService);
|
||||
await require('../model/system').runConfig();
|
||||
ctx = await new Promise((resolve) => {
|
||||
ctx.inject(['loader', 'config'], (c) => {
|
||||
ctx.inject(['loader', 'config', 'db'], (c) => {
|
||||
resolve(c);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -34,7 +34,7 @@ export async function apply(ctx: Context) {
|
||||
const modelSystem = require('../model/system');
|
||||
await modelSystem.runConfig();
|
||||
ctx = await new Promise((resolve) => {
|
||||
ctx.inject(['loader', 'config'], (c) => {
|
||||
ctx.inject(['loader', 'config', 'db'], (c) => {
|
||||
resolve(c);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -437,8 +437,9 @@ class OauthCallbackHandler extends Handler {
|
||||
noCheckPermView = true;
|
||||
|
||||
async get(args: any) {
|
||||
if (!this.ctx.oauth.providers[args.type]) throw new UserFacingError('Oauth type');
|
||||
const r = await this.ctx.oauth.providers[args.type].callback.call(this, args);
|
||||
const provider = this.ctx.oauth.providers[args.type];
|
||||
if (!provider) throw new UserFacingError('Oauth type');
|
||||
const r = await provider.callback.call(this, args);
|
||||
if (this.session.oauthBind === args.type) {
|
||||
delete this.session.oauthBind;
|
||||
const existing = await this.ctx.oauth.get(args.type, r._id);
|
||||
@@ -456,6 +457,7 @@ class OauthCallbackHandler extends Handler {
|
||||
this.response.redirect = '/';
|
||||
return;
|
||||
}
|
||||
if (!provider.canRegister) throw new ForbiddenError('No binded account found');
|
||||
this.checkPriv(PRIV.PRIV_REGISTER_USER);
|
||||
let username = '';
|
||||
r.uname ||= [];
|
||||
|
||||
@@ -31,12 +31,12 @@ class BlackListModel {
|
||||
}
|
||||
}
|
||||
|
||||
export function apply(ctx: Context) {
|
||||
coll = db.collection('blacklist');
|
||||
ctx.on('ready', () => db.ensureIndexes(
|
||||
export async function apply(ctx: Context) {
|
||||
coll = ctx.db.collection('blacklist');
|
||||
await ctx.db.ensureIndexes(
|
||||
coll,
|
||||
{ key: { expireAt: -1 }, name: 'expire', expireAfterSeconds: 0 },
|
||||
));
|
||||
);
|
||||
}
|
||||
export default BlackListModel;
|
||||
global.Hydro.model.blacklist = BlackListModel;
|
||||
@@ -34,6 +34,7 @@ export interface OAuthProvider {
|
||||
hidden?: boolean;
|
||||
get: (this: Handler) => Promise<void>;
|
||||
callback: (this: Handler, args: Record<string, any>) => Promise<OAuthUserResponse>;
|
||||
canRegister?: boolean;
|
||||
lockUsername?: boolean;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Filter } from 'mongodb';
|
||||
import { Context } from '../context';
|
||||
import { TokenDoc } from '../interface';
|
||||
import bus from '../service/bus';
|
||||
import db from '../service/db';
|
||||
import { ArgMethod } from '../utils';
|
||||
|
||||
@@ -107,10 +107,12 @@ class TokenModel {
|
||||
}
|
||||
}
|
||||
|
||||
bus.on('ready', () => db.ensureIndexes(
|
||||
TokenModel.coll,
|
||||
{ key: { uid: 1, tokenType: 1, updateAt: -1 }, name: 'basic', sparse: true },
|
||||
{ key: { expireAt: -1 }, name: 'expire', expireAfterSeconds: 0 },
|
||||
));
|
||||
export async function apply(ctx: Context) {
|
||||
await ctx.db.ensureIndexes(
|
||||
TokenModel.coll,
|
||||
{ key: { uid: 1, tokenType: 1, updateAt: -1 }, name: 'basic', sparse: true },
|
||||
{ key: { expireAt: -1 }, name: 'expire', expireAfterSeconds: 0 },
|
||||
);
|
||||
}
|
||||
export default TokenModel;
|
||||
global.Hydro.model.token = TokenModel;
|
||||
@@ -104,7 +104,7 @@ class ApiService extends Service {
|
||||
constructor(ctx: Context) {
|
||||
super(ctx, 'api');
|
||||
this.rebuild = debounce(this.rebuild.bind(this), 500, { trailing: true });
|
||||
ctx.on('ready', this.rebuild);
|
||||
this.rebuild();
|
||||
}
|
||||
|
||||
private rebuild() {
|
||||
|
||||
@@ -178,10 +178,10 @@ export class MongoService extends Service {
|
||||
}
|
||||
|
||||
/** @deprecated use ctx.db instead */
|
||||
const db = new Proxy({} as MongoService, {
|
||||
const deprecatedDb = new Proxy({} as MongoService, {
|
||||
get(target, prop) {
|
||||
return app.get('db')?.[prop];
|
||||
},
|
||||
});
|
||||
|
||||
export default db;
|
||||
export default deprecatedDb;
|
||||
@@ -63,6 +63,7 @@ export default class MigrationService extends Service {
|
||||
dbVer++;
|
||||
await system.set(name, dbVer);
|
||||
}
|
||||
logger.success('Database upgraded [%s]: current version %d', channel, dbVer);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ async function terminate() {
|
||||
}, 1000);
|
||||
try {
|
||||
await bus.parallel('app/exit');
|
||||
await app.scope.dispose();
|
||||
} catch (e) {
|
||||
hasError = true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user