Started working on namespaces
This commit is contained in:
parent
ac0a50663d
commit
bd2bf24813
2 changed files with 48 additions and 1 deletions
|
@ -7,6 +7,8 @@ type Namespace struct {
|
||||||
Description string `xorm:"varchar(700) autoincr not null" json:"description"`
|
Description string `xorm:"varchar(700) autoincr not null" json:"description"`
|
||||||
OwnerID int64 `xorm:"int(11) autoincr not null" json:"owner_id"`
|
OwnerID int64 `xorm:"int(11) autoincr not null" json:"owner_id"`
|
||||||
|
|
||||||
|
Owner User `xorm:"-"`
|
||||||
|
|
||||||
Created int64 `xorm:"created" json:"created"`
|
Created int64 `xorm:"created" json:"created"`
|
||||||
Updated int64 `xorm:"updated" json:"updated"`
|
Updated int64 `xorm:"updated" json:"updated"`
|
||||||
}
|
}
|
||||||
|
@ -32,4 +34,39 @@ const (
|
||||||
NamespaceRightWrite
|
NamespaceRightWrite
|
||||||
// Can manage a namespace, can do everything
|
// Can manage a namespace, can do everything
|
||||||
NamespaceRightAdmin
|
NamespaceRightAdmin
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (user User) IsNamespaceAdmin(namespace Namespace) (ok bool, err error) {
|
||||||
|
// Owners always have admin rights
|
||||||
|
if user.ID == namespace.Owner.ID {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if that user is in a team which has admin rights to that namespace
|
||||||
|
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateOrUpdateNamespace does what it says
|
||||||
|
func CreateOrUpdateNamespace(namespace *Namespace) (err error) {
|
||||||
|
// Check if the User exists
|
||||||
|
_, _, err = GetUserByID(namespace.Owner.ID)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if namespace.ID == 0 {
|
||||||
|
_, err = x.Insert(namespace)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_, err = x.ID(namespace.ID).Update(namespace)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
|
@ -63,3 +63,13 @@ type TeamList struct {
|
||||||
func (TeamList) TableName() string {
|
func (TeamList) TableName() string {
|
||||||
return "team_list"
|
return "team_list"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func GetAllTeamsByNamespaceID(id int64) (teams []*Team, err error) {
|
||||||
|
err = x.Table("teams").
|
||||||
|
Join("INNER", "team_namespaces", "teams.id = team_id").
|
||||||
|
Where("teams.namespace_id = ?", id).
|
||||||
|
Find(teams)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
Loading…
Reference in a new issue