From c823ad5de7f1ce2da450b2a65902bcf236c2d113 Mon Sep 17 00:00:00 2001 From: Leonard Gram Date: Tue, 12 Mar 2019 17:24:18 +0100 Subject: [PATCH] team: uses PermissionType instead of int64 for permissions. --- pkg/api/team.go | 2 +- pkg/models/team_member.go | 20 ++++++++++---------- pkg/services/sqlstore/team.go | 1 + pkg/services/sqlstore/team_test.go | 8 ++++---- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/pkg/api/team.go b/pkg/api/team.go index 6d5753fdc90..ab853888f76 100644 --- a/pkg/api/team.go +++ b/pkg/api/team.go @@ -23,7 +23,7 @@ func (hs *HTTPServer) CreateTeam(c *m.ReqContext, cmd m.CreateTeamCommand) Respo UserId: c.SignedInUser.UserId, OrgId: cmd.OrgId, TeamId: cmd.Result.Id, - Permission: int64(m.PERMISSION_ADMIN), + Permission: m.PERMISSION_ADMIN, } if err := bus.Dispatch(&addMemberCmd); err != nil { diff --git a/pkg/models/team_member.go b/pkg/models/team_member.go index 0cc39b0f605..9b7c2aeb0a4 100644 --- a/pkg/models/team_member.go +++ b/pkg/models/team_member.go @@ -17,7 +17,7 @@ type TeamMember struct { TeamId int64 UserId int64 External bool - Permission int64 + Permission PermissionType Created time.Time Updated time.Time @@ -27,18 +27,18 @@ type TeamMember struct { // COMMANDS type AddTeamMemberCommand struct { - UserId int64 `json:"userId" binding:"Required"` - OrgId int64 `json:"-"` - TeamId int64 `json:"-"` - External bool `json:"-"` - Permission int64 `json:"-"` + UserId int64 `json:"userId" binding:"Required"` + OrgId int64 `json:"-"` + TeamId int64 `json:"-"` + External bool `json:"-"` + Permission PermissionType `json:"-"` } type UpdateTeamMemberCommand struct { - UserId int64 `json:"-"` - OrgId int64 `json:"-"` - TeamId int64 `json:"-"` - Permission int64 `json:"permission"` + UserId int64 `json:"-"` + OrgId int64 `json:"-"` + TeamId int64 `json:"-"` + Permission PermissionType `json:"permission"` } type RemoveTeamMemberCommand struct { diff --git a/pkg/services/sqlstore/team.go b/pkg/services/sqlstore/team.go index 3848adcc7dc..bf993a930f2 100644 --- a/pkg/services/sqlstore/team.go +++ b/pkg/services/sqlstore/team.go @@ -271,6 +271,7 @@ func UpdateTeamMember(cmd *m.UpdateTeamMemberCommand) error { return m.ErrTeamMemberNotFound } + // TODO: check to make sure that permission is a legal value member.Permission = cmd.Permission _, err = sess.Cols("permission").Where("org_id=? and team_id=? and user_id=?", cmd.OrgId, cmd.TeamId, cmd.UserId).Update(member) diff --git a/pkg/services/sqlstore/team_test.go b/pkg/services/sqlstore/team_test.go index ca5379bae65..ac357c57a53 100644 --- a/pkg/services/sqlstore/team_test.go +++ b/pkg/services/sqlstore/team_test.go @@ -91,7 +91,7 @@ func TestTeamCommandsAndQueries(t *testing.T) { UserId: userId, OrgId: testOrgId, TeamId: team.Id, - Permission: int64(m.PERMISSION_ADMIN), + Permission: m.PERMISSION_ADMIN, }) So(err, ShouldBeNil) @@ -107,7 +107,7 @@ func TestTeamCommandsAndQueries(t *testing.T) { UserId: 1, OrgId: testOrgId, TeamId: group1.Result.Id, - Permission: int64(m.PERMISSION_ADMIN), + Permission: m.PERMISSION_ADMIN, }) So(err, ShouldEqual, m.ErrTeamMemberNotFound) @@ -153,7 +153,7 @@ func TestTeamCommandsAndQueries(t *testing.T) { }) Convey("When ProtectLastAdmin is set to true", func() { - err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[0], Permission: int64(m.PERMISSION_ADMIN)}) + err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[0], Permission: m.PERMISSION_ADMIN}) So(err, ShouldBeNil) Convey("A user should not be able to remove the last admin", func() { @@ -162,7 +162,7 @@ func TestTeamCommandsAndQueries(t *testing.T) { }) Convey("A user should be able to remove an admin if there are other admins", func() { - err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[1], Permission: int64(m.PERMISSION_ADMIN)}) + err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[1], Permission: m.PERMISSION_ADMIN}) err = RemoveTeamMember(&m.RemoveTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[0], ProtectLastAdmin: true}) So(err, ShouldEqual, nil) })