Class: JunglePath::Authorization::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/jungle_path/authorization/filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(roles, schema_models_hash, role_permissions = {}, role_restrictions = {}, role_schema_filters = {}, schema_filters = {}) ⇒ Filter

Returns a new instance of Filter.



7
8
9
10
11
12
# File 'lib/jungle_path/authorization/filter.rb', line 7

def initialize roles, schema_models_hash, role_permissions={}, role_restrictions={}, role_schema_filters={}, schema_filters={}
	@schema_models_hash = schema_models_hash
	@role_permissions = role_permissions
	@role_restrictions = role_restrictions
	eat_roles roles, role_permissions, role_restrictions, role_schema_filters, schema_filters
end

Instance Method Details

#has_access?(permission_restriction_name) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/jungle_path/authorization/filter.rb', line 24

def has_access? permission_restriction_name
	has_permission?(permission_restriction_name) and !(has_restriction?(permission_restriction_name))
end

#has_permission?(permission_name) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
32
33
34
35
# File 'lib/jungle_path/authorization/filter.rb', line 28

def has_permission? permission_name
	puts "@permissions.keys #{@permissions.keys}."
	puts "has_permission? #{permission_name}."
	symbol = permission_name.to_sym
	has_it = symbol == @permissions[symbol]
	has_it = :root == @permissions[:root] unless has_it
	has_it
end

#has_restriction?(restriction_name) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
# File 'lib/jungle_path/authorization/filter.rb', line 37

def has_restriction? restriction_name
	symbol = restriction_name.to_sym
	symbol == @restrictions[symbol]
end

#is_root?Boolean

Returns:

  • (Boolean)


14
15
16
17
# File 'lib/jungle_path/authorization/filter.rb', line 14

def is_root?
	@is_root = has_permission?(:root) if @is_root == nil
	@is_root
end

#is_user_admin?Boolean

Returns:

  • (Boolean)


19
20
21
22
# File 'lib/jungle_path/authorization/filter.rb', line 19

def is_user_admin?
	@is_user_admin = has_permission?(:auth_admin) if @is_user_admin == nil
	@is_user_admin
end

#permissionsObject



42
43
44
# File 'lib/jungle_path/authorization/filter.rb', line 42

def permissions
	@permissions.keys
end

#restrictionsObject



46
47
48
# File 'lib/jungle_path/authorization/filter.rb', line 46

def restrictions
	@restrictions.keys
end

#rolesObject



59
60
61
# File 'lib/jungle_path/authorization/filter.rb', line 59

def roles
	@roles[0..-1]
end

#root_rolesObject



63
64
65
66
67
68
69
70
# File 'lib/jungle_path/authorization/filter.rb', line 63

def root_roles
	return @root_roles if @root_roles
	@root_roles = {}
	@role_permissions.each do |k, v|
		@root_roles[k] = k if v.include? :root
	end
	@root_roles
end

#schema_filterObject



50
51
52
# File 'lib/jungle_path/authorization/filter.rb', line 50

def schema_filter
	@schema_filter
end

#schema_node_treeObject



54
55
56
57
# File 'lib/jungle_path/authorization/filter.rb', line 54

def schema_node_tree
	@schema_node_tree = JunglePath::Gen::SchemaTree.gen_node_tree(@schema_models_hash, JunglePath::Gen::SchemaTree::Filter.new(@schema_filter)) unless @schema_node_tree
	@schema_node_tree
end

#to_sObject



72
73
74
# File 'lib/jungle_path/authorization/filter.rb', line 72

def to_s
	"roles: #{@roles}\npermissions: #{@permissions}\nrestrictions: #{@restrictions}\nschema_filter: #{@schema_filter}"
end