1
0

Added basic definitions for namespaces and teams

This commit is contained in:
kolaente
2018-06-14 16:14:49 +02:00
parent 6398134eef
commit ac0a50663d
4 changed files with 110 additions and 2 deletions

View File

@ -35,6 +35,11 @@ func init() {
new(User),
new(List),
new(ListItem),
new(Team),
new(TeamMember),
new(TeamList),
new(TeamNamespace),
new(Namespace),
)
}

35
models/namespaces.go Normal file
View File

@ -0,0 +1,35 @@
package models
// Namespace holds informations about a namespace
type Namespace struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
Name string `xorm:"varchar(250) autoincr not null" json:"name"`
Description string `xorm:"varchar(700) autoincr not null" json:"description"`
OwnerID int64 `xorm:"int(11) autoincr not null" json:"owner_id"`
Created int64 `xorm:"created" json:"created"`
Updated int64 `xorm:"updated" json:"updated"`
}
// TableName makes beautiful table names
func (Namespace) TableName() string {
return "namespaces"
}
// NamespaceRight defines the rights teams can have for namespaces
type NamespaceRight int
// define unknown namespace right
const (
NamespaceRightUnknown = -1
)
// Enumerate all the namespace rights
const (
// Can read lists in a namespace
NamespaceRightRead NamespaceRight = iota
// Cat write items in a namespace like lists and todo items
NamespaceRightWrite
// Can manage a namespace, can do everything
NamespaceRightAdmin
)

65
models/teams.go Normal file
View File

@ -0,0 +1,65 @@
package models
// Team holds a team object
type Team struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
Name string `xorm:"varchar(250) not null" json:"name"`
Description string `xorm:"varchar(250)" json:"description"`
Rights []int64 `xorm:"varchar(250)" json:"rights"`
CreatedByID int64 `xorm:"int(11) not null" json:"-"`
Created int64 `xorm:"created" json:"created"`
Updated int64 `xorm:"updated" json:"updated"`
CreatedBy User `json:"created_by"`
}
// TableName makes beautiful table names
func (Team) TableName() string {
return "teams"
}
// TeamMember defines the relationship between a user and a team
type TeamMember struct {
ID int64 `xorm:"int(11) autoincr not null unique pk"`
TeamID int64 `xorm:"int(11) autoincr not null"`
UserID int64 `xorm:"int(11) autoincr not null"`
Created int64 `xorm:"created"`
Updated int64 `xorm:"updated"`
}
// TableName makes beautiful table names
func (TeamMember) TableName() string {
return "team_members"
}
// TeamNamespaces defines the relationship between a Team and a Namespace
type TeamNamespace struct {
ID int64 `xorm:"int(11) autoincr not null unique pk"`
TeamID int64 `xorm:"int(11) autoincr not null"`
NamespaceID int64 `xorm:"int(11) autoincr not null"`
Created int64 `xorm:"created"`
Updated int64 `xorm:"updated"`
}
// TableName makes beautiful table names
func (TeamNamespace) TableName() string {
return "team_namespaces"
}
// TeamList defines the relation between a team and a list
type TeamList struct {
ID int64 `xorm:"int(11) autoincr not null unique pk"`
TeamID int64 `xorm:"int(11) autoincr not null"`
ListID int64 `xorm:"int(11) autoincr not null"`
Created int64 `xorm:"created"`
Updated int64 `xorm:"updated"`
}
// TableName makes beautiful table names
func (TeamList) TableName() string {
return "team_list"
}