|
|
|
@ -19,14 +19,6 @@ var ( |
|
|
|
|
ErrAccountNotFound = errors.New("Account not found") |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
type CollaboratorLink struct { |
|
|
|
|
AccountId int64 |
|
|
|
|
Role string |
|
|
|
|
Email string |
|
|
|
|
ModifiedOn time.Time |
|
|
|
|
CreatedOn time.Time |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type OtherAccount struct { |
|
|
|
|
Id int64 |
|
|
|
|
Email string |
|
|
|
@ -45,44 +37,6 @@ type Account struct { |
|
|
|
|
Company string |
|
|
|
|
NextDashboardId int |
|
|
|
|
UsingAccountId int64 |
|
|
|
|
Collaborators []CollaboratorLink `xorm:"-"` |
|
|
|
|
Created time.Time `xorm:"CREATED"` |
|
|
|
|
Updated time.Time `xorm:"UPDATED"` |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (account *Account) AddCollaborator(newCollaborator *Account) error { |
|
|
|
|
for _, collaborator := range account.Collaborators { |
|
|
|
|
if collaborator.AccountId == newCollaborator.Id { |
|
|
|
|
return errors.New("Collaborator already exists") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
account.Collaborators = append(account.Collaborators, CollaboratorLink{ |
|
|
|
|
AccountId: newCollaborator.Id, |
|
|
|
|
Email: newCollaborator.Email, |
|
|
|
|
Role: "admin", |
|
|
|
|
CreatedOn: time.Now(), |
|
|
|
|
ModifiedOn: time.Now(), |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (account *Account) RemoveCollaborator(accountId int64) { |
|
|
|
|
list := account.Collaborators |
|
|
|
|
for i, collaborator := range list { |
|
|
|
|
if collaborator.AccountId == accountId { |
|
|
|
|
account.Collaborators = append(list[:i], list[i+1:]...) |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (account *Account) HasCollaborator(accountId int64) bool { |
|
|
|
|
for _, collaborator := range account.Collaborators { |
|
|
|
|
if collaborator.AccountId == accountId { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return false |
|
|
|
|
Created time.Time `xorm:"CREATED"` |
|
|
|
|
Updated time.Time `xorm:"UPDATED"` |
|
|
|
|
} |
|
|
|
|