mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-05-28 07:12:23 -04:00
Extends the UI introduced in #12558 to have edit capabilities. (not in scope: "Add" for a new Authorized Integration will be the next update to this UI; `create-authorized-integration` CLI is still the only way to create a new record) This PR includes a few refactoring steps. The goal of these steps is to have `services/auth` be a single entrypoint for validating, inserting, or updating an authorized integration. Some logic is moved out of `services/authz` because it is not authorization related, and some is moved out of `services/auth/method` to allow it to be reused during validation without creating a cyclical module dependency. This PR also adds comprehensive validation to the more complex fields in the authorized integration, such as the issuer and claim rules. This validation applies to the `forgejo admin user create-authorized-integration` CLI as well. The visible UI is the same as #12558, but with a "Save" button, and the ability to display errors:  ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. All work and communication must conform to Forgejo's [AI Agreement](https://codeberg.org/forgejo/governance/src/branch/main/AIAgreement.md). There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests for Go changes - I added test coverage for Go changes... - [x] in their respective `*_test.go` for unit tests. - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I ran... - [x] `make pr-go` before pushing ### Tests for JavaScript changes - I added test coverage for JavaScript changes... - [ ] in `web_src/js/*.test.js` if it can be unit tested. - [x] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)). ### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [x] I did not document these changes and I do not expect someone else to do it. - Documentation is on my TODO list and will be completed before release. ### Release notes - [x] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change. - [ ] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12601 Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org>
249 lines
4.2 KiB
Text
249 lines
4.2 KiB
Text
forgejo.org/cmd
|
|
NoMainListener
|
|
|
|
forgejo.org/cmd/forgejo
|
|
ContextSetNoInit
|
|
ContextSetNoExit
|
|
ContextSetStderr
|
|
ContextGetStderr
|
|
ContextSetStdout
|
|
ContextSetStdin
|
|
|
|
forgejo.org/models
|
|
IsErrSHANotFound
|
|
IsErrMergeDivergingFastForwardOnly
|
|
|
|
forgejo.org/models/auth
|
|
WebAuthnCredentials
|
|
|
|
forgejo.org/models/db
|
|
TruncateBeans
|
|
TruncateBeansCascade
|
|
DumpTables
|
|
GetTableNames
|
|
extendBeansForCascade
|
|
IsErrNameActivityPubInvalid
|
|
|
|
forgejo.org/models/dbfs
|
|
file.renameTo
|
|
Create
|
|
Rename
|
|
|
|
forgejo.org/models/forgejo/semver
|
|
GetVersion
|
|
SetVersionString
|
|
SetVersion
|
|
|
|
forgejo.org/models/forgejo_migrations
|
|
resetMigrations
|
|
|
|
forgejo.org/models/git
|
|
RemoveDeletedBranchByID
|
|
|
|
forgejo.org/models/issues
|
|
IsErrUnknownDependencyType
|
|
IsErrIssueWasClosed
|
|
|
|
forgejo.org/models/organization
|
|
SearchMembersOptions.ToConds
|
|
|
|
forgejo.org/models/perm/access
|
|
GetRepoWriters
|
|
|
|
forgejo.org/models/user
|
|
IsErrUserWrongType
|
|
IsErrExternalLoginUserAlreadyExist
|
|
IsErrExternalLoginUserNotExist
|
|
NewFederatedUser
|
|
IsErrUserSettingIsNotExist
|
|
GetUserAllSettings
|
|
DeleteUserSetting
|
|
|
|
forgejo.org/modules/activitypub
|
|
NewContext
|
|
Context.APClientFactory
|
|
|
|
forgejo.org/modules/assetfs
|
|
Bindata
|
|
|
|
forgejo.org/modules/auth/password/hash
|
|
DummyHasher.HashWithSaltBytes
|
|
NewDummyHasher
|
|
|
|
forgejo.org/modules/auth/password/pwn
|
|
WithHTTP
|
|
|
|
forgejo.org/modules/base
|
|
SetupGiteaRoot
|
|
|
|
forgejo.org/modules/cache
|
|
WithNoCacheContext
|
|
RemoveContextData
|
|
|
|
forgejo.org/modules/emoji
|
|
ReplaceCodes
|
|
|
|
forgejo.org/modules/eventsource
|
|
Event.String
|
|
|
|
forgejo.org/modules/forgefed
|
|
NewForgeUndoLike
|
|
ForgeUndoLike.UnmarshalJSON
|
|
ForgeUndoLike.Validate
|
|
NewPersonIDFromModel
|
|
GetItemByType
|
|
JSONUnmarshalerFn
|
|
NotEmpty
|
|
ToRepository
|
|
OnRepository
|
|
|
|
forgejo.org/modules/git
|
|
AllowLFSFiltersArgs
|
|
AddChanges
|
|
AddChangesWithArgs
|
|
CommitChanges
|
|
CommitChangesWithArgs
|
|
IsErrMoreThanOne
|
|
SetUpdateHook
|
|
openRepositoryWithDefaultContext
|
|
ToEntryMode
|
|
|
|
forgejo.org/modules/gitrepo
|
|
GetBranchCommitID
|
|
GetWikiDefaultBranch
|
|
|
|
forgejo.org/modules/graceful
|
|
Manager.TerminateContext
|
|
Manager.Err
|
|
Manager.Value
|
|
Manager.Deadline
|
|
|
|
forgejo.org/modules/hcaptcha
|
|
WithHTTP
|
|
|
|
forgejo.org/modules/hostmatcher
|
|
HostMatchList.AppendPattern
|
|
|
|
forgejo.org/modules/json
|
|
StdJSON.Marshal
|
|
StdJSON.Unmarshal
|
|
StdJSON.NewEncoder
|
|
StdJSON.NewDecoder
|
|
StdJSON.Indent
|
|
|
|
forgejo.org/modules/log
|
|
eventWriterBuffer.Close
|
|
eventWriterBuffer.Write
|
|
eventWriterBuffer.GetString
|
|
NewEventWriterBuffer
|
|
|
|
forgejo.org/modules/markup
|
|
GetRendererByType
|
|
RenderString
|
|
IsMarkupFile
|
|
|
|
forgejo.org/modules/markup/console
|
|
Render
|
|
RenderString
|
|
|
|
forgejo.org/modules/markup/markdown
|
|
RenderRawString
|
|
|
|
forgejo.org/modules/markup/mdstripper
|
|
stripRenderer.AddOptions
|
|
StripMarkdown
|
|
|
|
forgejo.org/modules/markup/orgmode
|
|
RenderString
|
|
|
|
forgejo.org/modules/process
|
|
Manager.ExecTimeout
|
|
|
|
forgejo.org/modules/queue
|
|
newBaseChannelSimple
|
|
newBaseChannelUnique
|
|
newBaseRedisSimple
|
|
newBaseRedisUnique
|
|
testStateRecorder.Records
|
|
testStateRecorder.Reset
|
|
newWorkerPoolQueueForTest
|
|
|
|
forgejo.org/modules/queue/lqinternal
|
|
QueueItemIDBytes
|
|
QueueItemKeyBytes
|
|
ListLevelQueueKeys
|
|
|
|
forgejo.org/modules/setting
|
|
NewConfigProviderFromData
|
|
GitConfigType.GetOption
|
|
InitLoggersForTest
|
|
|
|
forgejo.org/modules/sync
|
|
StatusTable.Start
|
|
StatusTable.IsRunning
|
|
|
|
forgejo.org/modules/timeutil
|
|
GetExecutableModTime
|
|
MockSet
|
|
MockUnset
|
|
|
|
forgejo.org/modules/translation
|
|
MockLocale.Language
|
|
MockLocale.TrString
|
|
MockLocale.Tr
|
|
MockLocale.TrN
|
|
MockLocale.TrPluralString
|
|
MockLocale.TrPluralStringAllForms
|
|
MockLocale.TrSize
|
|
MockLocale.HasKey
|
|
MockLocale.PrettyNumber
|
|
|
|
forgejo.org/modules/translation/localeiter
|
|
IterateMessagesContent
|
|
|
|
forgejo.org/modules/util
|
|
OptionalArg
|
|
|
|
forgejo.org/modules/util/filebuffer
|
|
CreateFromReader
|
|
|
|
forgejo.org/modules/validation
|
|
IsErrNotValid
|
|
|
|
forgejo.org/modules/web
|
|
RouteMock
|
|
RouteMockReset
|
|
|
|
forgejo.org/modules/zstd
|
|
NewWriter
|
|
Writer.Write
|
|
Writer.Close
|
|
|
|
forgejo.org/routers/web/org
|
|
MustEnableProjects
|
|
|
|
forgejo.org/services/auth
|
|
RegisterInternalIssuerForTesting
|
|
|
|
forgejo.org/services/context
|
|
GetPrivateContext
|
|
|
|
forgejo.org/services/notify
|
|
UnregisterNotifier
|
|
|
|
forgejo.org/services/repository
|
|
IsErrForkAlreadyExist
|
|
|
|
forgejo.org/services/repository/files
|
|
ContentType.String
|
|
RepoFileOptionMode
|
|
|
|
forgejo.org/services/repository/gitgraph
|
|
Parser.Reset
|
|
|
|
forgejo.org/services/stats
|
|
Flush
|
|
|
|
forgejo.org/services/webhook
|
|
NewNotifier
|
|
|