parent
							
								
									53d24c2ba1
								
							
						
					
					
						commit
						9ed6a9701a
					
				
					 2 changed files with 74 additions and 70 deletions
				
			
		|  | @ -16,6 +16,7 @@ You should also include the user name that made the change. | ||||||
| 
 | 
 | ||||||
| ### Bugfixes | ### Bugfixes | ||||||
| - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo | - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo | ||||||
|  | - Client: MiAuth認証ページが機能していない @syuilo | ||||||
| 
 | 
 | ||||||
| ## 12.117.1 (2022/07/19) | ## 12.117.1 (2022/07/19) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,85 +1,88 @@ | ||||||
| <template> | <template> | ||||||
| <div v-if="$i"> | <MkSpacer :content-max="800"> | ||||||
| 	<div v-if="state == 'waiting'" class="waiting _section"> | 	<div v-if="$i"> | ||||||
| 		<div class="_content"> | 		<div v-if="state == 'waiting'" class="waiting _section"> | ||||||
| 			<MkLoading/> | 			<div class="_content"> | ||||||
|  | 				<MkLoading/> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 		<div v-if="state == 'denied'" class="denied _section"> | ||||||
|  | 			<div class="_content"> | ||||||
|  | 				<p>{{ i18n.ts._auth.denied }}</p> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 		<div v-else-if="state == 'accepted'" class="accepted _section"> | ||||||
|  | 			<div class="_content"> | ||||||
|  | 				<p v-if="callback">{{ i18n.ts._auth.callback }}<MkEllipsis/></p> | ||||||
|  | 				<p v-else>{{ i18n.ts._auth.pleaseGoBack }}</p> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 		<div v-else class="_section"> | ||||||
|  | 			<div v-if="name" class="_title">{{ $t('_auth.shareAccess', { name: name }) }}</div> | ||||||
|  | 			<div v-else class="_title">{{ i18n.ts._auth.shareAccessAsk }}</div> | ||||||
|  | 			<div class="_content"> | ||||||
|  | 				<p>{{ i18n.ts._auth.permissionAsk }}</p> | ||||||
|  | 				<ul> | ||||||
|  | 					<li v-for="p in _permissions" :key="p">{{ $t(`_permissions.${p}`) }}</li> | ||||||
|  | 				</ul> | ||||||
|  | 			</div> | ||||||
|  | 			<div class="_footer"> | ||||||
|  | 				<MkButton inline @click="deny">{{ i18n.ts.cancel }}</MkButton> | ||||||
|  | 				<MkButton inline primary @click="accept">{{ i18n.ts.accept }}</MkButton> | ||||||
|  | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| 	<div v-if="state == 'denied'" class="denied _section"> | 	<div v-else class="signin"> | ||||||
| 		<div class="_content"> | 		<MkSignin @login="onLogin"/> | ||||||
| 			<p>{{ $ts._auth.denied }}</p> |  | ||||||
| 		</div> |  | ||||||
| 	</div> | 	</div> | ||||||
| 	<div v-else-if="state == 'accepted'" class="accepted _section"> | </MkSpacer> | ||||||
| 		<div class="_content"> |  | ||||||
| 			<p v-if="callback">{{ $ts._auth.callback }}<MkEllipsis/></p> |  | ||||||
| 			<p v-else>{{ $ts._auth.pleaseGoBack }}</p> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| 	<div v-else class="_section"> |  | ||||||
| 		<div v-if="name" class="_title">{{ $t('_auth.shareAccess', { name: name }) }}</div> |  | ||||||
| 		<div v-else class="_title">{{ $ts._auth.shareAccessAsk }}</div> |  | ||||||
| 		<div class="_content"> |  | ||||||
| 			<p>{{ $ts._auth.permissionAsk }}</p> |  | ||||||
| 			<ul> |  | ||||||
| 				<li v-for="p in permission" :key="p">{{ $t(`_permissions.${p}`) }}</li> |  | ||||||
| 			</ul> |  | ||||||
| 		</div> |  | ||||||
| 		<div class="_footer"> |  | ||||||
| 			<MkButton inline @click="deny">{{ $ts.cancel }}</MkButton> |  | ||||||
| 			<MkButton inline primary @click="accept">{{ $ts.accept }}</MkButton> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| </div> |  | ||||||
| <div v-else class="signin"> |  | ||||||
| 	<MkSignin @login="onLogin"/> |  | ||||||
| </div> |  | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script lang="ts"> | <script lang="ts" setup> | ||||||
| import { defineComponent } from 'vue'; | import { } from 'vue'; | ||||||
| import MkSignin from '@/components/signin.vue'; | import MkSignin from '@/components/signin.vue'; | ||||||
| import MkButton from '@/components/ui/button.vue'; | import MkButton from '@/components/ui/button.vue'; | ||||||
| import * as os from '@/os'; | import * as os from '@/os'; | ||||||
| import { login } from '@/account'; | import { $i, login } from '@/account'; | ||||||
| import { appendQuery, query } from '@/scripts/url'; | import { appendQuery, query } from '@/scripts/url'; | ||||||
|  | import { i18n } from '@/i18n'; | ||||||
| 
 | 
 | ||||||
| export default defineComponent({ | const props = defineProps<{ | ||||||
| 	components: { | 	session: string; | ||||||
| 		MkSignin, | 	callback?: string; | ||||||
| 		MkButton, | 	name: string; | ||||||
| 	}, | 	icon: string; | ||||||
| 	props: ['session', 'callback', 'name', 'icon', 'permission'], | 	permission: string; // コンマ区切り | ||||||
| 	data() { | }>(); | ||||||
| 		return { |  | ||||||
| 			state: null, |  | ||||||
| 		}; |  | ||||||
| 	}, |  | ||||||
| 	methods: { |  | ||||||
| 		async accept() { |  | ||||||
| 			this.state = 'waiting'; |  | ||||||
| 			await os.api('miauth/gen-token', { |  | ||||||
| 				session: this.session, |  | ||||||
| 				name: this.name, |  | ||||||
| 				iconUrl: this.icon, |  | ||||||
| 				permission: this.permission, |  | ||||||
| 			}); |  | ||||||
| 
 | 
 | ||||||
| 			this.state = 'accepted'; | const _permissions = props.permission.split(','); | ||||||
| 			if (this.callback) { | 
 | ||||||
| 				location.href = appendQuery(this.callback, query({ | let state = $ref<string | null>(null); | ||||||
| 					session: this.session, | 
 | ||||||
| 				})); | async function accept(): Promise<void> { | ||||||
| 			} | 	state = 'waiting'; | ||||||
| 		}, | 	await os.api('miauth/gen-token', { | ||||||
| 		deny() { | 		session: props.session, | ||||||
| 			this.state = 'denied'; | 		name: props.name, | ||||||
| 		}, | 		iconUrl: props.icon, | ||||||
| 		onLogin(res) { | 		permission: _permissions, | ||||||
| 			login(res.i); | 	}); | ||||||
| 		}, | 
 | ||||||
| 	}, | 	state = 'accepted'; | ||||||
| }); | 	if (props.callback) { | ||||||
|  | 		location.href = appendQuery(props.callback, query({ | ||||||
|  | 			session: props.session, | ||||||
|  | 		})); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function deny(): void { | ||||||
|  | 	state = 'denied'; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function onLogin(res): void { | ||||||
|  | 	login(res.i); | ||||||
|  | } | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue