Vision: Allow use of configured service key for API authentication #5299

Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
Michael Mayer
2025-10-30 10:02:16 +01:00
parent 5365e214ad
commit 42edf100ee
18 changed files with 240 additions and 36 deletions

View File

@@ -15,6 +15,7 @@ const (
GrantUndefined GrantType = ""
GrantCLI GrantType = "cli"
GrantImplicit GrantType = "implicit"
GrantToken GrantType = "token"
GrantSession GrantType = "session"
GrantPassword GrantType = "password"
GrantClientCredentials GrantType = "client_credentials"
@@ -36,6 +37,8 @@ func Grant(s string) GrantType {
return GrantCLI
case "implicit":
return GrantImplicit
case "token":
return GrantToken
case "session":
return GrantSession
case "password", "passwd", "pass":
@@ -66,6 +69,8 @@ func (t GrantType) Pretty() string {
return "CLI"
case GrantImplicit:
return "Implicit"
case GrantToken:
return "Token"
case GrantSession:
return "Session"
case GrantPassword:

View File

@@ -11,6 +11,7 @@ func TestGrantType_String(t *testing.T) {
assert.Equal(t, "client_credentials", GrantClientCredentials.String())
assert.Equal(t, "session", GrantSession.String())
assert.Equal(t, "password", GrantPassword.String())
assert.Equal(t, "token", GrantToken.String())
assert.Equal(t, "refresh_token", GrantRefreshToken.String())
assert.Equal(t, "authorization_code", GrantAuthorizationCode.String())
assert.Equal(t, "authorization_code", GrantType("Authorization Code ").String())
@@ -22,6 +23,7 @@ func TestGrantType_Is(t *testing.T) {
assert.Equal(t, true, GrantUndefined.Is(GrantUndefined))
assert.Equal(t, true, GrantClientCredentials.Is(GrantClientCredentials))
assert.Equal(t, true, GrantSession.Is(GrantSession))
assert.Equal(t, true, GrantToken.Is(GrantToken))
assert.Equal(t, true, GrantPassword.Is(GrantPassword))
assert.Equal(t, false, GrantClientCredentials.Is(GrantPassword))
assert.Equal(t, false, GrantClientCredentials.Is(GrantRefreshToken))
@@ -36,6 +38,7 @@ func TestGrantType_IsNot(t *testing.T) {
assert.Equal(t, false, GrantUndefined.IsNot(GrantUndefined))
assert.Equal(t, false, GrantClientCredentials.IsNot(GrantClientCredentials))
assert.Equal(t, false, GrantPassword.IsNot(GrantPassword))
assert.Equal(t, false, GrantToken.IsNot(GrantToken))
assert.Equal(t, true, GrantClientCredentials.IsNot(GrantPassword))
assert.Equal(t, true, GrantClientCredentials.IsNot(GrantRefreshToken))
assert.Equal(t, true, GrantClientCredentials.IsNot(GrantAuthorizationCode))
@@ -57,6 +60,7 @@ func TestGrantType_Pretty(t *testing.T) {
assert.Equal(t, "CLI", GrantCLI.Pretty())
assert.Equal(t, "Client Credentials", GrantClientCredentials.Pretty())
assert.Equal(t, "Session", GrantSession.Pretty())
assert.Equal(t, "Token", GrantToken.Pretty())
assert.Equal(t, "Password", GrantPassword.Pretty())
assert.Equal(t, "Refresh Token", GrantRefreshToken.Pretty())
assert.Equal(t, "Authorization Code", GrantAuthorizationCode.Pretty())
@@ -98,6 +102,7 @@ func TestGrant(t *testing.T) {
assert.Equal(t, GrantCLI, Grant("cli"))
assert.Equal(t, GrantImplicit, Grant("implicit"))
assert.Equal(t, GrantSession, Grant("session"))
assert.Equal(t, GrantToken, Grant("token"))
assert.Equal(t, GrantPassword, Grant("pass"))
assert.Equal(t, GrantPassword, Grant("password"))
assert.Equal(t, GrantClientCredentials, Grant("client credentials"))