@@ -11,7 +11,6 @@ import (
1111 "code.gitea.io/gitea/models/perm"
1212 "code.gitea.io/gitea/models/unit"
1313 user_model "code.gitea.io/gitea/models/user"
14- "code.gitea.io/gitea/modules/log"
1514 "code.gitea.io/gitea/modules/setting"
1615 "code.gitea.io/gitea/modules/structs"
1716)
@@ -31,29 +30,11 @@ type Organization struct {
3130}
3231
3332func (org * Organization ) CanWriteUnit (ctx * Context , unitType unit.Type ) bool {
34- if ctx .Doer == nil {
35- return false
36- }
37- return org .UnitPermission (ctx , ctx .Doer .ID , unitType ) >= perm .AccessModeWrite
33+ return org .Organization .UnitPermission (ctx , ctx .Doer , unitType ) >= perm .AccessModeWrite
3834}
3935
40- func (org * Organization ) UnitPermission (ctx * Context , doerID int64 , unitType unit.Type ) perm.AccessMode {
41- if doerID > 0 {
42- teams , err := organization .GetUserOrgTeams (ctx , org .Organization .ID , doerID )
43- if err != nil {
44- log .Error ("GetUserOrgTeams: %v" , err )
45- return perm .AccessModeNone
46- }
47- if len (teams ) > 0 {
48- return teams .UnitMaxAccess (unitType )
49- }
50- }
51-
52- if org .Organization .Visibility == structs .VisibleTypePublic {
53- return perm .AccessModeRead
54- }
55-
56- return perm .AccessModeNone
36+ func (org * Organization ) CanReadUnit (ctx * Context , unitType unit.Type ) bool {
37+ return org .Organization .UnitPermission (ctx , ctx .Doer , unitType ) >= perm .AccessModeRead
5738}
5839
5940func GetOrganizationByParams (ctx * Context ) {
@@ -170,6 +151,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
170151 }
171152 ctx .Data ["IsOrganizationOwner" ] = ctx .Org .IsOwner
172153 ctx .Data ["IsOrganizationMember" ] = ctx .Org .IsMember
154+ ctx .Data ["IsProjectEnabled" ] = true
173155 ctx .Data ["IsPackageEnabled" ] = setting .Packages .Enabled
174156 ctx .Data ["IsRepoIndexerEnabled" ] = setting .Indexer .RepoIndexerEnabled
175157 ctx .Data ["IsPublicMember" ] = func (uid int64 ) bool {
@@ -245,6 +227,10 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
245227 return
246228 }
247229 }
230+
231+ ctx .Data ["CanReadProjects" ] = ctx .Org .CanReadUnit (ctx , unit .TypeProjects )
232+ ctx .Data ["CanReadPackages" ] = ctx .Org .CanReadUnit (ctx , unit .TypePackages )
233+ ctx .Data ["CanReadCode" ] = ctx .Org .CanReadUnit (ctx , unit .TypeCode )
248234}
249235
250236// OrgAssignment returns a middleware to handle organization assignment
0 commit comments