Skip to content
go-libfossil Artifact [043888f5dc]
Login

Artifact [043888f5dc]

Artifact 043888f5dc60e9420a3bf94116c86e756bd6897d46bfa53cd46c0b36d7af49f3:


package auth

import (
	"strings"
	"time"
)

type User struct {
	UID     int
	Login   string
	Cap     string
	CExpire time.Time // zero value = no expiry
	Info    string
	MTime   time.Time
}

func HasCapability(caps string, required byte) bool {
	return strings.IndexByte(caps, required) >= 0
}

func CanPush(caps string) bool        { return HasCapability(caps, 'i') }
func CanPull(caps string) bool        { return HasCapability(caps, 'o') }
func CanClone(caps string) bool       { return HasCapability(caps, 'g') }
func CanPushUV(caps string) bool      { return HasCapability(caps, 'y') }
func CanSyncPrivate(caps string) bool { return HasCapability(caps, 'x') }