1
0

Implemented team delete method

This commit is contained in:
konrad
2018-07-16 08:18:15 +02:00
committed by kolaente
parent 4cf0cd233c
commit 8a06db5351
3 changed files with 51 additions and 0 deletions

32
models/teams_delete.go Normal file
View File

@ -0,0 +1,32 @@
package models
func (t *Team) Delete(id int64) (err error) {
// Check if the team exists
_, err = GetTeamByID(id)
if err != nil {
return
}
// Delete the team
_, err = x.ID(id).Delete(&Team{})
if err != nil {
return
}
// Delete team members
_, err = x.Where("team_id = ?", id).Delete(&TeamMember{})
if err != nil {
return
}
// Delete team <-> namespace relations
_, err = x.Where("team_id = ?", id).Delete(&TeamNamespace{})
if err != nil {
return
}
// Delete team <-> lists relations
_, err = x.Where("team_id = ?", id).Delete(&TeamList{})
return
}

View File

@ -17,3 +17,18 @@ func (t *Team) CanUpdate(user *User, id int64) bool {
return exists
}
// CanDelete
func (t *Team) CanDelete(user *User, id int64) bool {
t.ID = id
return t.IsAdmin(user)
}
// IsAdmin
func (t *Team) IsAdmin(user *User) bool {
exists, _ := x.Where("team_id = ?", t.ID).
And("user_id = ?", user.ID).
And("is_admin = ?", true).
Get(&TeamMember{})
return exists
}