Authz.pm 431 B

12345678910111213141516171819
  1. package Trog::Authz;
  2. use strict;
  3. use warnings;
  4. no warnings 'experimental';
  5. use feature qw{signatures state};
  6. use constant 'valid_modules' => [ 'Default', 'Matrix' ];
  7. sub do_auth_for ($module, $params) {
  8. die "Invalid authorization class" if !grep { $module eq $_ } @{__PACKAGE__->valid_modules()};
  9. my $class = "Trog::Authz::$module";
  10. eval "require $class";
  11. die $@ if $@;
  12. return $class->new($params);
  13. }
  14. 1;