updated todo + cleanup

This commit is contained in:
konrad 2018-07-17 08:16:04 +02:00 committed by kolaente
parent a46901397b
commit 2e3c10be13
No known key found for this signature in database
GPG key ID: F40E70337AB24C9B
3 changed files with 20 additions and 21 deletions

View file

@ -130,6 +130,17 @@ Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
?? Wenn man Listen mit nem Nutzer teilt, wird ein Team für diesen Nutzer erstellt, falls er nicht bereits in einem ist.
*Routen*
* [ ] `namespaces/:id/teams`
* [ ] Create
* [ ] ReadAll
* [ ] Delete
* [ ] `lists/:id/teams`
* [ ] Create
* [ ] ReadAll
* [ ] Delete
#### v0.3
* [ ] Labels

View file

@ -12,24 +12,12 @@ const (
const (
// Can read lists in a namespace
NamespaceRightRead NamespaceRight = iota
// Cat write items in a namespace like lists and todo items
// Can write items in a namespace like lists and todo items. Cannot create new lists.
NamespaceRightWrite
// Can manage a namespace, can do everything
NamespaceRightAdmin
)
// IsNamespaceAdmin returns whether the usre has admin rights in a namespace
func (user *User) IsNamespaceAdmin(namespace *Namespace) (err error) {
// Owners always have admin rights
if user.ID == namespace.Owner.ID {
return nil
}
// Check if that user is in a team which has admin rights to that namespace
return ErrUserNeedsToBeNamespaceAdmin{UserID: user.ID, NamespaceID: namespace.ID}
}
// IsAdmin returns true or false if the user is admin on that namespace or not
func (n *Namespace) IsAdmin(user *User) bool {

View file

@ -62,10 +62,10 @@ type TeamUser struct {
// TeamNamespace defines the relationship between a Team and a Namespace
type TeamNamespace struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
TeamID int64 `xorm:"int(11) not null" json:"team_id"`
NamespaceID int64 `xorm:"int(11) not null" json:"namespace_id"`
Rights []int64 `xorm:"varchar(250)" json:"rights"`
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
TeamID int64 `xorm:"int(11) not null" json:"team_id"`
NamespaceID int64 `xorm:"int(11) not null" json:"namespace_id"`
Rights NamespaceRight `xorm:"int(11)" json:"rights"`
Created int64 `xorm:"created" json:"created"`
Updated int64 `xorm:"updated" json:"updated"`
@ -78,10 +78,10 @@ func (TeamNamespace) TableName() string {
// TeamList defines the relation between a team and a list
type TeamList struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
TeamID int64 `xorm:"int(11) not null" json:"team_id"`
ListID int64 `xorm:"int(11) not null" json:"list_id"`
Rights []int64 `xorm:"varchar(250)" json:"rights"`
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
TeamID int64 `xorm:"int(11) not null" json:"team_id"`
ListID int64 `xorm:"int(11) not null" json:"list_id"`
Rights int `xorm:"varchar(250)" json:"rights"`
Created int64 `xorm:"created" json:"created"`
Updated int64 `xorm:"updated" json:"updated"`