master
DEV 2 years ago
parent 31a70f6659
commit 5e48ee326b

@ -55,6 +55,10 @@ func hasActorType (accept bool, actorType ActorType, actorsType []ActorType) boo
if !accept {
return false
}
// Si no hay ningun actor explicitamente definido, actorsType es nil o vacio se entiende que implicitamente esta
if len(actorsType) == 0 {
return true
}
for _,a := range actorsType {
if a == actorType {
return true

@ -0,0 +1,36 @@
// ------------------------------------------------------------------------
// 🚀 Project Active8
// 🔗 Active Thing (activething.com) git.activething.com/go
//
// File name condition.go
// ✍️ Created by DEV
// 📅 Modified 12/12/2024
//
// 🔒 Copyright 2024 activething.com
//
// 📜 LICENSE --------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ------------------------------------------------------------------------
package vigil
type (
Condition interface {
Evaluate (actorID ActorID, session Session) bool
}
)

@ -0,0 +1,35 @@
// ------------------------------------------------------------------------
// 🚀 Project Active8
// 🔗 Active Thing (activething.com) git.activething.com/go
//
// File name condition_type.go
// ✍️ Created by DEV
// 📅 Modified 12/12/2024
//
// 🔒 Copyright 2024 activething.com
//
// 📜 LICENSE --------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ------------------------------------------------------------------------
package vigil
const (
ConditionTypeGrantable ConditionType = iota
ConditionTypeDeniable
)
type ConditionType uint8

@ -27,11 +27,13 @@ package vigil
type (
Credential interface {
From () ActorID
IsGranted (session Session) bool
}
)
)

@ -28,11 +28,7 @@ package vigil
type (
Credentials struct {
For ActorID
List []Credential
}
Credentials []Condition
)

@ -24,12 +24,28 @@
package vigil
import (
"sync"
"time"
)
type (
Session struct {
Session struct {
mutex sync.RWMutex
started time.Time
SessionID uint64
vars map[string]any
}
)
)
func (s *Session) GetDate () time.Time {
return time.Now()
}

Loading…
Cancel
Save

Powered by TurnKey Linux.