Skip to content

Commit 8ba2d63

Browse files
committed
fix test
1 parent 9a58412 commit 8ba2d63

File tree

6 files changed

+44
-9
lines changed

6 files changed

+44
-9
lines changed

models/migrations/v1_23/v297.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
package v1_23 //nolint
55

66
import (
7-
"xorm.io/xorm"
8-
97
"code.gitea.io/gitea/models/perm"
8+
9+
"xorm.io/xorm"
1010
)
1111

1212
func AddRepoUnitEveryoneAccessMode(x *xorm.Engine) error {

models/perm/access/repo_permission.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,9 @@ func (p *Permission) LogString() string {
127127
}
128128

129129
func applyDefaultUserRepoPermission(user *user_model.User, perm *Permission) {
130-
if user != nil {
130+
if user != nil && user.ID > 0 {
131131
for _, u := range perm.Units {
132-
if u.EveryoneAccessMode != perm_model.AccessModeUnset && u.EveryoneAccessMode > perm.UnitsMode[u.Type] {
132+
if u.EveryoneAccessMode > 0 && u.EveryoneAccessMode > perm.UnitsMode[u.Type] {
133133
perm.UnitsMode[u.Type] = u.EveryoneAccessMode
134134
}
135135
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Copyright 2024 The Gitea Authors. All rights reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package access
5+
6+
import (
7+
"testing"
8+
9+
perm_model "code.gitea.io/gitea/models/perm"
10+
repo_model "code.gitea.io/gitea/models/repo"
11+
"code.gitea.io/gitea/models/unit"
12+
user_model "code.gitea.io/gitea/models/user"
13+
14+
"github.com/stretchr/testify/assert"
15+
)
16+
17+
func TestApplyDefaultUserRepoPermission(t *testing.T) {
18+
perm := Permission{
19+
AccessMode: perm_model.AccessModeNone,
20+
UnitsMode: map[unit.Type]perm_model.AccessMode{},
21+
}
22+
23+
perm.Units = []*repo_model.RepoUnit{
24+
{Type: unit.TypeUncyclo, EveryoneAccessMode: perm_model.AccessModeNone},
25+
}
26+
applyDefaultUserRepoPermission(nil, &perm)
27+
assert.False(t, perm.CanRead(unit.TypeUncyclo))
28+
29+
perm.Units = []*repo_model.RepoUnit{
30+
{Type: unit.TypeUncyclo, EveryoneAccessMode: perm_model.AccessModeRead},
31+
}
32+
applyDefaultUserRepoPermission(&user_model.User{ID: 1}, &perm)
33+
assert.True(t, perm.CanRead(unit.TypeUncyclo))
34+
}

options/locale/locale_en-US.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,7 @@ repo_and_org_access = Repository and Organization Access
885885
permissions_public_only = Public only
886886
permissions_access_all = All (public, private, and limited)
887887
select_permissions = Select permissions
888+
permission_unset = (unset)
888889
permission_no_access = No Access
889890
permission_read = Read
890891
permission_write = Read and Write

templates/repo/settings/options.tmpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,9 @@
345345
{{$unitBuiltinUncyclo := .Repository.MustGetUnit ctx $.UnitTypeUncyclo}}
346346
<label>{{ctx.Locale.Tr "repo.settings.default_wiki_everyone_access"}}</label>
347347
<select name="default_wiki_everyone_access" class="ui dropdown">
348-
<option value="unset" {{Iif (eq $unitBuiltinUncyclo.EveryoneAccessMode -1) "selected"}}>unset</option>
349-
<option value="read" {{Iif (eq $unitBuiltinUncyclo.EveryoneAccessMode 1) "selected"}}>read</option>
350-
<option value="write" {{Iif (eq $unitBuiltinUncyclo.EveryoneAccessMode 2) "selected"}}>write</option>
348+
<option value="unset" {{Iif (eq $unitBuiltinUncyclo.EveryoneAccessMode -1) "selected"}}>{{ctx.Locale.Tr "settings.permission_unset"}}</option>
349+
<option value="read" {{Iif (eq $unitBuiltinUncyclo.EveryoneAccessMode 1) "selected"}}>{{ctx.Locale.Tr "settings.permission_read"}}</option>
350+
<option value="write" {{Iif (eq $unitBuiltinUncyclo.EveryoneAccessMode 2) "selected"}}>{{ctx.Locale.Tr "settings.permission_write"}}</option>
351351
</select>
352352
</div>
353353
<div class="field">

tests/integration/api_team_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func TestAPITeam(t *testing.T) {
126126
apiTeam = api.Team{}
127127
DecodeJSON(t, resp, &apiTeam)
128128
checkTeamResponse(t, "ReadTeam1", &apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
129-
teamRead.AccessMode.String(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
129+
teamRead.AccessMode.ToString(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
130130

131131
// Delete team.
132132
req = NewRequestf(t, "DELETE", "/api/v1/teams/%d", teamID).
@@ -197,7 +197,7 @@ func TestAPITeam(t *testing.T) {
197197
DecodeJSON(t, resp, &apiTeam)
198198
assert.NoError(t, teamRead.LoadUnits(db.DefaultContext))
199199
checkTeamResponse(t, "ReadTeam2", &apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
200-
teamRead.AccessMode.String(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
200+
teamRead.AccessMode.ToString(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
201201

202202
// Delete team.
203203
req = NewRequestf(t, "DELETE", "/api/v1/teams/%d", teamID).

0 commit comments

Comments
 (0)