From 9c451daf30b1c8163309dc223693913a73b70afc Mon Sep 17 00:00:00 2001 From: konrad Date: Thu, 26 Jul 2018 09:58:48 +0200 Subject: [PATCH] Added method to delete a user from a team --- models/team_members_delete.go | 7 +++++++ models/team_members_rights.go | 13 ++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 models/team_members_delete.go diff --git a/models/team_members_delete.go b/models/team_members_delete.go new file mode 100644 index 000000000..9dd740641 --- /dev/null +++ b/models/team_members_delete.go @@ -0,0 +1,7 @@ +package models + +// Delete deletes a user from a team +func (tm *TeamMember) Delete() (err error) { + _, err = x.Where("team_id = ? AND user_id = ?", tm.TeamID, tm.UserID).Delete(&TeamMember{}) + return +} diff --git a/models/team_members_rights.go b/models/team_members_rights.go index 8a7370834..6f23fc489 100644 --- a/models/team_members_rights.go +++ b/models/team_members_rights.go @@ -1,9 +1,20 @@ package models +// CanCreate checks if the user can add a new tem member func (tm *TeamMember) CanCreate(user *User) bool { + return tm.IsAdmin(user) +} + +// CanDelete checks if the user can delete a new team member +func (tm *TeamMember) CanDelete(user *User) bool { + return tm.IsAdmin(user) +} + +// IsAdmin checks if the user is team admin +func (tm *TeamMember) IsAdmin(user *User) bool { // A user can add a member to a team if he is admin of that team exists, _ := x.Where("user_id = ? AND team_id = ? AND admin = ?", user.ID, tm.TeamID, true). Get(&TeamMember{}) return exists -} \ No newline at end of file +}