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