mirror of https://github.com/jetkvm/kvm.git
78 lines
2.8 KiB
Go
78 lines
2.8 KiB
Go
package kvm
|
|
|
|
import (
|
|
"github.com/jetkvm/kvm/internal/session"
|
|
)
|
|
|
|
type (
|
|
Permission = session.Permission
|
|
PermissionSet = session.PermissionSet
|
|
SessionMode = session.SessionMode
|
|
)
|
|
|
|
const (
|
|
SessionModePrimary = session.SessionModePrimary
|
|
SessionModeObserver = session.SessionModeObserver
|
|
SessionModeQueued = session.SessionModeQueued
|
|
SessionModePending = session.SessionModePending
|
|
|
|
PermissionVideoView = session.PermissionVideoView
|
|
PermissionKeyboardInput = session.PermissionKeyboardInput
|
|
PermissionMouseInput = session.PermissionMouseInput
|
|
PermissionPaste = session.PermissionPaste
|
|
PermissionSessionTransfer = session.PermissionSessionTransfer
|
|
PermissionSessionApprove = session.PermissionSessionApprove
|
|
PermissionSessionKick = session.PermissionSessionKick
|
|
PermissionSessionRequestPrimary = session.PermissionSessionRequestPrimary
|
|
PermissionSessionReleasePrimary = session.PermissionSessionReleasePrimary
|
|
PermissionSessionManage = session.PermissionSessionManage
|
|
PermissionPowerControl = session.PermissionPowerControl
|
|
PermissionUSBControl = session.PermissionUSBControl
|
|
PermissionMountMedia = session.PermissionMountMedia
|
|
PermissionUnmountMedia = session.PermissionUnmountMedia
|
|
PermissionMountList = session.PermissionMountList
|
|
PermissionExtensionManage = session.PermissionExtensionManage
|
|
PermissionExtensionATX = session.PermissionExtensionATX
|
|
PermissionExtensionDC = session.PermissionExtensionDC
|
|
PermissionExtensionSerial = session.PermissionExtensionSerial
|
|
PermissionExtensionWOL = session.PermissionExtensionWOL
|
|
PermissionTerminalAccess = session.PermissionTerminalAccess
|
|
PermissionSerialAccess = session.PermissionSerialAccess
|
|
PermissionSettingsRead = session.PermissionSettingsRead
|
|
PermissionSettingsWrite = session.PermissionSettingsWrite
|
|
PermissionSettingsAccess = session.PermissionSettingsAccess
|
|
PermissionSystemReboot = session.PermissionSystemReboot
|
|
PermissionSystemUpdate = session.PermissionSystemUpdate
|
|
PermissionSystemNetwork = session.PermissionSystemNetwork
|
|
)
|
|
|
|
var (
|
|
GetMethodPermission = session.GetMethodPermission
|
|
)
|
|
|
|
type GetPermissionsResponse = session.GetPermissionsResponse
|
|
|
|
func (s *Session) HasPermission(perm Permission) bool {
|
|
if s == nil {
|
|
return false
|
|
}
|
|
return session.CheckPermission(s.Mode, perm)
|
|
}
|
|
|
|
func (s *Session) GetPermissions() PermissionSet {
|
|
if s == nil {
|
|
return PermissionSet{}
|
|
}
|
|
return session.GetPermissionsForMode(s.Mode)
|
|
}
|
|
|
|
func RequirePermission(s *Session, perm Permission) error {
|
|
if s == nil {
|
|
return session.RequirePermissionForMode(SessionModePending, perm)
|
|
}
|
|
if !s.HasPermission(perm) {
|
|
return session.RequirePermissionForMode(s.Mode, perm)
|
|
}
|
|
return nil
|
|
}
|