mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-27 06:29:53 -06:00
39 lines
656 B
Go
39 lines
656 B
Go
package core
|
|
|
|
import (
|
|
"github.com/jackc/pgx/v5"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
type UserPermissions = int32
|
|
|
|
const (
|
|
PermissionUsersInvite = UserPermissions(0x10)
|
|
PermissionUsersGrant = UserPermissions(0x20)
|
|
PermissionFilesAll = UserPermissions(0x100)
|
|
)
|
|
|
|
type User struct {
|
|
ID int32
|
|
Email string
|
|
Name string
|
|
Home pgtype.UUID
|
|
Permissions UserPermissions
|
|
}
|
|
|
|
func (u User) hasPermission(p UserPermissions) bool {
|
|
return u.Permissions&p != 0
|
|
}
|
|
|
|
func scanUser(row pgx.CollectableRow) (User, error) {
|
|
var u User
|
|
err := row.Scan(
|
|
&u.ID,
|
|
&u.Email,
|
|
&u.Name,
|
|
&u.Home,
|
|
&u.Permissions,
|
|
)
|
|
return u, err
|
|
}
|