forked from vikunja/vikunja
add frontend code from #3033
This commit is contained in:
parent
5f521c0982
commit
e7fc94d5b5
|
@ -18,5 +18,5 @@ package frontend
|
||||||
|
|
||||||
import "embed"
|
import "embed"
|
||||||
|
|
||||||
//go:embed dist
|
// go:embed dist
|
||||||
var Files embed.FS
|
var Files embed.FS
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,14 +11,17 @@ export function getRedirectUrlFromCurrentFrontendPath(provider: IProvider): stri
|
||||||
|
|
||||||
export const redirectToProvider = (provider: IProvider) => {
|
export const redirectToProvider = (provider: IProvider) => {
|
||||||
|
|
||||||
console.log({provider})
|
|
||||||
|
|
||||||
const redirectUrl = getRedirectUrlFromCurrentFrontendPath(provider)
|
const redirectUrl = getRedirectUrlFromCurrentFrontendPath(provider)
|
||||||
const state = createRandomID(24)
|
const state = createRandomID(24)
|
||||||
localStorage.setItem('state', state)
|
localStorage.setItem('state', state)
|
||||||
|
|
||||||
window.location.href = `${provider.authUrl}?client_id=${provider.clientId}&redirect_uri=${redirectUrl}&response_type=code&scope=openid email profile&state=${state}`
|
let scope = 'openid email profile'
|
||||||
|
if (provider.scope !== null){
|
||||||
|
scope = provider.scope
|
||||||
|
}
|
||||||
|
window.location.href = `${provider.authUrl}?client_id=${provider.clientId}&redirect_uri=${redirectUrl}&response_type=code&scope=${scope}&state=${state}`
|
||||||
}
|
}
|
||||||
|
|
||||||
export const redirectToProviderOnLogout = (provider: IProvider) => {
|
export const redirectToProviderOnLogout = (provider: IProvider) => {
|
||||||
if (provider.logoutUrl.length > 0) {
|
if (provider.logoutUrl.length > 0) {
|
||||||
window.location.href = `${provider.logoutUrl}`
|
window.location.href = `${provider.logoutUrl}`
|
||||||
|
|
|
@ -9,6 +9,7 @@ export interface ITeam extends IAbstract {
|
||||||
description: string
|
description: string
|
||||||
members: ITeamMember[]
|
members: ITeamMember[]
|
||||||
right: Right
|
right: Right
|
||||||
|
oidcId: string
|
||||||
|
|
||||||
createdBy: IUser
|
createdBy: IUser
|
||||||
created: Date
|
created: Date
|
||||||
|
|
|
@ -13,6 +13,7 @@ export default class TeamModel extends AbstractModel<ITeam> implements ITeam {
|
||||||
description = ''
|
description = ''
|
||||||
members: ITeamMember[] = []
|
members: ITeamMember[] = []
|
||||||
right: Right = RIGHTS.READ
|
right: Right = RIGHTS.READ
|
||||||
|
oidcId = ''
|
||||||
|
|
||||||
createdBy: IUser = {} // FIXME: seems wrong
|
createdBy: IUser = {} // FIXME: seems wrong
|
||||||
created: Date = null
|
created: Date = null
|
||||||
|
|
|
@ -4,4 +4,5 @@ export interface IProvider {
|
||||||
authUrl: string;
|
authUrl: string;
|
||||||
clientId: string;
|
clientId: string;
|
||||||
logoutUrl: string;
|
logoutUrl: string;
|
||||||
|
scope: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
:class="{ 'is-loading': teamService.loading }"
|
:class="{ 'is-loading': teamService.loading }"
|
||||||
>
|
>
|
||||||
<card
|
<card
|
||||||
v-if="userIsAdmin"
|
v-if="userIsAdmin && !team.oidcId"
|
||||||
class="is-fullwidth"
|
class="is-fullwidth"
|
||||||
:title="title"
|
:title="title"
|
||||||
>
|
>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
:padding="false"
|
:padding="false"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-if="userIsAdmin"
|
v-if="userIsAdmin && !team.oidcId"
|
||||||
class="p-4"
|
class="p-4"
|
||||||
>
|
>
|
||||||
<div class="field has-addons">
|
<div class="field has-addons">
|
||||||
|
|
|
@ -17,11 +17,13 @@
|
||||||
class="teams box"
|
class="teams box"
|
||||||
>
|
>
|
||||||
<li
|
<li
|
||||||
v-for="team in teams"
|
v-for="t in teams"
|
||||||
:key="team.id"
|
:key="t.id"
|
||||||
>
|
>
|
||||||
<router-link :to="{name: 'teams.edit', params: {id: team.id}}">
|
<router-link :to="{name: 'teams.edit', params: {id: t.id}}">
|
||||||
{{ team.name }}
|
<p>
|
||||||
|
{{ t.name + (t.oidcId ? ` (sso: ${t.oidcId})`: '') }}
|
||||||
|
</p>
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue