mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 06:03:51 +03:00
set federatedRepoList into context
This commit is contained in:
parent
cf8a30efac
commit
d251fc2611
5 changed files with 13 additions and 15 deletions
|
@ -13,15 +13,15 @@ type FederatedRepo struct {
|
||||||
RepoID int64 `xorm:"NOT NULL"`
|
RepoID int64 `xorm:"NOT NULL"`
|
||||||
ExternalID string `xorm:"TEXT UNIQUE(federation_repo_mapping) NOT NULL"`
|
ExternalID string `xorm:"TEXT UNIQUE(federation_repo_mapping) NOT NULL"`
|
||||||
FederationHostID int64 `xorm:"UNIQUE(federation_repo_mapping) NOT NULL"`
|
FederationHostID int64 `xorm:"UNIQUE(federation_repo_mapping) NOT NULL"`
|
||||||
Schema string
|
Uri string
|
||||||
Port string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFederatedRepo(repoID int64, externalID string, federationHostID int64) (FederatedRepo, error) {
|
func NewFederatedRepo(repoID int64, externalID string, federationHostID int64, uri string) (FederatedRepo, error) {
|
||||||
result := FederatedRepo{
|
result := FederatedRepo{
|
||||||
RepoID: repoID,
|
RepoID: repoID,
|
||||||
ExternalID: externalID,
|
ExternalID: externalID,
|
||||||
FederationHostID: federationHostID,
|
FederationHostID: federationHostID,
|
||||||
|
Uri: uri,
|
||||||
}
|
}
|
||||||
if valid, err := validation.IsValid(result); !valid {
|
if valid, err := validation.IsValid(result); !valid {
|
||||||
return FederatedRepo{}, err
|
return FederatedRepo{}, err
|
||||||
|
@ -34,5 +34,6 @@ func (user FederatedRepo) Validate() []string {
|
||||||
result = append(result, validation.ValidateNotEmpty(user.RepoID, "UserID")...)
|
result = append(result, validation.ValidateNotEmpty(user.RepoID, "UserID")...)
|
||||||
result = append(result, validation.ValidateNotEmpty(user.ExternalID, "ExternalID")...)
|
result = append(result, validation.ValidateNotEmpty(user.ExternalID, "ExternalID")...)
|
||||||
result = append(result, validation.ValidateNotEmpty(user.FederationHostID, "FederationHostID")...)
|
result = append(result, validation.ValidateNotEmpty(user.FederationHostID, "FederationHostID")...)
|
||||||
|
result = append(result, validation.ValidateNotEmpty(user.Uri, "Uri")...)
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ func Test_FederatedRepoValidation(t *testing.T) {
|
||||||
RepoID: 12,
|
RepoID: 12,
|
||||||
ExternalID: "12",
|
ExternalID: "12",
|
||||||
FederationHostID: 1,
|
FederationHostID: 1,
|
||||||
|
Uri: "http://localhost:3000/api/v1/activitypub/repo-id/1",
|
||||||
}
|
}
|
||||||
if res, err := validation.IsValid(sut); !res {
|
if res, err := validation.IsValid(sut); !res {
|
||||||
t.Errorf("sut should be valid but was %q", err)
|
t.Errorf("sut should be valid but was %q", err)
|
||||||
|
@ -22,6 +23,7 @@ func Test_FederatedRepoValidation(t *testing.T) {
|
||||||
sut = FederatedRepo{
|
sut = FederatedRepo{
|
||||||
ExternalID: "12",
|
ExternalID: "12",
|
||||||
FederationHostID: 1,
|
FederationHostID: 1,
|
||||||
|
Uri: "http://localhost:3000/api/v1/activitypub/repo-id/1",
|
||||||
}
|
}
|
||||||
if res, _ := validation.IsValid(sut); res {
|
if res, _ := validation.IsValid(sut); res {
|
||||||
t.Errorf("sut should be invalid")
|
t.Errorf("sut should be invalid")
|
||||||
|
|
|
@ -383,8 +383,11 @@ func repoAssignment(ctx *Context, repo *repo_model.Repository) {
|
||||||
federatedRepoList, err := repo_model.FindFederatedReposByRepoID(ctx, repo.ID)
|
federatedRepoList, err := repo_model.FindFederatedReposByRepoID(ctx, repo.ID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
federatedRepoString := ""
|
federatedRepoString := ""
|
||||||
for _, federatedRepo := range federatedRepoList {
|
for idx, federatedRepo := range federatedRepoList {
|
||||||
|
if idx > 0 {
|
||||||
|
federatedRepoString += ";"
|
||||||
|
}
|
||||||
|
federatedRepoString += (*federatedRepo).Uri
|
||||||
}
|
}
|
||||||
ctx.Data["FederatedRepos"] = federatedRepoString
|
ctx.Data["FederatedRepos"] = federatedRepoString
|
||||||
} else if err != repo_model.ErrMirrorNotExist {
|
} else if err != repo_model.ErrMirrorNotExist {
|
||||||
|
|
|
@ -223,7 +223,7 @@ func StoreFederatedRepoList(ctx context.Context, localRepoId int64, federatedRep
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return http.StatusNotAcceptable, "Invalid federated repo", err
|
return http.StatusNotAcceptable, "Invalid federated repo", err
|
||||||
}
|
}
|
||||||
federatedRepo, err := repo.NewFederatedRepo(localRepoId, federatedRepoID.ID, federationHost.ID)
|
federatedRepo, err := repo.NewFederatedRepo(localRepoId, federatedRepoID.ID, federationHost.ID, uri)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return http.StatusNotAcceptable, "Invalid federated repo", err
|
return http.StatusNotAcceptable, "Invalid federated repo", err
|
||||||
}
|
}
|
||||||
|
@ -234,11 +234,3 @@ func StoreFederatedRepoList(ctx context.Context, localRepoId int64, federatedRep
|
||||||
|
|
||||||
return 0, "", nil
|
return 0, "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func FederatedRepoUrl(ctx context.Context, federatedRepo repo.FederatedRepo) (string, error) {
|
|
||||||
federationHost, err := forgefed.GetFederationHost(ctx, federatedRepo.FederationHostID)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return federationHost.HostFqdn
|
|
||||||
}
|
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
<input type="hidden" name="action" value="federation">
|
<input type="hidden" name="action" value="federation">
|
||||||
<div class="field {{if .Err_FederationRepos}}error{{end}}">
|
<div class="field {{if .Err_FederationRepos}}error{{end}}">
|
||||||
<label for="federation_repos">{{ctx.Locale.Tr "repo.settings.federation_labelname_repo"}}</label>
|
<label for="federation_repos">{{ctx.Locale.Tr "repo.settings.federation_labelname_repo"}}</label>
|
||||||
<input id="federation_repos" name="federation_repos" value="{{.FederationRepos}}" data-repo-name="{{.Repository.FederationRepos}}">
|
<input id="federation_repos" name="federation_repos" value="{{.FederatedRepos}}">
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<button class="ui primary button">{{ctx.Locale.Tr "repo.settings.update_settings"}}</button>
|
<button class="ui primary button">{{ctx.Locale.Tr "repo.settings.update_settings"}}</button>
|
||||||
|
|
Loading…
Reference in a new issue