30 lines
569 B
Go
30 lines
569 B
Go
package models
|
|
|
|
import (
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
Readable = iota + 1
|
|
Writable
|
|
)
|
|
|
|
type Access struct {
|
|
Id int64
|
|
UserName string `xorm:"unique(s)"`
|
|
RepoName string `xorm:"unique(s)"`
|
|
Mode int `xorm:"unique(s)"`
|
|
Created time.Time `xorm:"created"`
|
|
}
|
|
|
|
func AddAccess(access *Access) error {
|
|
_, err := orm.Insert(access)
|
|
return err
|
|
}
|
|
|
|
// if one user can read or write one repository
|
|
func HasAccess(userName, repoName, mode string) (bool, error) {
|
|
return orm.Get(&Access{0, strings.ToLower(userName), strings.ToLower(repoName), mode})
|
|
}
|