class

Acl::Groups

Inherits YAML::Serializable / Lockable / Reference / Object

The Groups is used to handle a set of uniq Group, by name.

Constructors

new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
Source
new(file : String)
acls = Acl::Groups.new
g1 = Acl::Group.new(name: "user", default: Acl::Perm::Read, permissions: {"/tmp/protected" => Acl::Perm::None})
g2 = Acl::Group.new(name: "admin", default: Acl::Perm::Write)
acls.add g1
acls.add g2
Source
new(*, __context_for_yaml_serializable ctx : YAML::ParseContext, __node_for_yaml_serializable node : YAML::Nodes::Node)
Source

Class methods

read(file : String)
Source

Instance methods

[](group : String) : Acl::Group
Source
[]?(group : String) : Acl::Group | Nil
Source
[]?(group : Acl::Group) : Acl::Group | Nil
Source
add(group : String)
Source
add(group : Acl::Group)
Source
add_permissions_to(path : String, groups : Array(String), acl : Acl::Perm)
Source
clear_permissions_of(path : String, acl : Acl::Perm)
Source
clear_permissions_of(path : String)
Source
delete(group : String)
Source
delete(group : Acl::Group)
Source
file
Source
file=(file : String)
Source
group_exists?(group : String) : Bool
Source
group_exists?(group : Acl::Groum) : Bool
Source
groups
Source
groups=(groups : Hash(String, Acl::Group))
Source
groups_having_any_access_to(path : String, acl_min : Acl::Perm, not_more : Bool = false) : Array(String)
Source
groups_having_direct_access_to(path : String, acl_min : Acl::Perm, not_more : Bool = false) : Array(String)

List the groups having at least the permission acl_min on a path

Source
load!

Read the file and erase the content, skip if the file does not exists

Source
permitted?(entity : Acl::Entity, path : String, access : Acl::Perm)

Check if an Entity has a group with the required permissions to operate.

acls = Groups.new...user = User.new...acls.permitted?(user, "/my/path", Perm::Read)
Source
save!
Source