From a0a0d92f09757284e9f6cccf3f0c73ad548ee278 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 31 May 2023 15:06:39 +0800 Subject: [PATCH 01/25] modify oauth bottons --- templates/user/auth/signin_inner.tmpl | 24 ++++++++++++++---------- web_src/css/form.css | 7 +++++-- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index 8d9375de75c75..e14be2f412b2a 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -55,26 +55,30 @@ {{if and .OrderedOAuth2Names .OAuth2Providers}}
-
- {{.locale.Tr "sign_in_with"}} -
+
+ {{.locale.Tr "sign_in_with"}} +
{{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} - {{end}} diff --git a/web_src/css/form.css b/web_src/css/form.css index 9e1a72380b3ce..47d4681aaf73f 100644 --- a/web_src/css/form.css +++ b/web_src/css/form.css @@ -172,6 +172,7 @@ textarea:focus, text-align: center; } + @media (min-width: 768px) { #create-page-form form { width: 800px !important; @@ -309,7 +310,8 @@ textarea:focus, .user.reset.password form .inline.field > textarea, .user.link-account form .inline.field > textarea, .user.signin form .inline.field > textarea, - .user.signup form .inline.field > textarea { + .user.signup form .inline.field > textarea, + .oauth-login-link { width: 50%; } } @@ -364,7 +366,8 @@ textarea:focus, .user.reset.password form input, .user.link-account form input, .user.signin form input, - .user.signup form input { + .user.signup form input, + .oauth-login-link { width: 100% !important; } } From 6e0dbc63802a18039fdcece32c874fb47a273b86 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 31 May 2023 16:38:30 +0800 Subject: [PATCH 02/25] update svgs --- public/img/svg/gitea-azuread.svg | 1 + public/img/svg/gitea-azureadv2.svg | 1 + public/img/svg/gitea-bitbucket.svg | 1 + public/img/svg/gitea-discord.svg | 1 + public/img/svg/gitea-dropbox.svg | 1 + public/img/svg/gitea-facebook.svg | 1 + public/img/svg/gitea-google.svg | 1 + public/img/svg/gitea-mastodon.svg | 1 + public/img/svg/gitea-microsoftonline.svg | 1 + public/img/svg/gitea-nextcloud.svg | 1 + public/img/svg/gitea-twitter.svg | 1 + public/img/svg/gitea-yandex.svg | 1 + templates/user/auth/signin_inner.tmpl | 47 ++++++++++++++++++++++-- web_src/svg/gitea-azuread.svg | 17 +++++++++ web_src/svg/gitea-azureadv2.svg | 17 +++++++++ web_src/svg/gitea-bitbucket.svg | 1 + web_src/svg/gitea-discord.svg | 1 + web_src/svg/gitea-dropbox.svg | 1 + web_src/svg/gitea-facebook.svg | 7 ++++ web_src/svg/gitea-google.svg | 8 ++++ web_src/svg/gitea-mastodon.svg | 1 + web_src/svg/gitea-microsoftonline.svg | 1 + web_src/svg/gitea-nextcloud.svg | 9 +++++ web_src/svg/gitea-twitter.svg | 1 + web_src/svg/gitea-yandex.svg | 5 +++ 25 files changed, 124 insertions(+), 4 deletions(-) create mode 100644 public/img/svg/gitea-azuread.svg create mode 100644 public/img/svg/gitea-azureadv2.svg create mode 100644 public/img/svg/gitea-bitbucket.svg create mode 100644 public/img/svg/gitea-discord.svg create mode 100644 public/img/svg/gitea-dropbox.svg create mode 100644 public/img/svg/gitea-facebook.svg create mode 100644 public/img/svg/gitea-google.svg create mode 100644 public/img/svg/gitea-mastodon.svg create mode 100644 public/img/svg/gitea-microsoftonline.svg create mode 100644 public/img/svg/gitea-nextcloud.svg create mode 100644 public/img/svg/gitea-twitter.svg create mode 100644 public/img/svg/gitea-yandex.svg create mode 100644 web_src/svg/gitea-azuread.svg create mode 100644 web_src/svg/gitea-azureadv2.svg create mode 100644 web_src/svg/gitea-bitbucket.svg create mode 100644 web_src/svg/gitea-discord.svg create mode 100644 web_src/svg/gitea-dropbox.svg create mode 100644 web_src/svg/gitea-facebook.svg create mode 100644 web_src/svg/gitea-google.svg create mode 100644 web_src/svg/gitea-mastodon.svg create mode 100644 web_src/svg/gitea-microsoftonline.svg create mode 100644 web_src/svg/gitea-nextcloud.svg create mode 100644 web_src/svg/gitea-twitter.svg create mode 100644 web_src/svg/gitea-yandex.svg diff --git a/public/img/svg/gitea-azuread.svg b/public/img/svg/gitea-azuread.svg new file mode 100644 index 0000000000000..f7816eb71a9c4 --- /dev/null +++ b/public/img/svg/gitea-azuread.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-azureadv2.svg b/public/img/svg/gitea-azureadv2.svg new file mode 100644 index 0000000000000..8acd91212a153 --- /dev/null +++ b/public/img/svg/gitea-azureadv2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-bitbucket.svg b/public/img/svg/gitea-bitbucket.svg new file mode 100644 index 0000000000000..d3b15a9dc68ea --- /dev/null +++ b/public/img/svg/gitea-bitbucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-discord.svg b/public/img/svg/gitea-discord.svg new file mode 100644 index 0000000000000..ea64a39f6edde --- /dev/null +++ b/public/img/svg/gitea-discord.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-dropbox.svg b/public/img/svg/gitea-dropbox.svg new file mode 100644 index 0000000000000..e75e7cc8cf848 --- /dev/null +++ b/public/img/svg/gitea-dropbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-facebook.svg b/public/img/svg/gitea-facebook.svg new file mode 100644 index 0000000000000..0a5a39a2cbd41 --- /dev/null +++ b/public/img/svg/gitea-facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-google.svg b/public/img/svg/gitea-google.svg new file mode 100644 index 0000000000000..afba5f51480a7 --- /dev/null +++ b/public/img/svg/gitea-google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-mastodon.svg b/public/img/svg/gitea-mastodon.svg new file mode 100644 index 0000000000000..f21f1e1375c58 --- /dev/null +++ b/public/img/svg/gitea-mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-microsoftonline.svg b/public/img/svg/gitea-microsoftonline.svg new file mode 100644 index 0000000000000..72ef94eabb8bf --- /dev/null +++ b/public/img/svg/gitea-microsoftonline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-nextcloud.svg b/public/img/svg/gitea-nextcloud.svg new file mode 100644 index 0000000000000..900dfa630aafa --- /dev/null +++ b/public/img/svg/gitea-nextcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-twitter.svg b/public/img/svg/gitea-twitter.svg new file mode 100644 index 0000000000000..367fae828acb4 --- /dev/null +++ b/public/img/svg/gitea-twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/svg/gitea-yandex.svg b/public/img/svg/gitea-yandex.svg new file mode 100644 index 0000000000000..8c9de6ace7ec6 --- /dev/null +++ b/public/img/svg/gitea-yandex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index e14be2f412b2a..944afbe9121fe 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -56,20 +56,59 @@
- {{.locale.Tr "sign_in_with"}} + {{.locale.Tr "sign_in_with"}}
{{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} {{end}} From 7375a16ef3fa93e6986ded639d6fbfba32f7d770 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 31 May 2023 18:24:08 +0800 Subject: [PATCH 05/25] update interface --- services/auth/source/oauth2/providers.go | 1 + services/auth/source/oauth2/providers_base.go | 11 +++++++++++ services/auth/source/oauth2/providers_openid.go | 4 ++++ templates/user/auth/signin_inner.tmpl | 13 +++---------- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/services/auth/source/oauth2/providers.go b/services/auth/source/oauth2/providers.go index 7ba370855a964..a1f5df77fd898 100644 --- a/services/auth/source/oauth2/providers.go +++ b/services/auth/source/oauth2/providers.go @@ -20,6 +20,7 @@ type Provider interface { Name() string DisplayName() string Image() string + SvgName() string CustomURLSettings() *CustomURLSettings } diff --git a/services/auth/source/oauth2/providers_base.go b/services/auth/source/oauth2/providers_base.go index 61654d8eaa940..827b3be987958 100644 --- a/services/auth/source/oauth2/providers_base.go +++ b/services/auth/source/oauth2/providers_base.go @@ -24,6 +24,17 @@ func (b *BaseProvider) Image() string { return "/assets/img/auth/" + b.name + ".png" } +// Image returns svg name for this provider +func (b *BaseProvider) SvgName() string { + if b.name == "github" { + return "octicon-mark-github" + } + if b.name == "gplus" { + return "gitea-google" + } + return "gitea-" + b.name +} + // CustomURLSettings returns the custom url settings for this provider func (b *BaseProvider) CustomURLSettings() *CustomURLSettings { return nil diff --git a/services/auth/source/oauth2/providers_openid.go b/services/auth/source/oauth2/providers_openid.go index 2433cd3c7f10f..2afa5347a3678 100644 --- a/services/auth/source/oauth2/providers_openid.go +++ b/services/auth/source/oauth2/providers_openid.go @@ -29,6 +29,10 @@ func (o *OpenIDProvider) Image() string { return "/assets/img/auth/openid_connect.svg" } +func (b *OpenIDProvider) SvgName() string { + return "gitea-openid" +} + // CreateGothProvider creates a GothProvider from this Provider func (o *OpenIDProvider) CreateGothProvider(providerName, callbackURL string, source *Source) (goth.Provider, error) { scopes := setting.OAuth2Client.OpenIDConnectScopes diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index 1c53e1dc221b6..b7adb3c68cab4 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -61,18 +61,11 @@ {{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} From fd0f20fd91ef0d356e125ffc8c22bb9601e05a1b Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 31 May 2023 18:27:51 +0800 Subject: [PATCH 06/25] update --- services/auth/source/oauth2/providers_base.go | 2 +- templates/user/auth/signin_inner.tmpl | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/services/auth/source/oauth2/providers_base.go b/services/auth/source/oauth2/providers_base.go index 827b3be987958..ba54f78e454cb 100644 --- a/services/auth/source/oauth2/providers_base.go +++ b/services/auth/source/oauth2/providers_base.go @@ -24,7 +24,7 @@ func (b *BaseProvider) Image() string { return "/assets/img/auth/" + b.name + ".png" } -// Image returns svg name for this provider +// SvgName returns svg name for this provider func (b *BaseProvider) SvgName() string { if b.name == "github" { return "octicon-mark-github" diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index b7adb3c68cab4..11b10c2ef2ce6 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -61,13 +61,8 @@ {{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} {{end}}
From 732a8598d2b59e50469c88f80e80f97ef4946370 Mon Sep 17 00:00:00 2001 From: HesterG Date: Thu, 1 Jun 2023 09:36:56 +0800 Subject: [PATCH 07/25] updates --- public/img/svg/gitea-facebook.svg | 2 +- public/img/svg/gitea-twitter.svg | 2 +- templates/user/settings/security/accountlinks.tmpl | 2 +- web_src/css/form.css | 7 ++++++- web_src/svg/gitea-facebook.svg | 6 +++--- web_src/svg/gitea-twitter.svg | 2 +- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/public/img/svg/gitea-facebook.svg b/public/img/svg/gitea-facebook.svg index 0a5a39a2cbd41..8163e2a9665df 100644 --- a/public/img/svg/gitea-facebook.svg +++ b/public/img/svg/gitea-facebook.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-twitter.svg b/public/img/svg/gitea-twitter.svg index 367fae828acb4..096b9add2b174 100644 --- a/public/img/svg/gitea-twitter.svg +++ b/public/img/svg/gitea-twitter.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/templates/user/settings/security/accountlinks.tmpl b/templates/user/settings/security/accountlinks.tmpl index 29fbe6832cbd3..49cf217e4b4c2 100644 --- a/templates/user/settings/security/accountlinks.tmpl +++ b/templates/user/settings/security/accountlinks.tmpl @@ -8,7 +8,7 @@ {{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} - {{$provider.DisplayName}} + {{svg $provider.SvgName 20 "gt-mr-3"}} {{$provider.DisplayName}} {{end}} diff --git a/web_src/css/form.css b/web_src/css/form.css index 47d4681aaf73f..66eae06e011f0 100644 --- a/web_src/css/form.css +++ b/web_src/css/form.css @@ -172,7 +172,6 @@ textarea:focus, text-align: center; } - @media (min-width: 768px) { #create-page-form form { width: 800px !important; @@ -549,3 +548,9 @@ textarea:focus, width: 100% !important; } } + +/* semantic has background colors for .ui.facebook.button and .ui.facebook.twitter, +so fill of paths needs to be light to be seen */ +.ui.facebook.button > svg path, .ui.facebook.twitter > svg path { + fill: var(--color-white); +} diff --git a/web_src/svg/gitea-facebook.svg b/web_src/svg/gitea-facebook.svg index 629701077c565..afe106b5a9a80 100644 --- a/web_src/svg/gitea-facebook.svg +++ b/web_src/svg/gitea-facebook.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/web_src/svg/gitea-twitter.svg b/web_src/svg/gitea-twitter.svg index ad061c81fafcc..06e5762759e32 100644 --- a/web_src/svg/gitea-twitter.svg +++ b/web_src/svg/gitea-twitter.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 9026644d2fed9fb74e16276f423b08df3f9bc82a Mon Sep 17 00:00:00 2001 From: HesterG Date: Thu, 1 Jun 2023 09:38:13 +0800 Subject: [PATCH 08/25] comment --- web_src/css/form.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_src/css/form.css b/web_src/css/form.css index 66eae06e011f0..72527c2115463 100644 --- a/web_src/css/form.css +++ b/web_src/css/form.css @@ -549,7 +549,7 @@ textarea:focus, } } -/* semantic has background colors for .ui.facebook.button and .ui.facebook.twitter, +/* semantic has background theme colors for .ui.facebook.button and .ui.facebook.twitter, so fill of paths needs to be light to be seen */ .ui.facebook.button > svg path, .ui.facebook.twitter > svg path { fill: var(--color-white); From e8f88552d905a909b9b216e4508fb5f57dc1f790 Mon Sep 17 00:00:00 2001 From: HesterG Date: Thu, 1 Jun 2023 09:48:07 +0800 Subject: [PATCH 09/25] fix fill --- web_src/css/form.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web_src/css/form.css b/web_src/css/form.css index 72527c2115463..2d52f5ca298d9 100644 --- a/web_src/css/form.css +++ b/web_src/css/form.css @@ -549,8 +549,8 @@ textarea:focus, } } -/* semantic has background theme colors for .ui.facebook.button and .ui.facebook.twitter, +/* semantic has background theme colors for .ui.facebook.button and .ui.twitter.button, so fill of paths needs to be light to be seen */ -.ui.facebook.button > svg path, .ui.facebook.twitter > svg path { +.ui.facebook.button > svg path, .ui.twitter.button > svg path { fill: var(--color-white); } From 29abad1a85e61d9f3ed50130f044677df229ab81 Mon Sep 17 00:00:00 2001 From: HesterG Date: Thu, 1 Jun 2023 09:56:49 +0800 Subject: [PATCH 10/25] delete images --- public/img/auth/azuread.png | Bin 3099 -> 0 bytes public/img/auth/azureadv2.png | Bin 3099 -> 0 bytes public/img/auth/bitbucket.png | Bin 2161 -> 0 bytes public/img/auth/discord.png | Bin 1559 -> 0 bytes public/img/auth/dropbox.png | Bin 1424 -> 0 bytes public/img/auth/facebook.png | Bin 2088 -> 0 bytes public/img/auth/gitea.png | Bin 5576 -> 0 bytes public/img/auth/github.png | Bin 1151 -> 0 bytes public/img/auth/gitlab.png | Bin 3616 -> 0 bytes public/img/auth/google.png | Bin 1622 -> 0 bytes public/img/auth/mastodon.png | Bin 5112 -> 0 bytes public/img/auth/microsoftonline.png | Bin 792 -> 0 bytes public/img/auth/nextcloud.png | Bin 2918 -> 0 bytes public/img/auth/twitter.png | Bin 2709 -> 0 bytes public/img/auth/yandex.png | Bin 826 -> 0 bytes 15 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/img/auth/azuread.png delete mode 100644 public/img/auth/azureadv2.png delete mode 100644 public/img/auth/bitbucket.png delete mode 100644 public/img/auth/discord.png delete mode 100644 public/img/auth/dropbox.png delete mode 100644 public/img/auth/facebook.png delete mode 100644 public/img/auth/gitea.png delete mode 100644 public/img/auth/github.png delete mode 100644 public/img/auth/gitlab.png delete mode 100644 public/img/auth/google.png delete mode 100644 public/img/auth/mastodon.png delete mode 100644 public/img/auth/microsoftonline.png delete mode 100644 public/img/auth/nextcloud.png delete mode 100644 public/img/auth/twitter.png delete mode 100644 public/img/auth/yandex.png diff --git a/public/img/auth/azuread.png b/public/img/auth/azuread.png deleted file mode 100644 index 1adbf15e28a0da8e8001a97790da0ad234e2b48a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3099 zcmV+$4CM2PP)QW3UpbYT_V*|T~!`J0tf+A zpxSn+t*@oa+7??{d_k2$Z3XHB#DF{mA5eL!C^V3SBt{a5iWU_Fg^&PAW+pSq%$+;; zoZTOp2{)6O%w!(PkGlWNntjjX+uzw|pMCbd!1waK^qIVWj7)uvLF%iCcM+u=F{mes zYTKUeD-1v%5>RVH^*Ih}$!T@|`XlZ+eTAb>2v};Tork@+0sy=!v9eR@rj4JsUDp>_ zdYyn(E%ao$2h+5=7O&9NoE4>S9BCcc+jx4FfVEDVR^rA&5#m{$lUu&9(UHwxkg+#0 z^%?=|o%F*B58m+*ShzM{HS?U4PWMN>g$d{-0=C&Hz1EAGCJsZSw$%;3Q7_cE-|h`u zKraxmfJmwpIQ*>-{iE$uep;FR>L+c_BokLal1@OX1A9O7Vt7yb2m;DZsgJMy%snev zxB`+?0#-QaAC(@AkEO4y604|F-%R%Lm^1>`w$Pnr9y~^IjNy=luBJhhY(4JEO&G8s zNeTg*T4`jNj16);*8AnOlc!YIA!)~B!U@>iLYW8MD7SOy;u(hs5JV6}INGG<9(S}= zBnqQe5=y`VBI$^V+V51P#yW=9a3X++Kt!lIqg=b}VC!3n#0w;t0E->vN4&Twmc9h| zjlN)bI}sNM+4rq?&Pz3}g^9$RFaln-)AA}A*Y~s^!N1CaI<3A4;R&1*iccy}79Doo zo+#W2Az-zG9w?FVXpduF$4YlKJe()EeS#H#tGrcosO`szz#caN8=UmBG8rp;F+_X< zAVg@xI}su}dqT6D>#FMIvJIcce>}!T!0T<4SLMN8r-*$Vp$T-Mwm>*fIO$MR4xRPY z?%z-Pcx;Fn_GKnJicWXMZ>s4|zg};J5%N9C+`zd+`eg?YH(6Lyrj9 z;G!`HJXo$KAjc0#C&NYP1SnFV6hvrKi0%1CetTuL>#Cm2A2k6R95lS#jXkb7BED8E z3^0QrNjz-k*U1w?1jOL&bJofA`%ku2t*UWmM~fqDeNHR8h*Cdpg#j#UXJoZbs#Ws&fxPg_*5NKRRRwf2Thy+03yE*Aard50HX$(>V~A{3|}yg zsgZC+b%uUo!@-^!p8_CT0x}tp#oAXqoG=jdI)YvYSik`Qs-FUw!de{*9QfEyy=jOYQ&?6j@agBg(q>BrhvHb-hVIGW3QzyqQYl`|+lKvvobQT(ZA z$2LJ{asZ(4(v(e$Cgl7w685mN%0ct@xUqjPw; z1h)r}eL>p+fQ~WDzA|;*6JxWV3pY+!*y~#8mJi+7fGo8C##Qa`OFRSw ziy%Pu0&WFx%Ya)ZZ~{^d63xCc_11YeWp5AFFC+nLo9MEm0-x&%x=aS7u_&Wu4<(TV z1dAZR;|1Def>F|`V=gj|dTPv|Bf;%L9%=VvvoC+3!v{kdke(#tlPwYhQq4e48pF_Z z-8Xi_z~dp?g&W|3EH>3-z*slnNfyWi=2IbsaVWzF7;jrQZSZBwZeStpxUjfHY(@kA zDgoQJTG?T3qg6I~i>sJpOt33By&M%u*aDmbIYxa+(bOU1wEDu**10}ey=$~FZB!sf z=rCz|Jw3~S#{sAWtnf&fzh@9@3q0RwqaWD?%FKlHMDdUe0`y#J9iC|zzhrD)bwGD( zvFBo0Rd)NDl*@?-x@_a24=1Hx3-}3`d4_&X3~PeM`bIF^w=<9J*D6=rX}MR$Z%qjZ z4NjS(;&5UJ;2bn0)v)rVg24}K^;7n{o)OK;UsRdvv}v;;&%AkWe)=3%*g)eX!UqVQ zyAXgPVZdWMbC@fj+|fwZQw-H+f;Ao%5k9D_AOur~r5YYt zmT!F}pj)t?^arVRqpwk(O+I3QOO+4=9#l**WEzh%0GNJ;rZEYxfMAU<=N1k;w9Cqx z0*cK7v5rUdkp_O;%OHs2Pt#h20P z+AJ>IAh{sGC<#lh`Cp}zGyc%w!MA)z83qHE0JuNG{O5_`k2~_%2CZ^~o$j`)C`yg; zf(67zfW(<+M1M>E-zVmF)B>l~Pzrar{_Q*Gog65bXbsj9Vazg~Na=5yv^PKP7!V?m z&1j&>Aglr~v^yXKyr&a*aO)7(;lrDWbWJu?NCKmyVWB4kaKXrGF}%KFlC{%zom$p* zpVH)gQMgr8z}-8H_WyE0U>3d4G|>FSf&BDN_kxfyY?h7Ed@`N`a9_AKerW;lr|o$t z0%IL{&3Xsj-lAet3Uz-ejEVpv7@4l=;#AY^tTigPw00pc=&FE`1E?ZkpXJ}T+%&C9AEE>h+5RL#MV1Ul>RYsQe8f^+Y zxy*G1Tzr>eQ$`Si%48iYPY?{S#|42JnYx1YTE7{gMz6;JQJgn0wXjV`*vp`g?( zkPUPufO8<*s4rO^l)q0Yb={=4s9Sl9FRRP3rXhiJj4ZjP?fQOMvrD3=1;#``KxWp_ z)qZb?^oI6xl5p>iLF{9#a!oTm?-BUDS5{f&;WN;2sddBv!}ui=F68fHPmzW}h>pvT-T zxvXP9?r0?IS5EJ~x?}eDUYL|OSKA@K%ym08E9-cxnks^V+XWH;rk8{<&$PO7O4b9h z+7b7KW?BPXsUy4w;3pB9o+QHkI|j4=glkYx*^NGfj2<^2|3E z-#FmwaN|WI3Ax!WAd)_5z`X#L0^NQeL;yA#IDWTfD6?rF6qLFi7Uz|vsz)^jr?1)w zFPU|!WuW<~1CuisCjxsyOB}bIqY+$15m@&hM-p&W0v_IGWm~5ddoEUe-W_VA_v+wP z*1EkQz?5S?nwn-A7b>BNRT5wBBVsep;vpg|2D<+~m|E51wpzzH?iEsSa1)x8R-dAi zO?j4w$|q*5O*Gu3)jJDMkyU5FN+J}7Yopo~xN7X0;D$~l5CBuIsmiQkV#)086Pj2h z=>^}J4K#}gE7AT+p_BM*3LFP*AtF4%(BJ4XQW3UpbYT_V*|T~!`J0tf+A zpxSn+t*@oa+7??{d_k2$Z3XHB#DF{mA5eL!C^V3SBt{a5iWU_Fg^&PAW+pSq%$+;; zoZTOp2{)6O%w!(PkGlWNntjjX+uzw|pMCbd!1waK^qIVWj7)uvLF%iCcM+u=F{mes zYTKUeD-1v%5>RVH^*Ih}$!T@|`XlZ+eTAb>2v};Tork@+0sy=!v9eR@rj4JsUDp>_ zdYyn(E%ao$2h+5=7O&9NoE4>S9BCcc+jx4FfVEDVR^rA&5#m{$lUu&9(UHwxkg+#0 z^%?=|o%F*B58m+*ShzM{HS?U4PWMN>g$d{-0=C&Hz1EAGCJsZSw$%;3Q7_cE-|h`u zKraxmfJmwpIQ*>-{iE$uep;FR>L+c_BokLal1@OX1A9O7Vt7yb2m;DZsgJMy%snev zxB`+?0#-QaAC(@AkEO4y604|F-%R%Lm^1>`w$Pnr9y~^IjNy=luBJhhY(4JEO&G8s zNeTg*T4`jNj16);*8AnOlc!YIA!)~B!U@>iLYW8MD7SOy;u(hs5JV6}INGG<9(S}= zBnqQe5=y`VBI$^V+V51P#yW=9a3X++Kt!lIqg=b}VC!3n#0w;t0E->vN4&Twmc9h| zjlN)bI}sNM+4rq?&Pz3}g^9$RFaln-)AA}A*Y~s^!N1CaI<3A4;R&1*iccy}79Doo zo+#W2Az-zG9w?FVXpduF$4YlKJe()EeS#H#tGrcosO`szz#caN8=UmBG8rp;F+_X< zAVg@xI}su}dqT6D>#FMIvJIcce>}!T!0T<4SLMN8r-*$Vp$T-Mwm>*fIO$MR4xRPY z?%z-Pcx;Fn_GKnJicWXMZ>s4|zg};J5%N9C+`zd+`eg?YH(6Lyrj9 z;G!`HJXo$KAjc0#C&NYP1SnFV6hvrKi0%1CetTuL>#Cm2A2k6R95lS#jXkb7BED8E z3^0QrNjz-k*U1w?1jOL&bJofA`%ku2t*UWmM~fqDeNHR8h*Cdpg#j#UXJoZbs#Ws&fxPg_*5NKRRRwf2Thy+03yE*Aard50HX$(>V~A{3|}yg zsgZC+b%uUo!@-^!p8_CT0x}tp#oAXqoG=jdI)YvYSik`Qs-FUw!de{*9QfEyy=jOYQ&?6j@agBg(q>BrhvHb-hVIGW3QzyqQYl`|+lKvvobQT(ZA z$2LJ{asZ(4(v(e$Cgl7w685mN%0ct@xUqjPw; z1h)r}eL>p+fQ~WDzA|;*6JxWV3pY+!*y~#8mJi+7fGo8C##Qa`OFRSw ziy%Pu0&WFx%Ya)ZZ~{^d63xCc_11YeWp5AFFC+nLo9MEm0-x&%x=aS7u_&Wu4<(TV z1dAZR;|1Def>F|`V=gj|dTPv|Bf;%L9%=VvvoC+3!v{kdke(#tlPwYhQq4e48pF_Z z-8Xi_z~dp?g&W|3EH>3-z*slnNfyWi=2IbsaVWzF7;jrQZSZBwZeStpxUjfHY(@kA zDgoQJTG?T3qg6I~i>sJpOt33By&M%u*aDmbIYxa+(bOU1wEDu**10}ey=$~FZB!sf z=rCz|Jw3~S#{sAWtnf&fzh@9@3q0RwqaWD?%FKlHMDdUe0`y#J9iC|zzhrD)bwGD( zvFBo0Rd)NDl*@?-x@_a24=1Hx3-}3`d4_&X3~PeM`bIF^w=<9J*D6=rX}MR$Z%qjZ z4NjS(;&5UJ;2bn0)v)rVg24}K^;7n{o)OK;UsRdvv}v;;&%AkWe)=3%*g)eX!UqVQ zyAXgPVZdWMbC@fj+|fwZQw-H+f;Ao%5k9D_AOur~r5YYt zmT!F}pj)t?^arVRqpwk(O+I3QOO+4=9#l**WEzh%0GNJ;rZEYxfMAU<=N1k;w9Cqx z0*cK7v5rUdkp_O;%OHs2Pt#h20P z+AJ>IAh{sGC<#lh`Cp}zGyc%w!MA)z83qHE0JuNG{O5_`k2~_%2CZ^~o$j`)C`yg; zf(67zfW(<+M1M>E-zVmF)B>l~Pzrar{_Q*Gog65bXbsj9Vazg~Na=5yv^PKP7!V?m z&1j&>Aglr~v^yXKyr&a*aO)7(;lrDWbWJu?NCKmyVWB4kaKXrGF}%KFlC{%zom$p* zpVH)gQMgr8z}-8H_WyE0U>3d4G|>FSf&BDN_kxfyY?h7Ed@`N`a9_AKerW;lr|o$t z0%IL{&3Xsj-lAet3Uz-ejEVpv7@4l=;#AY^tTigPw00pc=&FE`1E?ZkpXJ}T+%&C9AEE>h+5RL#MV1Ul>RYsQe8f^+Y zxy*G1Tzr>eQ$`Si%48iYPY?{S#|42JnYx1YTE7{gMz6;JQJgn0wXjV`*vp`g?( zkPUPufO8<*s4rO^l)q0Yb={=4s9Sl9FRRP3rXhiJj4ZjP?fQOMvrD3=1;#``KxWp_ z)qZb?^oI6xl5p>iLF{9#a!oTm?-BUDS5{f&;WN;2sddBv!}ui=F68fHPmzW}h>pvT-T zxvXP9?r0?IS5EJ~x?}eDUYL|OSKA@K%ym08E9-cxnks^V+XWH;rk8{<&$PO7O4b9h z+7b7KW?BPXsUy4w;3pB9o+QHkI|j4=glkYx*^NGfj2<^2|3E z-#FmwaN|WI3Ax!WAd)_5z`X#L0^NQeL;yA#IDWTfD6?rF6qLFi7Uz|vsz)^jr?1)w zFPU|!WuW<~1CuisCjxsyOB}bIqY+$15m@&hM-p&W0v_IGWm~5ddoEUe-W_VA_v+wP z*1EkQz?5S?nwn-A7b>BNRT5wBBVsep;vpg|2D<+~m|E51wpzzH?iEsSa1)x8R-dAi zO?j4w$|q*5O*Gu3)jJDMkyU5FN+J}7Yopo~xN7X0;D$~l5CBuIsmiQkV#)086Pj2h z=>^}J4K#}gE7AT+p_BM*3LFP*AtF4%(BJ4Xhr3xp!((jX#X5=Mhs^zX=z z4w#4IcmesHJjZd&MF-@^Z&1U~K05$CPcyaf-%uHoZ~@YX1;dBwVJS=x!-oaw<2=Tp zJbn!cA|!z94Ri=N>nYF==Y3jLEzpMiMr;@n?s*n{kQBlZm$$hNp%Utbbk%z4a5~@z zPV9#J%IKP~Uu(HcE41XHjQdvF!+AQcu&*vhj> z*Bx|@@8tBgbO^xZU6E31a7I220c`bLD6IX?VJcdnI8xweh_67yZ^(!W=!6Bhu5^YP zi~;G|#Neicn7jUf2Jun+0)^|)82uy!aFzhv!j+4|vuy@SgcPeIPKB5vP7(GI`wNw^ z6f)pB4M>VV#ULki0&r^;4rcvLFr97mf^O2WiF_8>V0T<@v@2?d-)0h!m>oiaSgg~I1r&p}s40mlO7 zDgr=C0b8j6A7oIH$*{NdxSnn3h|keR_a3kb1*EPXuowmCjY3ljJ-rVFEad6|F$GKx z0e^8I#J~nMB?m&kBl(G3H6WsZHUzv+0mTpyP*A{INWN)@{3^iC1@57MdfNTf|$SB}s3P@c7QVQ5sd%z$pg4zSNa0$>Juw)O5U{2hhhcAMQQb6Jo z5L3XU5b&36AW$*VgnuEqjsrp_4}M4T6LhTsrU-T*;B5)KGLqmuoJ!9ICLpu%v-?F@ zDCw^w`IcJ%!D}$$lGr^GeBB`40n36$7ghxC*OZ{*@94fHMv#0;0jHQMS~vM8!PqiQ zZhj zgghs0`X>J)7?%Q~ZUSr(?BJp|SI}gLy~mPr&0;ls;f>rGO1ke15hR~dz|j>1l;#(nQIa_r zlnwy}*j=uf$$Y=8AmFen0ul|? zS>J%MC?N6?5K%x1UXez90(hT$^|2Aq2B*q_ieJF-ykBe>0eoEJ{x5*oPXNJdFaZs& z$@|m+4PsB}(hV~nSPiTSCN-biM`nNDj;S09Y+Np8M9UA z1plxoj;HrBj1P_h|5iy}Vtfyb2qNMqfW&6|`M0_f$hUkpcL1w^mHFRSfbX>TcwisX zU%`BmgP#DEzy{xSZ%TS@rV2IM&E$a8JQ90#0rCuu3eI2`)$>E8j|iei1VrX|%01vJS>SB* zJ9?IQI#&6;z**onE{43pWIh95lh63s8{lbv_Y7XU3fme^;{t8-i;u@q>z!aki9N_$ zV0!b5d=9o|01eV2-HK0#0geX7B%|@OPS;}0`$&7+$?=(~B=-6}fWN@|@=QJtHss%= zOA>Q-(6iPgAeFYXmu(DQkec&0r3C2#D&byJgbF#SeJGek6D4}=%?-c*KVoJDhublU zydCb8nClBLmH#9e4HhDz;4^$A$MfR^I2<`HSc+{vqxT~=reh@LpaY?eb!bZpeO;07 z81$u_nQg*kcvKD$ezr6>F%IN4&w(Et>xU8pm%tcvF9gil?L?->vA4|P`mV=lu>iA3 z0SsCLMgw1)WPOIcZZVpu-|)CFZ>N!i*8mdH>XW7$_WKDDiRBTU{)P~sh45Sz(2uBq z)AjieB0w75b^r_5vM&TI;HUxpMM>uAg#aytBZ5z5fuldk%{heOdsYMF)v}2WMEU_8 z4{V^nesBRIVSjn2_oWD34cb>?>#2aq+-Obkp}xn1%5b;+K3GkX@3{aiilcMr`k^~$ z?}bj6%n$ghk1DbBsQ|t4NMH?ch1o|429v&&zxaq6L%#^nLrsQJz#?4HxfZ+xzV}!b n|DN;wYuLuZ6s+>2y7B)9_XxB^N(C3^00000NkvXXu0mjf9sA{< diff --git a/public/img/auth/discord.png b/public/img/auth/discord.png deleted file mode 100644 index db0e70d5d42d5a4e9df0db6491f647b3f33bea76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1559 zcmb7Edo&XY9G)H&d0dp;v2w8MeVH|3lGiqpVP>mYPyKh#`F_9ecYf!5|9t0sUz$G#t*#1E1pol* z-d>(q1+OYbx^1&!FO>{S6a@1>ghMKrnl}Ew5KRfpQ^>TUv6w)BYl7CprQ*R*+bP4d z{&iWJtIY@iU~7`MryGu;wD|n@yeeDG-!&?T(Y5fuTrQ(iMeiG5Xp|7A#B%9-@XptnMd3^YRW!BRa-Md=M|NLpK{9eS{qY# z#+lk91@5qxyHYr42->07qd8BIROvpgNvj)4AUg^$YEEz|%VJ*CO|U5SgN2xu)j-5u|JfpgU@0am_iI zdX8qG;>=E*)BI$sROL*@AH`G2&ih_@2nik7S{_|F%j~gU;kxx;yspl4m86!d(c#p4 zG0^d34V2LXY?TkM+rG4%tu3Q}>NUWpHI5`OJHiNIwzOtX8Z@3g2Q7s+b{^pBUz0;b z3cq!qslOK{pZgLAR>o@fV1Fu{ZCk0UFc ze(I|Br?qji^DFL-@(lxhNBLG*@SP}3$$048byr&3yO@|a-?i#VDpVH8yME=Ib49Y9 zrV~)7!rPV9+eI)9^CwtSgJCltUxzZc8%&`a()-QjB%(=$iUDp{S*C-P4VrT9uv_N% z%RASB{H~Pbup0Q~a3QfkIX1PEcM=C1oETp64U3x%jSaZM^n|F&`yLv9KjrK+VT3H2 z=-TF^Zh5-8!PNW>mvV+x)V#3GJ9V6L6ULEZ$C^y7>_qgDhd>Y=#gPgOJ@!+G+v9rs z^p^zz$!zJ}r?%NE!dzjh|9S?3FhOl%9W)YYES+}b)(88|lx*QY=h3ahlRoxqi%x0M zgzME?_+t$F`%Q-aJzoBiU}YP){7d4&BMB|HhDRH2uLPsny0_^1n(U*!nEj=A#}KeR zM~|JHKB*y|{1l!}#DRXe{@j5mr3#!VAj*Dh$ECNInQO89Hs!m5#~62Lgdvq5IeO%Xkx5BIYTG(SrV_cTr4=Y(nr#cn`J$2PFYMk5ZoWN zdV%Z$jL5`Rb2?EjNBetIblMxjB2IxBCBJ-D&y5lnO1TRRmi}I(<;@3>vGX4t;DxTA zW8^0Lo-GrBQf@YjXBlxQGyYZHkQUh(mfSrkw$sfw^C$m)87EeE*L3Kr=4MZ=ee%V)+ep>WE;)lU~aV+DuNAs{_e5mfpn5 zC~ipg1GEo?cbMt{LY)t*cg^9~_E?fNoWHp`$mHi;7dYDbssI20 diff --git a/public/img/auth/dropbox.png b/public/img/auth/dropbox.png deleted file mode 100644 index c2f4c90974a6c4411ea133e0a5cc5b188cce9f4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1424 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 U66G;JUimMkAPbYJk}?YXAHg=jtpET3 diff --git a/public/img/auth/github.png b/public/img/auth/github.png deleted file mode 100644 index 1fa19c55d2f71505edf0f4d70840e817e7861c06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151 zcmV-_1c3XAP)aRaZbWef~;-qbQN~T3m5@KGy*SRcU1Y@_%gT?qoIV1 z#+_K&r^Z*p_=X zkV~rhX7~W|+y`hDck^w~4$6pjXcK4iU7?KWf;Lf`Z;tj*Mzu%tC~tV5KpFQ5a$y3v z3i_Y8%G&()sD>)o4V&Xsyo>oz!sg>$oQln{8&p9xws&p52?j$IbSrY-#c&;_K{1<- z>#$gnal1hk3`P@|0B(UCJXEH}Vt4|z5QNG24X@!|T!~8nPIDPv!*7@j0o0%t7ArH} z!;phpDmA|b7C;V8bNtGD5>^fI9<(Y>!j=xVJq>cO0Be*h^gQHfKaXal`$3MLFI8j} zEP@;z>`?%RK#mq+m10F6feg;@D1b8{gGY+Z?I%J8&v+ETGmybVG|De<5Mhug4BpHyFaa{S*~3NIn;?S;|J-qX$Y3m*dKf@cjDZZ+4>&jn zGPuFxrTH5mgL4879)%3n^f-XEAcIE(4!(gLjSf8Dj4y+40uBa2j(*HQ06#*G1_c~U zh8(?>fdJly98C$FXMezJ83^Dt$kBqpy1tfy06v9W83M@6d%#cD0OmoChGZasA&{ea zfpHdCjb`NuhCv2* zgk20d&cgtX3$-Z1!7`B1P&D_b`Q{h~87&iKN$Dkz0(dFXlAis20KiQiG=B>e!X5cV z)`LQN0Zr@aGyerBr1c65c7Q?}goBYw>5p26V+a&dhhl|Kfr|JUJL6EiP+|7i3zuTG zgjRd5LO&>?Q;H4H5Tl?1qp?BW?bdPJiQ#w+SK$yeF*Mr>N8={EgE3G{MxkM;fzO4C zn2VG1ZnrcBLylfY&iFKc1xmoVkv=*)|djts1F)e8hB5r zgarjJhg+RiUQL_*j}HcWx(@t2RKhm}Pt|*%G7gLo!2VE7p0^C#vckvACIz?O7H?uO zW?(2j!YODHA%HcY7z{y6>);z<4phYZDSg>l42ozDHVV4~N0fP^J3Ipc)Z&P!J8=$F z#5^47c>w3cwIi26C47kOkn=2nOXA*{lPfGZPR6hJ3}2uFW?-?D1E|KyNj)WZ#YD&; z%>X81*QDQ=R>ZF!2JkCZOlvNl!-bgRK>%}bF>>{>8nXgkK^;`WauMn;4V6%bSFwT* zYjPXlbu5AkEFGclQc!_vyp9cg{9$4RT!#S=-ie{+I}iroI{ZE=#`q{01pu+n%tOqP Rd2;{&002ovPDHLkV1i^k^r8R& diff --git a/public/img/auth/gitlab.png b/public/img/auth/gitlab.png deleted file mode 100644 index ca30b45901932973038fa3cadf7f715292562962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3616 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 diff --git a/public/img/auth/mastodon.png b/public/img/auth/mastodon.png deleted file mode 100644 index 67254aad4ca49849a9004724d78030cd2fbcb5ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5112 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 Q{`gcyqV(DCY@`?%n5KHV zIEG|2zMbuxEgUG)Hs5%rl9I+Nw=U7njoiD>T$;NsMkCKDx4R?Yll7~7!9S;rB6o2- zIwYTvrkJP^s=kX$scFke8S%OaSC;r$efKMRYIpmL?ekir>62aGiHb3-oq9fCQt1V& zRq26I3cg>SXlIsu`+P+#Sh2tP+PV2CvfEV!l@ zzd*#s;U=4wv5qWLzQ8Px3zL@L^_%9}%JGViG4LmwQt5@=2PQSHDx9`9Cp5tPbhzhD zr%H~PO*gV$g_-HC*si5+VY`Pph&}Jti;w)rwr^UwYFA)n@{D`x7ji?+&0aNodQ8*f z$8%S$3{bP2meBTbpFxV)8N++ePfctpJ665XM?|M!PxSNt2QtU1%hf=)xXpr@$21nZzjy*NC_=i zbFt*6=bPp_hL?>hD~{QhJKl0`X4#_M`@?&hLn~*W>0IA3sr!z?6C_OB>S`rd9&1VT z*|bOf?Y9KIro}JZQh9x|HB2AOI;g|EfPIa`nwg)EtepD9G& z+1hmY#^l(BZpC`nQ|h~SgjcIg47|4YbmU}FOxt+Z->pw$ch3DI~ TEmG%!shGjj)z4*}Q$iB}$Ddk1 diff --git a/public/img/auth/nextcloud.png b/public/img/auth/nextcloud.png deleted file mode 100644 index 635806813a61c2eed5e7c91b3e547ce5107aabb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2918 zcma);_dnE+1IOQY?#?)unRS#=gtPa|%;uC)S$Bj_pUynoSvmV`NsMSukW0EC&T(bdx={Z~w|Q}5Qr4gmmM z#>`0HjtKhh%s@n0a20yb9sA5tedbh4?wp2J>q{RG4+*uu2g8Ik%jr^YuUFUB4o5y& zc{OfW5-R2>@xQ){`pv_ z>z-JI7Mh6;QHn{T`IGHlB&Bh0;aa?s$=XF}pLk(wF1E{XU9l4rIb@&OW^1)OnNt+m zOAsW;e&FwT}R9Baq+@EoE(=mWd1C+_Gn$6r4$4|)z#n1oV|^OKI{ zXV)XAEjy|56`UOA=_HIIXt%^t?dpJB6d(>K4S+HKt2W)Sj3JI@;kN$z7>jOPf0oNr zes(8o!*ay3{Orp&RXsKYo|KI0ehxNkQ+H5m&`06@J>whhy8}}9uD+Lq!5HJEeo5>I zwDzWAYUt~O&H;GmOsM=-;$oB0)QAbTQZ{^%!PdS(UN`<5(isbLQauQX4RhhuX zR5qq0|Bo+khLyP&D2}V+^%K49#yytCv2i8gyN!)@^L#_#U)g_Bt(0TcU--8?b$RU{ zCIzR#+k?FFnn%Oa5=QQBeSG!-1*q-+xOhW!Vp6UP+NP*V?|W{*LqZzKE>39)cOgub zI$9gZP!erDddqBO%Ju-iHvM*py+#MJ7A_n!T0QXoxD9JDv-^AoLu3ZdGsS0Zl~wg_ z)v4kyzvd=h!waxU#6?(0)4TBFbZyU!yF3b^~@{I2(PMC#2 z&Yaf}1+w)s20UFQC`D1XBabsj<4rYJ>&$zx`+Xfahgr&>eiL!=q}AJq7#8*2*dctv z(L#|^z8{OFM0yT2N#faydX}XIyb{xp&H{RU#O3FQe0*Mi2b*8*52*zLl{@*z-8^=s zZ>_b58pn}M;G#(mJ9D=-FW(j(&=PNRCf>~n;^&$v2}`o2vr#o3Cb#+BR@Hz<`_~@n zoMep<1b%&}TDwH1No^U;ZKg=o^^W9T?nbx{tYqIGKz7zyOmeT*EppI-@D*PL=y!opdX9W zscwj}k-cA0XIheMQ*!V{Ux_6cake-&cBV&qg0Sb|YTyEdZ2R(gyoiuK4k({5Xgy3D zHd7!tj?asgmw#L5s$_BqCOVjy)Y?>-p>0tf)CH4g?RP%;-VB~^^HkJ3mwz>l&IMcxi4nSG#h1s8SJAV}Eji0pO zJ;U7?wqV^0FK)=EQ{x|%o@1s$j4|O<5>J3xmOA|ub9fc%WLE$ z1(vb>{YUHk-rhUr*?*VH2Sa55<&+@6Z%am%t=KZN9Swj3?tsc27LOxjYbg3YZBR(H z>*?J~LV64F#}QX&&n(`A1NR!zz91z1_0Ls-unKA6Cv+p9L~CElK0iBLlBcv9TAWvj zE$$vkjBK`K3<-29K?pAmJsTY>`dH)qBK*u4>%@MIY=s^I0@Ct4=HySgspgLjY^%W6t%l;BVY)a9GW$vk2oD!eiuuY|-A7h7mhyV+hD@YB0 z=?x2!p(sCR!|eD)o&w@Al4a{x4`*ILeNwUUdT=;U&67J&rd?E!^{?=TaI#*7!|Am8 zoiTBCk^MnST2UdA)!5$*l&9#caq@dd(Nt`OZ=E*!*FXHFKe9n6lK5mD3|wxPnx3q| zL^`b3b!Jx|$PNxh*9_fW6H~wDlMCv9C#NNzU??sNYVX$D_%#Aux|EA#vI};;$MAlU zPmms@c#b6Y4*CqU@+hyW4mFQjfyw8Tt=?i!7CIvfQGXI%)15|+2pG%Kgl8}m&laBa ze7<$>`ho}(Z7#!iS;bE=cBv2?@mp=OQgrnn?rrP0dP3p-8`EpHxlc2am&pxOQ4XrX z<})J<8Q(t%Ni+y%2!7;e;ieI&$;XHcdP^;l-#TpbG`F73nZB?ItgSCL&x8!|Ror)x zz&fD6X0bxZWH)7Cjw{l9=!zC^FHX!y=Fmob$(`R6%R%Jca-tSSU2Y) zIqGLsktpiiY%d`G^(y(pxHu(E2s6$oy^E0j$PN|}?&`s5vxw$coBU=0UEB-HACebT z+$`r~w07`Rewvsb$vLU5+<+#~HlCN%r~JJAO{+^){S%v0@C`CZHSzm01HJ2;R*XM0 zLqS}>5R4XZK{*FKI1%E;PED0({2?Am0R1<0sZ3yp(Y4eFboTIinyI?{r0(!Ta~UWDZ|ZEQo0Kd93LIr%)HR za7zD>rm}Wb_OwFUil$t^8n~*=miV|I{|@SzdtRH zLtC*%Nyya>yE=u4H|8FH5As>L6gru4>_rNi@>5NurX{8JN=Es^)TV2r{0~LMDKs@0 zW<;U3Yn^7e9i?0sAo^IuBWPQ!PlZG1#6=Yyr=&^u@i6Uy@zgyL&3?JHgRmI3cx`;V ztb?PFKk17}eRD8m<{JNzb(xZp#-lKQ=O7zWeo>r4PE#A_FYvD22nmpt$GID(t0xST zY~Y!ydS=cj0p`sI_U+AA>{hxHd<&}h(&0lNL9f88F7Hj!84wqOvfMwNBt2Gy!6~1c p>I~$upV)DCPa&2hXIV5u+o??M(2c&|cXG&$eybMmy=fpRH@#m?Zsd8|~!%e`$8#YF0aJ=gzFxuJtQ2 z$w~G;TLbyFy&g*}#w|UV`Tom0%xao#_>&uOVgZFsBjkIl^LLqo|IW-D|L(%U3r{)arm5$@(brCiZaVn;3vVWzkvpYyOW_=E zkQVxDQFLSBri&MT?Ub7e2VI5m2@>$H5^!Jtq8-t|lHF1N!tGJ+q;&`%^~~KA^)KET zAMc&FnPb;whf1Fr^nyEx_}Sm)U3K%p-$yq~%azHOo*^avAeS#aP&lVI6BfY) z=fg{eZy_9-6RzFRYr;Xd7kpF?xMy(LUJ1Gp;VPLS|Ada8(DxBhI|lsjlX3S*}@r+S-$l)U0(PywecG%k@MyY2k{%464K7~XlIWa{j6|+Sqj%iYVCIy{9pDh z*cSE9--3|GL|H_m;>AiiE-Hgd_e64;y_sV8w%9F(f>&pT!f$50;4H~?_2h!*_->;LZHx9dmgElFl?%opQX9G)iMcHDhDm=dKA>=sV+}Jw& z)PwF5L^fg$(_7Db|W48jHtO>&CGk}Uwb=UbZ*~*tx@)*wNZB=sALPldxQfs z(-vZirRU#^FK4ShemoIq;&=f)e8Pn7nG?HE8AaeyYPayUuYK*t!WlIM

pr^6n(4 z97#S$)ZqJs10tz&?nbT!FN?}up8rri*k(+h9-O4`DQgJJv;|o&G?)6baM1hbYj2k; zmfo2y20hjbQb6gIx;TlnVFgX1L9~e<2?v7KgCSBXX4M%R591V zod}-t_uostCw6=Onxa-hseqj6i`hxEO`dJLFPYaQXlQMQTR&YVh7aY?-33xj@6~X>`-{lfJ#iu!_6Wr3Zl`z z`CG}W7b!S?(Bgw(R>6&|*TK?h?ysd=s?9ak3eN7=df}_7FuXcf44)?)nD9_vj1+?J zCJ%ICtO#qp*1u?H)Ek>uaE*R{FLP4q8Ic4Q&H!#o?<2TyvXtBE{L{E!D*d&J5n@1G z{CMFPMO^Zyi#pzFLFqk(;Awi8{kXwcQQ2Yx4^QCaMtwpSae$uHnBq&Z*5{V)C|o0S z?R>dYa<8D}3J^&K3%}f~qU9}Z1;62;k^u->98VcqF^eGB5ZHR<9=i4@=0^&ZlDuPZVb< zt!K`Lh|(JC;6cd4>U9P=JEZ9ArJ!v|?caK^&ZG*o`oB>D7r&*oq6S_njwR+@;akY`S0{n* z7(%D!;bsfgVHFf$^8nCr^vXe-C1FAmv!Ma7h(6nTp8(6~j~GCiE}Bm8@>Z(^d-Ln> z&5)PkgnT_)6@d9CGg?|lxbEq~4PF@COt>_)FBS~5oDp8+(|1 zY3xf~ovcye-*y@ zKiXtX)9I@BEE&GNCM@%45@Gp=7m5T>U;iu&m7iBFLFp)X4il33{#I65n5nJ$BQ}+!HxEq~dw*;TNT)<5N7Udhl)#vP%8JjKrvRJ%VUji+ z5aa88XmZf3fGM(1B(uNt{xQsc2Btonyjg7le7q~#P5)qvnFkh&>Ikrg&My4a^B`I&8)%%m(&^77ZT#(CO z^T4j5;4P{WKO}z1;%eI`P;DO&7MJ(mBwT9!aY9V^0$bm+icuu%eEuJa2eJyQ%39s) zkO&`^Rgu0+@JzLoJsHM(qAe;_Y>sEl-4wd!V-1I`>u)wJb592-&MZCuw zesrc7e2m2t+lq$Cw{-S6wctvTlSKP9>?jkK=fO=C_pbk3ch>|5lnoDi=xNN4ypOrtexXcDdt9hpTaQ4&6kF^F&*p=d2nUwuTS@$uV`D_Y{|8$C z&>2zmfi*|*YuhjdWpSM7+lDcG*)~~F()KOf7H?_MvwVocOE`MmD!o=y_ak>w>5-g0Q%{L9FA zYac`pFuat&hcQXqAhlL#>;FbgF}MfHYVh|6m%_SmDTdiPzMVb1a=o`R^(GuxMiQ=_ z)V{Dhmi95UUoCt6PqN3Jl~$X0;2#z+S#mSKiPnq@Y!d{^LQpA>bNRFw!cOih`G<&% z=jU?&4jv|)L5J9LOb6)$Ru?ohJC@GK!+QAlv&UD0oXqO0eqXN7jZ)H~WLwP+ajpJ- zfzDeYq5r1eUtSF9J6{O z6P<5_?_;0*4$#@>iQXEM?|Gv>z9&z)oGv6wc|!#tGq&ultn9C|Lf@}oQo4ZQ#@ya0 zL_Pg~fXV0$`X@~1jbSn~37dCOpbwX8zvCKulRV{CtpXnHBKg0s>tH2%6Yp46H;($? zIhmPGP&J(1`tluRAa{HvgWx#0lkz`a2bkl_vP2!G_vd^>Cn${1MdynV3G-402G7Mz z-ceOSs2PjW0cyq~I{UmtnaCY?tHw4Q=XbEo)8z`|*qJiXaICGf#b5WsL>-X-ccQ!@ z|IWr#l#B_y@q<(UPD#?q>+u=JL7zkZC~uyA)f<$sjZ-_ioaT;wC>i?vuCK3t1|~qCF0T`3it2#*nVx3B zJD!vqqY7&<9$tZo!$pb+-2KgVg}sRkK*Ejfov*O4EkekrfBQsO0c{_ zc{Cdh<1D=-vOS{_?)AJeFe=My#C%lLWoD7^9HWsrHjUEqDvamFq?QkxhdD=EI`56r z^2&^@LPx}NG(b4odSh6WmRIlw3djFqGW-f4b8M?DuW-Pk*~wEb&`ToAdE*gnc|}0A z!h-tJl-s?dsx7a0y#3cy5ISdhMeuHqw!9+Zm-(4IWVIa%Sc%vOmbvb Date: Thu, 1 Jun 2023 10:04:59 +0800 Subject: [PATCH 11/25] fix lint --- services/auth/source/oauth2/providers_openid.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/auth/source/oauth2/providers_openid.go b/services/auth/source/oauth2/providers_openid.go index 2afa5347a3678..c2b6de510beaf 100644 --- a/services/auth/source/oauth2/providers_openid.go +++ b/services/auth/source/oauth2/providers_openid.go @@ -29,7 +29,7 @@ func (o *OpenIDProvider) Image() string { return "/assets/img/auth/openid_connect.svg" } -func (b *OpenIDProvider) SvgName() string { +func (o *OpenIDProvider) SvgName() string { return "gitea-openid" } From 8588001c8302b812160dfc2936a089cf09a8c9c1 Mon Sep 17 00:00:00 2001 From: HesterG Date: Thu, 1 Jun 2023 15:16:14 +0800 Subject: [PATCH 12/25] adjust styles --- options/locale/locale_en-US.ini | 2 +- templates/user/auth/signin_inner.tmpl | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index bf6e4b75247f3..6c1840074b20a 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -4,7 +4,7 @@ explore = Explore help = Help logo = Logo sign_in = Sign In -sign_in_with = Sign In With +sign_in_or = Or sign_out = Sign Out sign_up = Register link_account = Link Account diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index 11b10c2ef2ce6..51dac4abe439d 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -53,11 +53,12 @@ {{end}} {{if and .OrderedOAuth2Names .OAuth2Providers}} -


- {{.locale.Tr "sign_in_with"}} -
+
+ {{.locale.Tr "sign_in_or"}} +
+
{{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}}
From dc35b83824b09b22b3ef8afabaca2f16da41322c Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sat, 3 Jun 2023 12:14:32 +0800 Subject: [PATCH 19/25] fix --- services/auth/source/oauth2/providers.go | 14 ++++---------- templates/user/auth/signin_inner.tmpl | 2 +- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/services/auth/source/oauth2/providers.go b/services/auth/source/oauth2/providers.go index a1f5df77fd898..3b4048acf0afe 100644 --- a/services/auth/source/oauth2/providers.go +++ b/services/auth/source/oauth2/providers.go @@ -35,7 +35,9 @@ type GothProvider interface { GothProviderCreator } -// ImagedProvider provide an overridden image setting for the provider +// ImagedProvider provide an overridden image setting for the provider. +// It wraps a GothProvider and the "image" could be set by the AuthSource's IconURL field. +// Users could set the image on the Auth Source Edit page. type ImagedProvider struct { GothProvider image string @@ -46,14 +48,6 @@ func (i *ImagedProvider) Image() string { return i.image } -// NewImagedProvider is a constructor function for the ImagedProvider -func NewImagedProvider(image string, provider GothProvider) *ImagedProvider { - return &ImagedProvider{ - GothProvider: provider, - image: image, - } -} - // Providers contains the map of registered OAuth2 providers in Gitea (based on goth) // key is used to map the OAuth2Provider with the goth provider type (also in AuthSource.OAuth2Config.Provider) // value is used to store display data @@ -98,7 +92,7 @@ func GetActiveOAuth2Providers() ([]string, map[string]Provider, error) { for _, source := range authSources { prov := gothProviders[source.Cfg.(*Source).Provider] if source.Cfg.(*Source).IconURL != "" { - prov = &ImagedProvider{prov, source.Cfg.(*Source).IconURL} + prov = &ImagedProvider{GothProvider: prov, image: source.Cfg.(*Source).IconURL} } providers[source.Name] = prov orderedKeys = append(orderedKeys, source.Name) diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index 5a731c9991443..2eb9a1f57fd08 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -61,7 +61,7 @@
{{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} - - {{svg $provider.SvgName 20 "gt-mr-3"}} + {{$provider.DisplayName}} {{$provider.DisplayName}} {{end}} diff --git a/web_src/svg/gitea-azuread.svg b/web_src/svg/gitea-azuread.svg deleted file mode 100644 index 338035d9c6c57..0000000000000 --- a/web_src/svg/gitea-azuread.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-azureadv2.svg b/web_src/svg/gitea-azureadv2.svg deleted file mode 100644 index 338035d9c6c57..0000000000000 --- a/web_src/svg/gitea-azureadv2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-bitbucket.svg b/web_src/svg/gitea-bitbucket.svg deleted file mode 100644 index e2852693a4d1a..0000000000000 --- a/web_src/svg/gitea-bitbucket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-discord.svg b/web_src/svg/gitea-discord.svg deleted file mode 100644 index 281dd3799d068..0000000000000 --- a/web_src/svg/gitea-discord.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-dropbox.svg b/web_src/svg/gitea-dropbox.svg deleted file mode 100644 index d3ec50b98c263..0000000000000 --- a/web_src/svg/gitea-dropbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-facebook.svg b/web_src/svg/gitea-facebook.svg deleted file mode 100644 index afe106b5a9a80..0000000000000 --- a/web_src/svg/gitea-facebook.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/web_src/svg/gitea-mastodon.svg b/web_src/svg/gitea-mastodon.svg deleted file mode 100644 index 35a181e462321..0000000000000 --- a/web_src/svg/gitea-mastodon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-microsoftonline.svg b/web_src/svg/gitea-microsoftonline.svg deleted file mode 100644 index 18dc46dc8aaee..0000000000000 --- a/web_src/svg/gitea-microsoftonline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-nextcloud.svg b/web_src/svg/gitea-nextcloud.svg deleted file mode 100644 index 97d980fa90583..0000000000000 --- a/web_src/svg/gitea-nextcloud.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/web_src/svg/gitea-twitter.svg b/web_src/svg/gitea-twitter.svg deleted file mode 100644 index 06e5762759e32..0000000000000 --- a/web_src/svg/gitea-twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-yandex.svg b/web_src/svg/gitea-yandex.svg deleted file mode 100644 index 3c80b29df3e5d..0000000000000 --- a/web_src/svg/gitea-yandex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 0db6f0d3ef95bab6a835ae74d0bb17d2c13029b5 Mon Sep 17 00:00:00 2001 From: HesterG Date: Mon, 5 Jun 2023 13:43:16 +0800 Subject: [PATCH 21/25] delete --- public/img/auth/octicon-mark-github.svg | 1 - public/img/svg/gitea-google.svg | 1 - web_src/svg/gitea-google.svg | 1 - 3 files changed, 3 deletions(-) delete mode 100644 public/img/auth/octicon-mark-github.svg delete mode 100644 public/img/svg/gitea-google.svg delete mode 100644 web_src/svg/gitea-google.svg diff --git a/public/img/auth/octicon-mark-github.svg b/public/img/auth/octicon-mark-github.svg deleted file mode 100644 index 0e5bf3b4d67d9..0000000000000 --- a/public/img/auth/octicon-mark-github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/img/svg/gitea-google.svg b/public/img/svg/gitea-google.svg deleted file mode 100644 index dbb741897ce9d..0000000000000 --- a/public/img/svg/gitea-google.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web_src/svg/gitea-google.svg b/web_src/svg/gitea-google.svg deleted file mode 100644 index b518c52704e6d..0000000000000 --- a/web_src/svg/gitea-google.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From ba230dc9bf27136e14631946f09fe07e4fb4a398 Mon Sep 17 00:00:00 2001 From: HesterG Date: Mon, 5 Jun 2023 14:02:01 +0800 Subject: [PATCH 22/25] use svg as default image icons --- services/auth/source/oauth2/providers_base.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/services/auth/source/oauth2/providers_base.go b/services/auth/source/oauth2/providers_base.go index 4ade367e05edf..980d6ee9ed7c1 100644 --- a/services/auth/source/oauth2/providers_base.go +++ b/services/auth/source/oauth2/providers_base.go @@ -3,10 +3,6 @@ package oauth2 -import ( - "code.gitea.io/gitea/modules/util" -) - // BaseProvider represents a common base for Provider type BaseProvider struct { name string @@ -24,19 +20,13 @@ func (b *BaseProvider) DisplayName() string { } // Image returns an image path for this provider +// Use svg for default image icons func (b *BaseProvider) Image() string { - suffix := ".png" name := b.name - // names of providers that have svg as their default images - // providers_openid has its own Image() function - defaultSvgProviderNames := []string{"azuread", "azureadv2", "bitbucket", "discord", "dropbox", "facebook", "gitea", "github", "gitlab", "gplus", "mastodon", "microsoftonline", "nextcloud", "twitter", "yandex"} - if util.SliceContainsString(defaultSvgProviderNames, b.name) { - suffix = ".svg" - if b.name == "gplus" { - name = "google" - } + if b.name == "gplus" { + name = "google" } - return "/assets/img/auth/" + name + suffix + return "/assets/img/auth/" + name + ".svg" } // CustomURLSettings returns the custom url settings for this provider From 494b24ee12c9fcf5a40ca6c16589be8cf4096c24 Mon Sep 17 00:00:00 2001 From: HesterG Date: Mon, 5 Jun 2023 14:04:29 +0800 Subject: [PATCH 23/25] add comments --- services/auth/source/oauth2/providers_base.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/auth/source/oauth2/providers_base.go b/services/auth/source/oauth2/providers_base.go index 980d6ee9ed7c1..db09550e0520d 100644 --- a/services/auth/source/oauth2/providers_base.go +++ b/services/auth/source/oauth2/providers_base.go @@ -20,7 +20,7 @@ func (b *BaseProvider) DisplayName() string { } // Image returns an image path for this provider -// Use svg for default image icons +// Use svg for default image icons, providers_openid has its own Image function func (b *BaseProvider) Image() string { name := b.name if b.name == "gplus" { From 9d17b20211abfdc7c444004c065dfb29f4883dca Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 5 Jun 2023 21:53:25 +0800 Subject: [PATCH 24/25] fix --- services/auth/signin.go | 2 +- services/auth/source/oauth2/providers.go | 44 ++++++++++++------- services/auth/source/oauth2/providers_base.go | 10 +++-- .../auth/source/oauth2/providers_custom.go | 2 +- .../auth/source/oauth2/providers_openid.go | 8 ++-- .../auth/source/oauth2/providers_simple.go | 2 +- templates/user/auth/signin_inner.tmpl | 8 +--- .../user/settings/security/accountlinks.tmpl | 2 +- 8 files changed, 44 insertions(+), 34 deletions(-) diff --git a/services/auth/signin.go b/services/auth/signin.go index 2af15c4133ccd..1095b27fe2da6 100644 --- a/services/auth/signin.go +++ b/services/auth/signin.go @@ -61,7 +61,7 @@ func UserSignIn(username, password string) (*user_model.User, *auth.Source, erro } if !source.IsActive { - return nil, nil, oauth2.ErrAuthSourceNotActived + return nil, nil, oauth2.ErrAuthSourceNotActivated } authenticator, ok := source.Cfg.(PasswordAuthenticator) diff --git a/services/auth/source/oauth2/providers.go b/services/auth/source/oauth2/providers.go index b04f3a7dbdc78..0aa83ba494396 100644 --- a/services/auth/source/oauth2/providers.go +++ b/services/auth/source/oauth2/providers.go @@ -19,7 +19,7 @@ import ( type Provider interface { Name() string DisplayName() string - Image() string + IconURL() string CustomURLSettings() *CustomURLSettings } @@ -34,17 +34,28 @@ type GothProvider interface { GothProviderCreator } -// ImagedProvider provide an overridden image setting for the provider. -// It wraps a GothProvider and the "image" could be set by the AuthSource's IconURL field. -// Users could set the image on the Auth Source Edit page. -type ImagedProvider struct { +// AuthSourceProvider provides a provider for an AuthSource. Multiple auth sources could use the same registered GothProvider +// So each auth source should have its own DisplayName and IconURL for display. +// The Name is the GothProvider's name, to help to find the GothProvider to sign in. +// The DisplayName is the auth source config's name, site admin set it on the admin page, the IconURL can also be set there. +type AuthSourceProvider struct { GothProvider - image string + sourceName, iconURL string } -// Image returns the image path for this provider -func (i *ImagedProvider) Image() string { - return i.image +func (p *AuthSourceProvider) Name() string { + return p.GothProvider.Name() +} + +func (p *AuthSourceProvider) DisplayName() string { + return p.sourceName +} + +func (p *AuthSourceProvider) IconURL() string { + if p.iconURL != "" { + return p.iconURL + } + return p.GothProvider.IconURL() } // Providers contains the map of registered OAuth2 providers in Gitea (based on goth) @@ -89,11 +100,13 @@ func GetActiveOAuth2Providers() ([]string, map[string]Provider, error) { var orderedKeys []string providers := make(map[string]Provider) for _, source := range authSources { - prov := gothProviders[source.Cfg.(*Source).Provider] - if source.Cfg.(*Source).IconURL != "" { - prov = &ImagedProvider{GothProvider: prov, image: source.Cfg.(*Source).IconURL} + oauth2Cfg, ok := source.Cfg.(*Source) + if !ok { + log.Error("Invalid OAuth2 source config: %v", oauth2Cfg) + continue } - providers[source.Name] = prov + gothProv := gothProviders[oauth2Cfg.Provider] + providers[source.Name] = &AuthSourceProvider{GothProvider: gothProv, sourceName: source.Name, iconURL: oauth2Cfg.IconURL} orderedKeys = append(orderedKeys, source.Name) } @@ -132,8 +145,7 @@ func ClearProviders() { goth.ClearProviders() } -// ErrAuthSourceNotActived login source is not actived error -var ErrAuthSourceNotActived = errors.New("auth source is not actived") +var ErrAuthSourceNotActivated = errors.New("auth source is not activated") // used to create different types of goth providers func createProvider(providerName string, source *Source) (goth.Provider, error) { @@ -144,7 +156,7 @@ func createProvider(providerName string, source *Source) (goth.Provider, error) p, ok := gothProviders[source.Provider] if !ok { - return nil, ErrAuthSourceNotActived + return nil, ErrAuthSourceNotActivated } provider, err = p.CreateGothProvider(providerName, callbackURL, source) diff --git a/services/auth/source/oauth2/providers_base.go b/services/auth/source/oauth2/providers_base.go index db09550e0520d..5c8a9cf39bea8 100644 --- a/services/auth/source/oauth2/providers_base.go +++ b/services/auth/source/oauth2/providers_base.go @@ -3,6 +3,8 @@ package oauth2 +import "code.gitea.io/gitea/modules/setting" + // BaseProvider represents a common base for Provider type BaseProvider struct { name string @@ -19,14 +21,14 @@ func (b *BaseProvider) DisplayName() string { return b.displayName } -// Image returns an image path for this provider +// IconURL returns an icon path for this provider // Use svg for default image icons, providers_openid has its own Image function -func (b *BaseProvider) Image() string { +func (b *BaseProvider) IconURL() string { name := b.name if b.name == "gplus" { name = "google" } - return "/assets/img/auth/" + name + ".svg" + return setting.AppSubURL + "/assets/img/auth/" + name + ".svg" } // CustomURLSettings returns the custom url settings for this provider @@ -34,4 +36,4 @@ func (b *BaseProvider) CustomURLSettings() *CustomURLSettings { return nil } -var _ (Provider) = &BaseProvider{} +var _ Provider = &BaseProvider{} diff --git a/services/auth/source/oauth2/providers_custom.go b/services/auth/source/oauth2/providers_custom.go index b5fe1794418d2..65cf538ad7386 100644 --- a/services/auth/source/oauth2/providers_custom.go +++ b/services/auth/source/oauth2/providers_custom.go @@ -49,7 +49,7 @@ func NewCustomProvider(name, displayName string, customURLSetting *CustomURLSett } } -var _ (GothProvider) = &CustomProvider{} +var _ GothProvider = &CustomProvider{} func init() { RegisterGothProvider(NewCustomProvider( diff --git a/services/auth/source/oauth2/providers_openid.go b/services/auth/source/oauth2/providers_openid.go index 185e718329804..c394058d6f312 100644 --- a/services/auth/source/oauth2/providers_openid.go +++ b/services/auth/source/oauth2/providers_openid.go @@ -24,9 +24,9 @@ func (o *OpenIDProvider) DisplayName() string { return "OpenID Connect" } -// Image returns an image path for this provider -func (o *OpenIDProvider) Image() string { - return "/assets/img/svg/gitea-openid.svg" +// IconURL returns an icon path for this provider +func (o *OpenIDProvider) IconURL() string { + return setting.AppSubURL + "/assets/img/svg/gitea-openid.svg" } // CreateGothProvider creates a GothProvider from this Provider @@ -48,7 +48,7 @@ func (o *OpenIDProvider) CustomURLSettings() *CustomURLSettings { return nil } -var _ (GothProvider) = &OpenIDProvider{} +var _ GothProvider = &OpenIDProvider{} func init() { RegisterGothProvider(&OpenIDProvider{}) diff --git a/services/auth/source/oauth2/providers_simple.go b/services/auth/source/oauth2/providers_simple.go index dea881741ea41..e95323a62a2b5 100644 --- a/services/auth/source/oauth2/providers_simple.go +++ b/services/auth/source/oauth2/providers_simple.go @@ -48,7 +48,7 @@ func NewSimpleProvider(name, displayName string, scopes []string, newFn SimplePr } } -var _ (GothProvider) = &SimpleProvider{} +var _ GothProvider = &SimpleProvider{} func init() { RegisterGothProvider( diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl index 345d3cf930267..22cb620bfee32 100644 --- a/templates/user/auth/signin_inner.tmpl +++ b/templates/user/auth/signin_inner.tmpl @@ -62,12 +62,8 @@ {{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} {{end}}
diff --git a/templates/user/settings/security/accountlinks.tmpl b/templates/user/settings/security/accountlinks.tmpl index 26697cc9049ce..e7a685bb9fbd0 100644 --- a/templates/user/settings/security/accountlinks.tmpl +++ b/templates/user/settings/security/accountlinks.tmpl @@ -8,7 +8,7 @@ {{range $key := .OrderedOAuth2Names}} {{$provider := index $.OAuth2Providers $key}} - {{$provider.DisplayName}} + {{$provider.DisplayName}} {{$provider.DisplayName}} {{end}} From 6281bc673150a950ad50773b860d098b09855c06 Mon Sep 17 00:00:00 2001 From: HesterG Date: Tue, 6 Jun 2023 08:59:27 +0800 Subject: [PATCH 25/25] modify comment --- services/auth/source/oauth2/providers_base.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/auth/source/oauth2/providers_base.go b/services/auth/source/oauth2/providers_base.go index 5c8a9cf39bea8..c8e41430ab245 100644 --- a/services/auth/source/oauth2/providers_base.go +++ b/services/auth/source/oauth2/providers_base.go @@ -22,7 +22,7 @@ func (b *BaseProvider) DisplayName() string { } // IconURL returns an icon path for this provider -// Use svg for default image icons, providers_openid has its own Image function +// Use svg for default icons, providers_openid has its own IconURL function func (b *BaseProvider) IconURL() string { name := b.name if b.name == "gplus" {