Skip to content

Commit 213fddb

Browse files
committed
check access mode when change collobrators
1 parent ae806c3 commit 213fddb

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

models/perm/access_mode.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,6 @@ func ParseAccessMode(permission string, allowed ...AccessMode) AccessMode {
6060
}
6161
return util.Iif(slices.Contains(allowed, m), m, AccessModeNone)
6262
}
63+
64+
// ErrInvalidAccessMode is returned when an invalid access mode is used
65+
var ErrInvalidAccessMode = util.NewInvalidArgumentErrorf("Invalid access mode")

services/repository/collaboration.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ import (
1818
)
1919

2020
func AddOrUpdateCollaborator(ctx context.Context, repo *repo_model.Repository, u *user_model.User, mode perm.AccessMode) error {
21+
// only allow valid access modes, read, write and admin
22+
if mode < perm.AccessModeRead || mode > perm.AccessModeAdmin {
23+
return perm.ErrInvalidAccessMode
24+
}
25+
2126
if err := repo.LoadOwner(ctx); err != nil {
2227
return err
2328
}

0 commit comments

Comments
 (0)