lib/cbac.rb in cbac-0.6.10 vs lib/cbac.rb in cbac-0.7.0

- old
+ new

@@ -45,18 +45,22 @@ # TODO following code is not yet tested def check_privilege_set(privilege_set, context = {}) check_privilege_sets([PrivilegeSet.sets[privilege_set.to_sym]], context) end + def permitted_for_generic_role?(privilege_set, context) + Cbac::GenericRole.joins(:generic_role_members, :permissions).exists?( + 'cbac_memberships.user_id' => current_user(context), + 'cbac_permissions.privilege_set_id' => privilege_set.id + ) + end + # Check the given privilege_sets def check_privilege_sets(privilege_sets, context = {}) # Check the generic roles return true if privilege_sets.any? { |set| - Cbac::GenericRole.joins(:generic_role_members, :permissions).exists?( - 'cbac_memberships.user_id' => current_user, - 'cbac_permissions.privilege_set_id' => set.id - ) + permitted_for_generic_role?(set, context) } # Check the context roles Get the permissions privilege_sets.collect do |privilege_set| Cbac::Permission.where(privilege_set_id: privilege_set.id, generic_role_id: 0) @@ -87,11 +91,15 @@ def unauthorized render :text => "You are not authorized to perform this action", :status => 401 end # Default implementation of the current_user method - def current_user_id - session[:currentuser].to_i + def current_user_id(context = {}) + context[:cbac_user].to_i + end + + def current_user(context = {}) + current_user_id(context) end # Load controller classes and methods def load_controller_methods begin