2014-11-21 23:43:04 +08:00
|
|
|
package models
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
ROLE_READ_WRITE = "ReadWrite"
|
|
|
|
|
ROLE_READ = "Read"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type RoleType string
|
|
|
|
|
|
|
|
|
|
type Collaborator struct {
|
|
|
|
|
Id int64
|
|
|
|
|
AccountId int64 `xorm:"not null unique(uix_account_id_for_account_id)"` // The account that can use another account
|
|
|
|
|
Role RoleType `xorm:"not null"` // Permission type
|
|
|
|
|
ForAccountId int64 `xorm:"not null unique(uix_account_id_for_account_id)"` // The account being given access to
|
|
|
|
|
Created time.Time
|
|
|
|
|
Updated time.Time
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// read only projection
|
|
|
|
|
type CollaboratorInfo struct {
|
|
|
|
|
AccountId int64
|
|
|
|
|
Role string
|
|
|
|
|
Email string
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-24 15:04:41 +08:00
|
|
|
func NewCollaborator(accountId int64, forAccountId int64, role RoleType) *Collaborator {
|
2014-11-21 23:43:04 +08:00
|
|
|
return &Collaborator{
|
|
|
|
|
AccountId: accountId,
|
|
|
|
|
ForAccountId: forAccountId,
|
2014-11-24 15:04:41 +08:00
|
|
|
Role: role,
|
2014-11-21 23:43:04 +08:00
|
|
|
Created: time.Now(),
|
|
|
|
|
Updated: time.Now(),
|
|
|
|
|
}
|
|
|
|
|
}
|