mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-12-24 04:43:08 +02:00
コントロールパネルから招待制のオンオフを切り替えられるように
This commit is contained in:
parent
d98c67e13c
commit
8ba178f795
2 changed files with 51 additions and 0 deletions
|
@ -11,6 +11,10 @@
|
|||
<x-cpu-memory :connection="connection"/>
|
||||
</div>
|
||||
<div>
|
||||
<label>
|
||||
<input type="checkbox" v-model="disableRegistration" @change="updateMeta">
|
||||
<span>disableRegistration</span>
|
||||
</label>
|
||||
<button class="ui" @click="invite">%i18n:@invite%</button>
|
||||
<p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p>
|
||||
</div>
|
||||
|
@ -28,6 +32,7 @@ export default Vue.extend({
|
|||
data() {
|
||||
return {
|
||||
stats: null,
|
||||
disableRegistration: false,
|
||||
inviteCode: null,
|
||||
connection: null,
|
||||
connectionId: null
|
||||
|
@ -37,6 +42,10 @@ export default Vue.extend({
|
|||
this.connection = (this as any).os.streams.serverStatsStream.getConnection();
|
||||
this.connectionId = (this as any).os.streams.serverStatsStream.use();
|
||||
|
||||
(this as any).os.getMeta().then(meta => {
|
||||
this.disableRegistration = meta.disableRegistration;
|
||||
});
|
||||
|
||||
(this as any).api('stats').then(stats => {
|
||||
this.stats = stats;
|
||||
});
|
||||
|
@ -49,6 +58,11 @@ export default Vue.extend({
|
|||
(this as any).api('admin/invite').then(x => {
|
||||
this.inviteCode = x.code;
|
||||
});
|
||||
},
|
||||
updateMeta() {
|
||||
(this as any).api('admin/update-meta', {
|
||||
disableRegistration: this.disableRegistration
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
37
src/server/api/endpoints/admin/update-meta.ts
Normal file
37
src/server/api/endpoints/admin/update-meta.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
import $ from 'cafy';
|
||||
import Meta from '../../../../models/meta';
|
||||
import getParams from '../../get-params';
|
||||
|
||||
export const meta = {
|
||||
desc: {
|
||||
ja: 'インスタンスの設定を更新します。'
|
||||
},
|
||||
|
||||
requireCredential: true,
|
||||
requireAdmin: true,
|
||||
|
||||
params: {
|
||||
disableRegistration: $.bool.optional.nullable.note({
|
||||
desc: {
|
||||
ja: '招待制か否か'
|
||||
}
|
||||
}),
|
||||
}
|
||||
};
|
||||
|
||||
export default (params: any) => new Promise(async (res, rej) => {
|
||||
const [ps, psErr] = getParams(meta, params);
|
||||
if (psErr) return rej(psErr);
|
||||
|
||||
const set = {} as any;
|
||||
|
||||
if (ps.disableRegistration === true || ps.disableRegistration === false) {
|
||||
set.disableRegistration = ps.disableRegistration;
|
||||
}
|
||||
|
||||
await Meta.update({}, {
|
||||
$set: set
|
||||
}, { upsert: true });
|
||||
|
||||
res();
|
||||
});
|
Loading…
Reference in a new issue