Sha256: b65f20700f82c2c2f835c5e646a5d57277353e90b55b6f0804004dddda7378a3
Contents?: true
Size: 650 Bytes
Versions: 6
Compression:
Stored size: 650 Bytes
Contents
module RocketJobMissionControl class Authorization ROLES = %i[admin editor operator manager dirmon user view] attr_accessor *ROLES attr_accessor :login def initialize(roles: [], login: nil) @login = login return if roles.blank? invalid_roles = roles - ROLES raise(ArgumentError, "Invalid Roles Supplied: #{invalid_roles.inspect}") unless invalid_roles.empty? roles.each { |r| inherit_less_privilege_roles(r) } end def inherit_less_privilege_roles(role) index = ROLES.index(role) roles = ROLES[index..-1] roles.each { |role| public_send("#{role}=", true) } end end end
Version data entries
6 entries across 6 versions & 1 rubygems