Help language development. Donate to The Perl Foundation
# Object::Permission Experimental method (and public attribute accessor,) level authorisation for Raku objects. ## Synopsis use Object::Permission; class Foo { has $.baz is authorised-by('baz'); method bar() is authorised-by('barbar') { ... } } # Object::Permission::User is a role, just use type pun $*AUTH-USER = Object::Permission::User.new(permissions => <barbar zub>); my $foo = Foo.new; $foo.bar(); # Executes okay say $foo.baz; # Throws X::NotAuthorised ## Description This is an experimental module to provide a rudimentary authorisation mechanism for classes whereby selected methods or public attribute accessors can require a named permission to execute, the permissions associated with the dynamic variable ```$*AUTH-USER``` being checked at invocation and an exception being thrown if the User object does not have the required permission. The intent is that ```$*AUTH-USER``` is initialised with an object of some class that does the role ```Object::Permission::User``` which populates the permissions as per the application logic. ## Installation Assuming you have a working Rakudo installation you should be able to install this with *zef* : # From the source directory zef install . # Remote installation zef install Object::Permission ## Support Suggestions/patches are welcomed via github at https://github.com/jonathanstowe/Object-Permission/issues ## Licence This is free software. Please see the [LICENCE](LICENCE) file in the distribution © Jonathan Stowe 2015, 2016, 2017, 2019, 2020