diff options
Diffstat (limited to 'system/acl.go')
| -rw-r--r-- | system/acl.go | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/system/acl.go b/system/acl.go index 4052d011..b49b3df4 100644 --- a/system/acl.go +++ b/system/acl.go @@ -9,33 +9,33 @@ import ( "hakurei.app/system/acl" ) -// UpdatePerm appends [ACLUpdateOp] to [I] with the [Process] criteria. +// UpdatePerm calls UpdatePermType with the [Process] criteria. func (sys *I) UpdatePerm(path string, perms ...acl.Perm) *I { sys.UpdatePermType(Process, path, perms...) return sys } -// UpdatePermType appends [ACLUpdateOp] to [I]. +// UpdatePermType maintains [acl.Perms] on a file until its [Enablement] is no longer satisfied. func (sys *I) UpdatePermType(et Enablement, path string, perms ...acl.Perm) *I { - sys.ops = append(sys.ops, &ACLUpdateOp{et, path, perms}) + sys.ops = append(sys.ops, &aclUpdateOp{et, path, perms}) return sys } -// ACLUpdateOp maintains [acl.Perms] on a file until its [Enablement] is no longer satisfied. -type ACLUpdateOp struct { +// aclUpdateOp implements [I.UpdatePermType]. +type aclUpdateOp struct { et Enablement path string perms acl.Perms } -func (a *ACLUpdateOp) Type() Enablement { return a.et } +func (a *aclUpdateOp) Type() Enablement { return a.et } -func (a *ACLUpdateOp) apply(sys *I) error { +func (a *aclUpdateOp) apply(sys *I) error { sys.verbose("applying ACL", a) return newOpError("acl", sys.aclUpdate(a.path, sys.uid, a.perms...), false) } -func (a *ACLUpdateOp) revert(sys *I, ec *Criteria) error { +func (a *aclUpdateOp) revert(sys *I, ec *Criteria) error { if ec.hasType(a.Type()) { sys.verbose("stripping ACL", a) err := sys.aclUpdate(a.path, sys.uid) @@ -51,17 +51,17 @@ func (a *ACLUpdateOp) revert(sys *I, ec *Criteria) error { } } -func (a *ACLUpdateOp) Is(o Op) bool { - target, ok := o.(*ACLUpdateOp) +func (a *aclUpdateOp) Is(o Op) bool { + target, ok := o.(*aclUpdateOp) return ok && a != nil && target != nil && a.et == target.et && a.path == target.path && slices.Equal(a.perms, target.perms) } -func (a *ACLUpdateOp) Path() string { return a.path } +func (a *aclUpdateOp) Path() string { return a.path } -func (a *ACLUpdateOp) String() string { +func (a *aclUpdateOp) String() string { return fmt.Sprintf("%s type: %s path: %q", a.perms, TypeString(a.et), a.path) } |
