mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-24 00:03:07 +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"/>
|
<x-cpu-memory :connection="connection"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" v-model="disableRegistration" @change="updateMeta">
|
||||||
|
<span>disableRegistration</span>
|
||||||
|
</label>
|
||||||
<button class="ui" @click="invite">%i18n:@invite%</button>
|
<button class="ui" @click="invite">%i18n:@invite%</button>
|
||||||
<p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p>
|
<p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -28,6 +32,7 @@ export default Vue.extend({
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
stats: null,
|
stats: null,
|
||||||
|
disableRegistration: false,
|
||||||
inviteCode: null,
|
inviteCode: null,
|
||||||
connection: null,
|
connection: null,
|
||||||
connectionId: null
|
connectionId: null
|
||||||
|
@ -37,6 +42,10 @@ export default Vue.extend({
|
||||||
this.connection = (this as any).os.streams.serverStatsStream.getConnection();
|
this.connection = (this as any).os.streams.serverStatsStream.getConnection();
|
||||||
this.connectionId = (this as any).os.streams.serverStatsStream.use();
|
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 as any).api('stats').then(stats => {
|
||||||
this.stats = stats;
|
this.stats = stats;
|
||||||
});
|
});
|
||||||
|
@ -49,6 +58,11 @@ export default Vue.extend({
|
||||||
(this as any).api('admin/invite').then(x => {
|
(this as any).api('admin/invite').then(x => {
|
||||||
this.inviteCode = x.code;
|
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