mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17:38:19 +08:00
module.add(user,problem,record)
This commit is contained in:
commit
d5b1f623f8
43 files changed
+5965
No files matched your search
@@ -0,0 +1,50 @@
|
||||
const
|
||||
Mongo = require('mongodb'),
|
||||
{ pwhash } = require('./utils'),
|
||||
priv = require('./privilege'),
|
||||
builtin = require('./model/builtin'),
|
||||
options = require('./lib/options');
|
||||
|
||||
async function run() {
|
||||
let mongourl = 'mongodb://';
|
||||
if (options.db.username) mongourl += options.db.username + ':' + options.db.password + '@';
|
||||
mongourl += `${options.db.host}:${options.db.port}/${options.db.name}`;
|
||||
let Database = await Mongo.MongoClient.connect(mongourl, { useNewUrlParser: true, useUnifiedTopology: true });
|
||||
let db = Database.db(options.db.name);
|
||||
let coll_user = db.collection('user');
|
||||
let coll_domain = db.collection('domain');
|
||||
let coll_domain_user = db.collection('domain_user');
|
||||
let coll_blacklist = db.collection('blacklist');
|
||||
async function createRootUser() {
|
||||
let salt = pwhash.salt();
|
||||
await coll_user.insertOne({
|
||||
_id: -1,
|
||||
email: 'root@hydro',
|
||||
emailLower: 'root@hydro',
|
||||
uname: 'Root',
|
||||
unameLower: 'root',
|
||||
password: pwhash.hash('root', salt),
|
||||
salt,
|
||||
regat: new Date(),
|
||||
regip: '127.0.0.1',
|
||||
loginat: new Date(),
|
||||
loginip: '127.0.0.1',
|
||||
priv: priv.PRIV_ALL,
|
||||
gravatar: 'root@hydro'
|
||||
});
|
||||
await coll_domain_user.insertOne({ domainId: 'system', uid: -1, role: 'admin', joinAt: new Date() });
|
||||
}
|
||||
await coll_user.createIndex('unameLower', { unique: true });
|
||||
await coll_user.createIndex('emailLower', { sparse: true });
|
||||
await coll_user.insertMany(builtin.BUILTIN_USERS);
|
||||
await coll_domain.insertMany(builtin.BUILTIN_DOMAINS);
|
||||
await coll_blacklist.createIndex('expireAt', { expireAfterSeconds: 0 });
|
||||
await createRootUser();
|
||||
console.log('Installed');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
run().catch(e => {
|
||||
console.error(e);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in new issue
Block a user