Added basic definitions for namespaces and teams
This commit is contained in:
parent
6398134eef
commit
ac0a50663d
4 changed files with 110 additions and 2 deletions
|
@ -100,7 +100,7 @@ Oder noch Besser: Man kann globale Rechte pro Namespace vergeben, die man dann w
|
||||||
|
|
||||||
Rechte:
|
Rechte:
|
||||||
Erstmal nur 3: Lesen, Schreiben, Admin. Admins dürfen auch Namen ändern, Teams verwalten, neue Listen anlegen, etc.
|
Erstmal nur 3: Lesen, Schreiben, Admin. Admins dürfen auch Namen ändern, Teams verwalten, neue Listen anlegen, etc.
|
||||||
Owner haben immer Adminrechte.
|
Owner haben immer Adminrechte. Später sollte es auch möglich sein, den ownership an andere zur übertragen.s
|
||||||
|
|
||||||
Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
|
Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
|
||||||
|
|
||||||
|
@ -111,12 +111,15 @@ Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
|
||||||
* [ ] Ansehen
|
* [ ] Ansehen
|
||||||
* [ ] Bearbeiten
|
* [ ] Bearbeiten
|
||||||
* [ ] Löschen
|
* [ ] Löschen
|
||||||
|
|
||||||
|
Ein zu lösendes Problem: Wie regelt man die Berechtigungen um Teams zu verwalten?
|
||||||
|
|
||||||
* [ ] Namespaces
|
* [ ] Namespaces
|
||||||
* [ ] Erstellen
|
* [ ] Erstellen
|
||||||
* [ ] Ansehen
|
* [ ] Ansehen
|
||||||
* [ ] Bearbeiten
|
* [ ] Bearbeiten
|
||||||
* [ ] Löschen
|
* [ ] Löschen
|
||||||
* [ ] Teams hinzufügen
|
* [ ] Teams hinzufügen. Der Nutzer kriegt nur Teams angezeigt die er erstellt hat.
|
||||||
* [ ] Listen
|
* [ ] Listen
|
||||||
* [ ] Listen zu einem Namespace hinzufügen
|
* [ ] Listen zu einem Namespace hinzufügen
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,11 @@ func init() {
|
||||||
new(User),
|
new(User),
|
||||||
new(List),
|
new(List),
|
||||||
new(ListItem),
|
new(ListItem),
|
||||||
|
new(Team),
|
||||||
|
new(TeamMember),
|
||||||
|
new(TeamList),
|
||||||
|
new(TeamNamespace),
|
||||||
|
new(Namespace),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
35
models/namespaces.go
Normal file
35
models/namespaces.go
Normal 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
65
models/teams.go
Normal 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"
|
||||||
|
}
|
Loading…
Reference in a new issue