Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
e1e0b5f9
Commit
e1e0b5f9
authored
Feb 09, 2018
by
Marcus Efraimsson
Committed by
Torkel Ödegaard
Feb 09, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
teams: use orgId in all team and team member operations (#10862)
Also fixes issue in org users tests for postgres
parent
111b3229
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
58 additions
and
47 deletions
+58
-47
pkg/api/api.go
+7
-7
pkg/api/team.go
+4
-3
pkg/api/team_members.go
+2
-2
pkg/models/team.go
+5
-1
pkg/models/team_member.go
+2
-0
pkg/services/guardian/guardian.go
+1
-1
pkg/services/sqlstore/org_users.go
+1
-1
pkg/services/sqlstore/team.go
+17
-16
pkg/services/sqlstore/team_test.go
+19
-16
No files found.
pkg/api/api.go
View file @
e1e0b5f9
...
@@ -150,13 +150,13 @@ func (hs *HttpServer) registerRoutes() {
...
@@ -150,13 +150,13 @@ func (hs *HttpServer) registerRoutes() {
apiRoute
.
Group
(
"/teams"
,
func
(
teamsRoute
RouteRegister
)
{
apiRoute
.
Group
(
"/teams"
,
func
(
teamsRoute
RouteRegister
)
{
teamsRoute
.
Get
(
"/:teamId"
,
wrap
(
GetTeamById
))
teamsRoute
.
Get
(
"/:teamId"
,
wrap
(
GetTeamById
))
teamsRoute
.
Get
(
"/search"
,
wrap
(
SearchTeams
))
teamsRoute
.
Get
(
"/search"
,
wrap
(
SearchTeams
))
teamsRoute
.
Post
(
"/"
,
quota
(
"teams"
),
reqOrgAdmin
,
bind
(
m
.
CreateTeamCommand
{}),
wrap
(
CreateTeam
))
teamsRoute
.
Post
(
"/"
,
quota
(
"teams"
),
bind
(
m
.
CreateTeamCommand
{}),
wrap
(
CreateTeam
))
teamsRoute
.
Put
(
"/:teamId"
,
reqOrgAdmin
,
bind
(
m
.
UpdateTeamCommand
{}),
wrap
(
UpdateTeam
))
teamsRoute
.
Put
(
"/:teamId"
,
bind
(
m
.
UpdateTeamCommand
{}),
wrap
(
UpdateTeam
))
teamsRoute
.
Delete
(
"/:teamId"
,
reqOrgAdmin
,
wrap
(
DeleteTeamById
))
teamsRoute
.
Delete
(
"/:teamId"
,
wrap
(
DeleteTeamById
))
teamsRoute
.
Get
(
"/:teamId/members"
,
reqOrgAdmin
,
wrap
(
GetTeamMembers
))
teamsRoute
.
Get
(
"/:teamId/members"
,
wrap
(
GetTeamMembers
))
teamsRoute
.
Post
(
"/:teamId/members"
,
reqOrgAdmin
,
quota
(
"teams"
),
bind
(
m
.
AddTeamMemberCommand
{}),
wrap
(
AddTeamMember
))
teamsRoute
.
Post
(
"/:teamId/members"
,
quota
(
"teams"
),
bind
(
m
.
AddTeamMemberCommand
{}),
wrap
(
AddTeamMember
))
teamsRoute
.
Delete
(
"/:teamId/members/:userId"
,
reqOrgAdmin
,
wrap
(
RemoveTeamMember
))
teamsRoute
.
Delete
(
"/:teamId/members/:userId"
,
wrap
(
RemoveTeamMember
))
})
}
,
reqOrgAdmin
)
// org information available to all users.
// org information available to all users.
apiRoute
.
Group
(
"/org"
,
func
(
orgRoute
RouteRegister
)
{
apiRoute
.
Group
(
"/org"
,
func
(
orgRoute
RouteRegister
)
{
...
...
pkg/api/team.go
View file @
e1e0b5f9
...
@@ -26,6 +26,7 @@ func CreateTeam(c *middleware.Context, cmd m.CreateTeamCommand) Response {
...
@@ -26,6 +26,7 @@ func CreateTeam(c *middleware.Context, cmd m.CreateTeamCommand) Response {
// PUT /api/teams/:teamId
// PUT /api/teams/:teamId
func
UpdateTeam
(
c
*
middleware
.
Context
,
cmd
m
.
UpdateTeamCommand
)
Response
{
func
UpdateTeam
(
c
*
middleware
.
Context
,
cmd
m
.
UpdateTeamCommand
)
Response
{
cmd
.
OrgId
=
c
.
OrgId
cmd
.
Id
=
c
.
ParamsInt64
(
":teamId"
)
cmd
.
Id
=
c
.
ParamsInt64
(
":teamId"
)
if
err
:=
bus
.
Dispatch
(
&
cmd
);
err
!=
nil
{
if
err
:=
bus
.
Dispatch
(
&
cmd
);
err
!=
nil
{
if
err
==
m
.
ErrTeamNameTaken
{
if
err
==
m
.
ErrTeamNameTaken
{
...
@@ -39,7 +40,7 @@ func UpdateTeam(c *middleware.Context, cmd m.UpdateTeamCommand) Response {
...
@@ -39,7 +40,7 @@ func UpdateTeam(c *middleware.Context, cmd m.UpdateTeamCommand) Response {
// DELETE /api/teams/:teamId
// DELETE /api/teams/:teamId
func
DeleteTeamById
(
c
*
middleware
.
Context
)
Response
{
func
DeleteTeamById
(
c
*
middleware
.
Context
)
Response
{
if
err
:=
bus
.
Dispatch
(
&
m
.
DeleteTeamCommand
{
Id
:
c
.
ParamsInt64
(
":teamId"
)});
err
!=
nil
{
if
err
:=
bus
.
Dispatch
(
&
m
.
DeleteTeamCommand
{
OrgId
:
c
.
OrgId
,
Id
:
c
.
ParamsInt64
(
":teamId"
)});
err
!=
nil
{
if
err
==
m
.
ErrTeamNotFound
{
if
err
==
m
.
ErrTeamNotFound
{
return
ApiError
(
404
,
"Failed to delete Team. ID not found"
,
nil
)
return
ApiError
(
404
,
"Failed to delete Team. ID not found"
,
nil
)
}
}
...
@@ -60,11 +61,11 @@ func SearchTeams(c *middleware.Context) Response {
...
@@ -60,11 +61,11 @@ func SearchTeams(c *middleware.Context) Response {
}
}
query
:=
m
.
SearchTeamsQuery
{
query
:=
m
.
SearchTeamsQuery
{
OrgId
:
c
.
OrgId
,
Query
:
c
.
Query
(
"query"
),
Query
:
c
.
Query
(
"query"
),
Name
:
c
.
Query
(
"name"
),
Name
:
c
.
Query
(
"name"
),
Page
:
page
,
Page
:
page
,
Limit
:
perPage
,
Limit
:
perPage
,
OrgId
:
c
.
OrgId
,
}
}
if
err
:=
bus
.
Dispatch
(
&
query
);
err
!=
nil
{
if
err
:=
bus
.
Dispatch
(
&
query
);
err
!=
nil
{
...
@@ -83,7 +84,7 @@ func SearchTeams(c *middleware.Context) Response {
...
@@ -83,7 +84,7 @@ func SearchTeams(c *middleware.Context) Response {
// GET /api/teams/:teamId
// GET /api/teams/:teamId
func
GetTeamById
(
c
*
middleware
.
Context
)
Response
{
func
GetTeamById
(
c
*
middleware
.
Context
)
Response
{
query
:=
m
.
GetTeamByIdQuery
{
Id
:
c
.
ParamsInt64
(
":teamId"
)}
query
:=
m
.
GetTeamByIdQuery
{
OrgId
:
c
.
OrgId
,
Id
:
c
.
ParamsInt64
(
":teamId"
)}
if
err
:=
bus
.
Dispatch
(
&
query
);
err
!=
nil
{
if
err
:=
bus
.
Dispatch
(
&
query
);
err
!=
nil
{
if
err
==
m
.
ErrTeamNotFound
{
if
err
==
m
.
ErrTeamNotFound
{
...
...
pkg/api/team_members.go
View file @
e1e0b5f9
...
@@ -10,7 +10,7 @@ import (
...
@@ -10,7 +10,7 @@ import (
// GET /api/teams/:teamId/members
// GET /api/teams/:teamId/members
func
GetTeamMembers
(
c
*
middleware
.
Context
)
Response
{
func
GetTeamMembers
(
c
*
middleware
.
Context
)
Response
{
query
:=
m
.
GetTeamMembersQuery
{
TeamId
:
c
.
ParamsInt64
(
":teamId"
)}
query
:=
m
.
GetTeamMembersQuery
{
OrgId
:
c
.
OrgId
,
TeamId
:
c
.
ParamsInt64
(
":teamId"
)}
if
err
:=
bus
.
Dispatch
(
&
query
);
err
!=
nil
{
if
err
:=
bus
.
Dispatch
(
&
query
);
err
!=
nil
{
return
ApiError
(
500
,
"Failed to get Team Members"
,
err
)
return
ApiError
(
500
,
"Failed to get Team Members"
,
err
)
...
@@ -42,7 +42,7 @@ func AddTeamMember(c *middleware.Context, cmd m.AddTeamMemberCommand) Response {
...
@@ -42,7 +42,7 @@ func AddTeamMember(c *middleware.Context, cmd m.AddTeamMemberCommand) Response {
// DELETE /api/teams/:teamId/members/:userId
// DELETE /api/teams/:teamId/members/:userId
func
RemoveTeamMember
(
c
*
middleware
.
Context
)
Response
{
func
RemoveTeamMember
(
c
*
middleware
.
Context
)
Response
{
if
err
:=
bus
.
Dispatch
(
&
m
.
RemoveTeamMemberCommand
{
TeamId
:
c
.
ParamsInt64
(
":teamId"
),
UserId
:
c
.
ParamsInt64
(
":userId"
)});
err
!=
nil
{
if
err
:=
bus
.
Dispatch
(
&
m
.
RemoveTeamMemberCommand
{
OrgId
:
c
.
OrgId
,
TeamId
:
c
.
ParamsInt64
(
":teamId"
),
UserId
:
c
.
ParamsInt64
(
":userId"
)});
err
!=
nil
{
return
ApiError
(
500
,
"Failed to remove Member from Team"
,
err
)
return
ApiError
(
500
,
"Failed to remove Member from Team"
,
err
)
}
}
return
ApiSuccess
(
"Team Member removed"
)
return
ApiSuccess
(
"Team Member removed"
)
...
...
pkg/models/team.go
View file @
e1e0b5f9
...
@@ -37,18 +37,22 @@ type UpdateTeamCommand struct {
...
@@ -37,18 +37,22 @@ type UpdateTeamCommand struct {
Id
int64
Id
int64
Name
string
Name
string
Email
string
Email
string
OrgId
int64
`json:"-"`
}
}
type
DeleteTeamCommand
struct
{
type
DeleteTeamCommand
struct
{
Id
int64
OrgId
int64
Id
int64
}
}
type
GetTeamByIdQuery
struct
{
type
GetTeamByIdQuery
struct
{
OrgId
int64
Id
int64
Id
int64
Result
*
Team
Result
*
Team
}
}
type
GetTeamsByUserQuery
struct
{
type
GetTeamsByUserQuery
struct
{
OrgId
int64
UserId
int64
`json:"userId"`
UserId
int64
`json:"userId"`
Result
[]
*
Team
`json:"teams"`
Result
[]
*
Team
`json:"teams"`
}
}
...
...
pkg/models/team_member.go
View file @
e1e0b5f9
...
@@ -31,6 +31,7 @@ type AddTeamMemberCommand struct {
...
@@ -31,6 +31,7 @@ type AddTeamMemberCommand struct {
}
}
type
RemoveTeamMemberCommand
struct
{
type
RemoveTeamMemberCommand
struct
{
OrgId
int64
`json:"-"`
UserId
int64
UserId
int64
TeamId
int64
TeamId
int64
}
}
...
@@ -39,6 +40,7 @@ type RemoveTeamMemberCommand struct {
...
@@ -39,6 +40,7 @@ type RemoveTeamMemberCommand struct {
// QUERIES
// QUERIES
type
GetTeamMembersQuery
struct
{
type
GetTeamMembersQuery
struct
{
OrgId
int64
TeamId
int64
TeamId
int64
Result
[]
*
TeamMemberDTO
Result
[]
*
TeamMemberDTO
}
}
...
...
pkg/services/guardian/guardian.go
View file @
e1e0b5f9
...
@@ -160,7 +160,7 @@ func (g *DashboardGuardian) getTeams() ([]*m.Team, error) {
...
@@ -160,7 +160,7 @@ func (g *DashboardGuardian) getTeams() ([]*m.Team, error) {
return
g
.
groups
,
nil
return
g
.
groups
,
nil
}
}
query
:=
m
.
GetTeamsByUserQuery
{
UserId
:
g
.
user
.
UserId
}
query
:=
m
.
GetTeamsByUserQuery
{
OrgId
:
g
.
orgId
,
UserId
:
g
.
user
.
UserId
}
err
:=
bus
.
Dispatch
(
&
query
)
err
:=
bus
.
Dispatch
(
&
query
)
g
.
groups
=
query
.
Result
g
.
groups
=
query
.
Result
...
...
pkg/services/sqlstore/org_users.go
View file @
e1e0b5f9
...
@@ -82,7 +82,7 @@ func GetOrgUsers(query *m.GetOrgUsersQuery) error {
...
@@ -82,7 +82,7 @@ func GetOrgUsers(query *m.GetOrgUsersQuery) error {
if
query
.
Query
!=
""
{
if
query
.
Query
!=
""
{
queryWithWildcards
:=
"%"
+
query
.
Query
+
"%"
queryWithWildcards
:=
"%"
+
query
.
Query
+
"%"
whereConditions
=
append
(
whereConditions
,
"(
user.email "
+
dialect
.
LikeStr
()
+
" ? OR user.name "
+
dialect
.
LikeStr
()
+
" ? OR user.
login "
+
dialect
.
LikeStr
()
+
" ?)"
)
whereConditions
=
append
(
whereConditions
,
"(
email "
+
dialect
.
LikeStr
()
+
" ? OR name "
+
dialect
.
LikeStr
()
+
" ? OR
login "
+
dialect
.
LikeStr
()
+
" ?)"
)
whereParams
=
append
(
whereParams
,
queryWithWildcards
,
queryWithWildcards
,
queryWithWildcards
)
whereParams
=
append
(
whereParams
,
queryWithWildcards
,
queryWithWildcards
,
queryWithWildcards
)
}
}
...
...
pkg/services/sqlstore/team.go
View file @
e1e0b5f9
...
@@ -25,7 +25,7 @@ func init() {
...
@@ -25,7 +25,7 @@ func init() {
func
CreateTeam
(
cmd
*
m
.
CreateTeamCommand
)
error
{
func
CreateTeam
(
cmd
*
m
.
CreateTeamCommand
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
if
isNameTaken
,
err
:=
isTeamNameTaken
(
cmd
.
Name
,
0
,
sess
);
err
!=
nil
{
if
isNameTaken
,
err
:=
isTeamNameTaken
(
cmd
.
OrgId
,
cmd
.
Name
,
0
,
sess
);
err
!=
nil
{
return
err
return
err
}
else
if
isNameTaken
{
}
else
if
isNameTaken
{
return
m
.
ErrTeamNameTaken
return
m
.
ErrTeamNameTaken
...
@@ -50,7 +50,7 @@ func CreateTeam(cmd *m.CreateTeamCommand) error {
...
@@ -50,7 +50,7 @@ func CreateTeam(cmd *m.CreateTeamCommand) error {
func
UpdateTeam
(
cmd
*
m
.
UpdateTeamCommand
)
error
{
func
UpdateTeam
(
cmd
*
m
.
UpdateTeamCommand
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
if
isNameTaken
,
err
:=
isTeamNameTaken
(
cmd
.
Name
,
cmd
.
Id
,
sess
);
err
!=
nil
{
if
isNameTaken
,
err
:=
isTeamNameTaken
(
cmd
.
OrgId
,
cmd
.
Name
,
cmd
.
Id
,
sess
);
err
!=
nil
{
return
err
return
err
}
else
if
isNameTaken
{
}
else
if
isNameTaken
{
return
m
.
ErrTeamNameTaken
return
m
.
ErrTeamNameTaken
...
@@ -80,20 +80,20 @@ func UpdateTeam(cmd *m.UpdateTeamCommand) error {
...
@@ -80,20 +80,20 @@ func UpdateTeam(cmd *m.UpdateTeamCommand) error {
func
DeleteTeam
(
cmd
*
m
.
DeleteTeamCommand
)
error
{
func
DeleteTeam
(
cmd
*
m
.
DeleteTeamCommand
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
if
res
,
err
:=
sess
.
Query
(
"SELECT 1 from team WHERE
id=?"
,
cmd
.
Id
);
err
!=
nil
{
if
res
,
err
:=
sess
.
Query
(
"SELECT 1 from team WHERE
org_id=? and id=?"
,
cmd
.
OrgId
,
cmd
.
Id
);
err
!=
nil
{
return
err
return
err
}
else
if
len
(
res
)
!=
1
{
}
else
if
len
(
res
)
!=
1
{
return
m
.
ErrTeamNotFound
return
m
.
ErrTeamNotFound
}
}
deletes
:=
[]
string
{
deletes
:=
[]
string
{
"DELETE FROM team_member WHERE team_id = ?"
,
"DELETE FROM team_member WHERE
org_id=? and
team_id = ?"
,
"DELETE FROM team WHERE id = ?"
,
"DELETE FROM team WHERE
org_id=? and
id = ?"
,
"DELETE FROM dashboard_acl WHERE team_id = ?"
,
"DELETE FROM dashboard_acl WHERE
org_id=? and
team_id = ?"
,
}
}
for
_
,
sql
:=
range
deletes
{
for
_
,
sql
:=
range
deletes
{
_
,
err
:=
sess
.
Exec
(
sql
,
cmd
.
Id
)
_
,
err
:=
sess
.
Exec
(
sql
,
cmd
.
OrgId
,
cmd
.
Id
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -102,9 +102,9 @@ func DeleteTeam(cmd *m.DeleteTeamCommand) error {
...
@@ -102,9 +102,9 @@ func DeleteTeam(cmd *m.DeleteTeamCommand) error {
})
})
}
}
func
isTeamNameTaken
(
name
string
,
existingId
int64
,
sess
*
DBSession
)
(
bool
,
error
)
{
func
isTeamNameTaken
(
orgId
int64
,
name
string
,
existingId
int64
,
sess
*
DBSession
)
(
bool
,
error
)
{
var
team
m
.
Team
var
team
m
.
Team
exists
,
err
:=
sess
.
Where
(
"
name=?"
,
name
)
.
Get
(
&
team
)
exists
,
err
:=
sess
.
Where
(
"
org_id=? and name=?"
,
orgId
,
name
)
.
Get
(
&
team
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
nil
return
false
,
nil
...
@@ -128,6 +128,7 @@ func SearchTeams(query *m.SearchTeamsQuery) error {
...
@@ -128,6 +128,7 @@ func SearchTeams(query *m.SearchTeamsQuery) error {
sql
.
WriteString
(
`select
sql
.
WriteString
(
`select
team.id as id,
team.id as id,
team.org_id,
team.name as name,
team.name as name,
team.email as email,
team.email as email,
(select count(*) from team_member where team_member.team_id = team.id) as member_count
(select count(*) from team_member where team_member.team_id = team.id) as member_count
...
@@ -176,7 +177,7 @@ func SearchTeams(query *m.SearchTeamsQuery) error {
...
@@ -176,7 +177,7 @@ func SearchTeams(query *m.SearchTeamsQuery) error {
func
GetTeamById
(
query
*
m
.
GetTeamByIdQuery
)
error
{
func
GetTeamById
(
query
*
m
.
GetTeamByIdQuery
)
error
{
var
team
m
.
Team
var
team
m
.
Team
exists
,
err
:=
x
.
Id
(
query
.
Id
)
.
Get
(
&
team
)
exists
,
err
:=
x
.
Where
(
"org_id=? and id=?"
,
query
.
OrgId
,
query
.
Id
)
.
Get
(
&
team
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -194,7 +195,7 @@ func GetTeamsByUser(query *m.GetTeamsByUserQuery) error {
...
@@ -194,7 +195,7 @@ func GetTeamsByUser(query *m.GetTeamsByUserQuery) error {
sess
:=
x
.
Table
(
"team"
)
sess
:=
x
.
Table
(
"team"
)
sess
.
Join
(
"INNER"
,
"team_member"
,
"team.id=team_member.team_id"
)
sess
.
Join
(
"INNER"
,
"team_member"
,
"team.id=team_member.team_id"
)
sess
.
Where
(
"team
_member.user_id=?"
,
query
.
UserId
)
sess
.
Where
(
"team
.org_id=? and team_member.user_id=?"
,
query
.
OrgId
,
query
.
UserId
)
err
:=
sess
.
Find
(
&
query
.
Result
)
err
:=
sess
.
Find
(
&
query
.
Result
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -206,13 +207,13 @@ func GetTeamsByUser(query *m.GetTeamsByUserQuery) error {
...
@@ -206,13 +207,13 @@ func GetTeamsByUser(query *m.GetTeamsByUserQuery) error {
func
AddTeamMember
(
cmd
*
m
.
AddTeamMemberCommand
)
error
{
func
AddTeamMember
(
cmd
*
m
.
AddTeamMemberCommand
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
if
res
,
err
:=
sess
.
Query
(
"SELECT 1 from team_member WHERE
team_id=? and user_id=?"
,
cmd
.
TeamId
,
cmd
.
UserId
);
err
!=
nil
{
if
res
,
err
:=
sess
.
Query
(
"SELECT 1 from team_member WHERE
org_id=? and team_id=? and user_id=?"
,
cmd
.
OrgId
,
cmd
.
TeamId
,
cmd
.
UserId
);
err
!=
nil
{
return
err
return
err
}
else
if
len
(
res
)
==
1
{
}
else
if
len
(
res
)
==
1
{
return
m
.
ErrTeamMemberAlreadyAdded
return
m
.
ErrTeamMemberAlreadyAdded
}
}
if
res
,
err
:=
sess
.
Query
(
"SELECT 1 from team WHERE
id=?"
,
cmd
.
TeamId
);
err
!=
nil
{
if
res
,
err
:=
sess
.
Query
(
"SELECT 1 from team WHERE
org_id=? and id=?"
,
cmd
.
OrgId
,
cmd
.
TeamId
);
err
!=
nil
{
return
err
return
err
}
else
if
len
(
res
)
!=
1
{
}
else
if
len
(
res
)
!=
1
{
return
m
.
ErrTeamNotFound
return
m
.
ErrTeamNotFound
...
@@ -233,8 +234,8 @@ func AddTeamMember(cmd *m.AddTeamMemberCommand) error {
...
@@ -233,8 +234,8 @@ func AddTeamMember(cmd *m.AddTeamMemberCommand) error {
func
RemoveTeamMember
(
cmd
*
m
.
RemoveTeamMemberCommand
)
error
{
func
RemoveTeamMember
(
cmd
*
m
.
RemoveTeamMemberCommand
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
return
inTransaction
(
func
(
sess
*
DBSession
)
error
{
var
rawSql
=
"DELETE FROM team_member WHERE team_id=? and user_id=?"
var
rawSql
=
"DELETE FROM team_member WHERE
org_id=? and
team_id=? and user_id=?"
_
,
err
:=
sess
.
Exec
(
rawSql
,
cmd
.
TeamId
,
cmd
.
UserId
)
_
,
err
:=
sess
.
Exec
(
rawSql
,
cmd
.
OrgId
,
cmd
.
TeamId
,
cmd
.
UserId
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -247,7 +248,7 @@ func GetTeamMembers(query *m.GetTeamMembersQuery) error {
...
@@ -247,7 +248,7 @@ func GetTeamMembers(query *m.GetTeamMembersQuery) error {
query
.
Result
=
make
([]
*
m
.
TeamMemberDTO
,
0
)
query
.
Result
=
make
([]
*
m
.
TeamMemberDTO
,
0
)
sess
:=
x
.
Table
(
"team_member"
)
sess
:=
x
.
Table
(
"team_member"
)
sess
.
Join
(
"INNER"
,
"user"
,
fmt
.
Sprintf
(
"team_member.user_id=%s.id"
,
x
.
Dialect
()
.
Quote
(
"user"
)))
sess
.
Join
(
"INNER"
,
"user"
,
fmt
.
Sprintf
(
"team_member.user_id=%s.id"
,
x
.
Dialect
()
.
Quote
(
"user"
)))
sess
.
Where
(
"team_member.
team_id=?"
,
query
.
TeamId
)
sess
.
Where
(
"team_member.
org_id=? and team_member.team_id=?"
,
query
.
OrgId
,
query
.
TeamId
)
sess
.
Cols
(
"user.org_id"
,
"team_member.team_id"
,
"team_member.user_id"
,
"user.email"
,
"user.login"
)
sess
.
Cols
(
"user.org_id"
,
"team_member.team_id"
,
"team_member.user_id"
,
"user.email"
,
"user.login"
)
sess
.
Asc
(
"user.login"
,
"user.email"
)
sess
.
Asc
(
"user.login"
,
"user.email"
)
...
...
pkg/services/sqlstore/team_test.go
View file @
e1e0b5f9
...
@@ -27,8 +27,9 @@ func TestTeamCommandsAndQueries(t *testing.T) {
...
@@ -27,8 +27,9 @@ func TestTeamCommandsAndQueries(t *testing.T) {
userIds
=
append
(
userIds
,
userCmd
.
Result
.
Id
)
userIds
=
append
(
userIds
,
userCmd
.
Result
.
Id
)
}
}
group1
:=
m
.
CreateTeamCommand
{
Name
:
"group1 name"
,
Email
:
"test1@test.com"
}
var
testOrgId
int64
=
1
group2
:=
m
.
CreateTeamCommand
{
Name
:
"group2 name"
,
Email
:
"test2@test.com"
}
group1
:=
m
.
CreateTeamCommand
{
OrgId
:
testOrgId
,
Name
:
"group1 name"
,
Email
:
"test1@test.com"
}
group2
:=
m
.
CreateTeamCommand
{
OrgId
:
testOrgId
,
Name
:
"group2 name"
,
Email
:
"test2@test.com"
}
err
:=
CreateTeam
(
&
group1
)
err
:=
CreateTeam
(
&
group1
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
...
@@ -36,7 +37,7 @@ func TestTeamCommandsAndQueries(t *testing.T) {
...
@@ -36,7 +37,7 @@ func TestTeamCommandsAndQueries(t *testing.T) {
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
Convey
(
"Should be able to create teams and add users"
,
func
()
{
Convey
(
"Should be able to create teams and add users"
,
func
()
{
query
:=
&
m
.
SearchTeamsQuery
{
Name
:
"group1 name"
,
Page
:
1
,
Limit
:
10
}
query
:=
&
m
.
SearchTeamsQuery
{
OrgId
:
testOrgId
,
Name
:
"group1 name"
,
Page
:
1
,
Limit
:
10
}
err
=
SearchTeams
(
query
)
err
=
SearchTeams
(
query
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
So
(
query
.
Page
,
ShouldEqual
,
1
)
So
(
query
.
Page
,
ShouldEqual
,
1
)
...
@@ -44,25 +45,27 @@ func TestTeamCommandsAndQueries(t *testing.T) {
...
@@ -44,25 +45,27 @@ func TestTeamCommandsAndQueries(t *testing.T) {
team1
:=
query
.
Result
.
Teams
[
0
]
team1
:=
query
.
Result
.
Teams
[
0
]
So
(
team1
.
Name
,
ShouldEqual
,
"group1 name"
)
So
(
team1
.
Name
,
ShouldEqual
,
"group1 name"
)
So
(
team1
.
Email
,
ShouldEqual
,
"test1@test.com"
)
So
(
team1
.
Email
,
ShouldEqual
,
"test1@test.com"
)
So
(
team1
.
OrgId
,
ShouldEqual
,
testOrgId
)
err
=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
1
,
TeamId
:
team1
.
Id
,
UserId
:
userIds
[
0
]})
err
=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
testOrgId
,
TeamId
:
team1
.
Id
,
UserId
:
userIds
[
0
]})
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
q1
:=
&
m
.
GetTeamMembersQuery
{
TeamId
:
team1
.
Id
}
q1
:=
&
m
.
GetTeamMembersQuery
{
OrgId
:
testOrgId
,
TeamId
:
team1
.
Id
}
err
=
GetTeamMembers
(
q1
)
err
=
GetTeamMembers
(
q1
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
So
(
q1
.
Result
[
0
]
.
TeamId
,
ShouldEqual
,
team1
.
Id
)
So
(
q1
.
Result
[
0
]
.
TeamId
,
ShouldEqual
,
team1
.
Id
)
So
(
q1
.
Result
[
0
]
.
Login
,
ShouldEqual
,
"loginuser0"
)
So
(
q1
.
Result
[
0
]
.
Login
,
ShouldEqual
,
"loginuser0"
)
So
(
q1
.
Result
[
0
]
.
OrgId
,
ShouldEqual
,
testOrgId
)
})
})
Convey
(
"Should be able to search for teams"
,
func
()
{
Convey
(
"Should be able to search for teams"
,
func
()
{
query
:=
&
m
.
SearchTeamsQuery
{
Query
:
"group"
,
Page
:
1
}
query
:=
&
m
.
SearchTeamsQuery
{
OrgId
:
testOrgId
,
Query
:
"group"
,
Page
:
1
}
err
=
SearchTeams
(
query
)
err
=
SearchTeams
(
query
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
So
(
len
(
query
.
Result
.
Teams
),
ShouldEqual
,
2
)
So
(
len
(
query
.
Result
.
Teams
),
ShouldEqual
,
2
)
So
(
query
.
Result
.
TotalCount
,
ShouldEqual
,
2
)
So
(
query
.
Result
.
TotalCount
,
ShouldEqual
,
2
)
query2
:=
&
m
.
SearchTeamsQuery
{
Query
:
""
}
query2
:=
&
m
.
SearchTeamsQuery
{
OrgId
:
testOrgId
,
Query
:
""
}
err
=
SearchTeams
(
query2
)
err
=
SearchTeams
(
query2
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
So
(
len
(
query2
.
Result
.
Teams
),
ShouldEqual
,
2
)
So
(
len
(
query2
.
Result
.
Teams
),
ShouldEqual
,
2
)
...
@@ -70,9 +73,9 @@ func TestTeamCommandsAndQueries(t *testing.T) {
...
@@ -70,9 +73,9 @@ func TestTeamCommandsAndQueries(t *testing.T) {
Convey
(
"Should be able to return all teams a user is member of"
,
func
()
{
Convey
(
"Should be able to return all teams a user is member of"
,
func
()
{
groupId
:=
group2
.
Result
.
Id
groupId
:=
group2
.
Result
.
Id
err
:=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
1
,
TeamId
:
groupId
,
UserId
:
userIds
[
0
]})
err
:=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
testOrgId
,
TeamId
:
groupId
,
UserId
:
userIds
[
0
]})
query
:=
&
m
.
GetTeamsByUserQuery
{
UserId
:
userIds
[
0
]}
query
:=
&
m
.
GetTeamsByUserQuery
{
OrgId
:
testOrgId
,
UserId
:
userIds
[
0
]}
err
=
GetTeamsByUser
(
query
)
err
=
GetTeamsByUser
(
query
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
So
(
len
(
query
.
Result
),
ShouldEqual
,
1
)
So
(
len
(
query
.
Result
),
ShouldEqual
,
1
)
...
@@ -81,7 +84,7 @@ func TestTeamCommandsAndQueries(t *testing.T) {
...
@@ -81,7 +84,7 @@ func TestTeamCommandsAndQueries(t *testing.T) {
})
})
Convey
(
"Should be able to remove users from a group"
,
func
()
{
Convey
(
"Should be able to remove users from a group"
,
func
()
{
err
=
RemoveTeamMember
(
&
m
.
RemoveTeamMemberCommand
{
TeamId
:
group1
.
Result
.
Id
,
UserId
:
userIds
[
0
]})
err
=
RemoveTeamMember
(
&
m
.
RemoveTeamMemberCommand
{
OrgId
:
testOrgId
,
TeamId
:
group1
.
Result
.
Id
,
UserId
:
userIds
[
0
]})
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
q1
:=
&
m
.
GetTeamMembersQuery
{
TeamId
:
group1
.
Result
.
Id
}
q1
:=
&
m
.
GetTeamMembersQuery
{
TeamId
:
group1
.
Result
.
Id
}
...
@@ -92,20 +95,20 @@ func TestTeamCommandsAndQueries(t *testing.T) {
...
@@ -92,20 +95,20 @@ func TestTeamCommandsAndQueries(t *testing.T) {
Convey
(
"Should be able to remove a group with users and permissions"
,
func
()
{
Convey
(
"Should be able to remove a group with users and permissions"
,
func
()
{
groupId
:=
group2
.
Result
.
Id
groupId
:=
group2
.
Result
.
Id
err
:=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
1
,
TeamId
:
groupId
,
UserId
:
userIds
[
1
]})
err
:=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
testOrgId
,
TeamId
:
groupId
,
UserId
:
userIds
[
1
]})
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
err
=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
1
,
TeamId
:
groupId
,
UserId
:
userIds
[
2
]})
err
=
AddTeamMember
(
&
m
.
AddTeamMemberCommand
{
OrgId
:
testOrgId
,
TeamId
:
groupId
,
UserId
:
userIds
[
2
]})
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
err
=
SetDashboardAcl
(
&
m
.
SetDashboardAclCommand
{
DashboardId
:
1
,
OrgId
:
1
,
Permission
:
m
.
PERMISSION_EDIT
,
TeamId
:
groupId
})
err
=
SetDashboardAcl
(
&
m
.
SetDashboardAclCommand
{
DashboardId
:
1
,
OrgId
:
testOrgId
,
Permission
:
m
.
PERMISSION_EDIT
,
TeamId
:
groupId
})
err
=
DeleteTeam
(
&
m
.
DeleteTeamCommand
{
Id
:
groupId
})
err
=
DeleteTeam
(
&
m
.
DeleteTeamCommand
{
OrgId
:
testOrgId
,
Id
:
groupId
})
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
query
:=
&
m
.
GetTeamByIdQuery
{
Id
:
groupId
}
query
:=
&
m
.
GetTeamByIdQuery
{
OrgId
:
testOrgId
,
Id
:
groupId
}
err
=
GetTeamById
(
query
)
err
=
GetTeamById
(
query
)
So
(
err
,
ShouldEqual
,
m
.
ErrTeamNotFound
)
So
(
err
,
ShouldEqual
,
m
.
ErrTeamNotFound
)
permQuery
:=
&
m
.
GetDashboardAclInfoListQuery
{
DashboardId
:
1
,
OrgId
:
1
}
permQuery
:=
&
m
.
GetDashboardAclInfoListQuery
{
DashboardId
:
1
,
OrgId
:
testOrgId
}
err
=
GetDashboardAclInfoList
(
permQuery
)
err
=
GetDashboardAclInfoList
(
permQuery
)
So
(
err
,
ShouldBeNil
)
So
(
err
,
ShouldBeNil
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment