Skip to content

Commit bf6b92b

Browse files
committed
Merge branch 'main' into clean-tmpl-helper
2 parents 21aaa30 + b918a2c commit bf6b92b

File tree

34 files changed

+388
-195
lines changed

34 files changed

+388
-195
lines changed

.gitpod.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,6 @@ tasks:
2323
gp sync-await setup
2424
make watch-frontend
2525
openMode: split-right
26-
- name: Run docs
27-
command: |
28-
gp sync-await setup
29-
cd docs
30-
make clean update
31-
hugo server -D -F --baseUrl $(gp url 1313) --liveReloadPort=443 --appendPort=false --bind=0.0.0.0
32-
openMode: split-right
3326

3427
vscode:
3528
extensions:
@@ -46,5 +39,3 @@ vscode:
4639
ports:
4740
- name: Gitea
4841
port: 3000
49-
- name: Docs
50-
port: 1313

assets/go-licenses.json

Lines changed: 0 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/generate-go-licenses.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ package main
77

88
import (
99
"encoding/json"
10+
"fmt"
1011
"io/fs"
1112
"os"
12-
goPath "path"
13+
"path"
1314
"path/filepath"
1415
"regexp"
1516
"sort"
@@ -27,9 +28,14 @@ type LicenseEntry struct {
2728
}
2829

2930
func main() {
31+
if len(os.Args) != 3 {
32+
fmt.Println("usage: go run generate-go-licenses.go <base-dir> <out-json-file>")
33+
os.Exit(1)
34+
}
35+
3036
base, out := os.Args[1], os.Args[2]
3137

32-
paths := []string{}
38+
var paths []string
3339
err := filepath.WalkDir(base, func(path string, entry fs.DirEntry, err error) error {
3440
if err != nil {
3541
return err
@@ -46,28 +52,27 @@ func main() {
4652

4753
sort.Strings(paths)
4854

49-
entries := []LicenseEntry{}
50-
for _, path := range paths {
51-
path := filepath.ToSlash(path)
52-
53-
licenseText, err := os.ReadFile(path)
55+
var entries []LicenseEntry
56+
for _, filePath := range paths {
57+
licenseText, err := os.ReadFile(filePath)
5458
if err != nil {
5559
panic(err)
5660
}
5761

58-
path = strings.Replace(path, base+"/", "", 1)
59-
name := goPath.Dir(path)
62+
pkgPath := filepath.ToSlash(filePath)
63+
pkgPath = strings.TrimPrefix(pkgPath, base+"/")
64+
pkgName := path.Dir(pkgPath)
6065

6166
// There might be a bug somewhere in go-licenses that sometimes interprets the
6267
// root package as "." and sometimes as "code.gitea.io/gitea". Workaround by
6368
// removing both of them for the sake of stable output.
64-
if name == "." || name == "code.gitea.io/gitea" {
69+
if pkgName == "." || pkgName == "code.gitea.io/gitea" {
6570
continue
6671
}
6772

6873
entries = append(entries, LicenseEntry{
69-
Name: name,
70-
Path: path,
74+
Name: pkgName,
75+
Path: pkgPath,
7176
LicenseText: string(licenseText),
7277
})
7378
}

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ require (
9696
github.com/stretchr/testify v1.8.1
9797
github.com/syndtr/goleveldb v1.0.0
9898
github.com/tstranex/u2f v1.0.0
99-
github.com/unrolled/render v1.5.0
10099
github.com/urfave/cli v1.22.12
101100
github.com/xanzy/go-gitlab v0.80.2
102101
github.com/xeipuuv/gojsonschema v1.2.0

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1182,8 +1182,6 @@ github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0o
11821182
github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
11831183
github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
11841184
github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
1185-
github.com/unrolled/render v1.5.0 h1:uNTHMvVoI9pyyXfgoDHHycIqFONNY2p4eQR9ty+NsxM=
1186-
github.com/unrolled/render v1.5.0/go.mod h1:eLTosBkQqEPEk7pRfkCRApXd++lm++nCsVlFOHpeedw=
11871185
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
11881186
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
11891187
github.com/urfave/cli v1.22.12 h1:igJgVw1JdKH+trcLWLeLwZjU9fEfPesQ+9/e4MQ44S8=

models/organization/org.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ func (org *Organization) IsOwnedBy(uid int64) (bool, error) {
100100
return IsOrganizationOwner(db.DefaultContext, org.ID, uid)
101101
}
102102

103+
// IsOrgAdmin returns true if given user is in the owner team or an admin team.
104+
func (org *Organization) IsOrgAdmin(uid int64) (bool, error) {
105+
return IsOrganizationAdmin(db.DefaultContext, org.ID, uid)
106+
}
107+
103108
// IsOrgMember returns true if given user is member of organization.
104109
func (org *Organization) IsOrgMember(uid int64) (bool, error) {
105110
return IsOrganizationMember(db.DefaultContext, org.ID, uid)

models/organization/org_user.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"fmt"
99

1010
"code.gitea.io/gitea/models/db"
11+
"code.gitea.io/gitea/models/perm"
1112
user_model "code.gitea.io/gitea/models/user"
1213
"code.gitea.io/gitea/modules/log"
1314

@@ -53,6 +54,20 @@ func IsOrganizationOwner(ctx context.Context, orgID, uid int64) (bool, error) {
5354
return IsTeamMember(ctx, orgID, ownerTeam.ID, uid)
5455
}
5556

57+
// IsOrganizationAdmin returns true if given user is in the owner team or an admin team.
58+
func IsOrganizationAdmin(ctx context.Context, orgID, uid int64) (bool, error) {
59+
teams, err := GetUserOrgTeams(ctx, orgID, uid)
60+
if err != nil {
61+
return false, err
62+
}
63+
for _, t := range teams {
64+
if t.AccessMode >= perm.AccessModeAdmin {
65+
return true, nil
66+
}
67+
}
68+
return false, nil
69+
}
70+
5671
// IsOrganizationMember returns true if given user is member of organization.
5772
func IsOrganizationMember(ctx context.Context, orgID, uid int64) (bool, error) {
5873
return db.GetEngine(ctx).

modules/context/context.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,13 @@ import (
4242
"gitea.com/go-chi/session"
4343
chi "github.com/go-chi/chi/v5"
4444
"github.com/minio/sha256-simd"
45-
"github.com/unrolled/render"
4645
"golang.org/x/crypto/pbkdf2"
4746
)
4847

4948
// Render represents a template render
5049
type Render interface {
5150
TemplateLookup(tmpl string) *template.Template
52-
HTML(w io.Writer, status int, name string, binding interface{}, htmlOpt ...render.HTMLOptions) error
51+
HTML(w io.Writer, status int, name string, data interface{}) error
5352
}
5453

5554
// Context represents context of a request.

modules/repository/delete.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ func CanUserDelete(repo *repo_model.Repository, user *user_model.User) (bool, er
2121
}
2222

2323
if repo.Owner.IsOrganization() {
24-
isOwner, err := organization.OrgFromUser(repo.Owner).IsOwnedBy(user.ID)
24+
isAdmin, err := organization.OrgFromUser(repo.Owner).IsOrgAdmin(user.ID)
2525
if err != nil {
2626
return false, err
2727
}
28-
return isOwner, nil
28+
return isAdmin, nil
2929
}
3030

3131
return false, nil

modules/session/redis.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,16 +183,21 @@ func (p *RedisProvider) Regenerate(oldsid, sid string) (_ session.RawStore, err
183183
}
184184
}
185185

186-
if err = p.c.Rename(graceful.GetManager().HammerContext(), poldsid, psid).Err(); err != nil {
186+
// do not use Rename here, because the old sid and new sid may be in different redis cluster slot.
187+
kvs, err := p.c.Get(graceful.GetManager().HammerContext(), poldsid).Result()
188+
if err != nil {
187189
return nil, err
188190
}
189191

190-
var kv map[interface{}]interface{}
191-
kvs, err := p.c.Get(graceful.GetManager().HammerContext(), psid).Result()
192-
if err != nil {
192+
if err = p.c.Del(graceful.GetManager().HammerContext(), poldsid).Err(); err != nil {
193193
return nil, err
194194
}
195195

196+
if err = p.c.Set(graceful.GetManager().HammerContext(), psid, kvs, p.duration).Err(); err != nil {
197+
return nil, err
198+
}
199+
200+
var kv map[interface{}]interface{}
196201
if len(kvs) == 0 {
197202
kv = make(map[interface{}]interface{})
198203
} else {

0 commit comments

Comments
 (0)