コントロールパネルから招待制のオンオフを切り替えられるように
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…
	
	Add table
		Add a link
		
	
		Reference in a new issue