So to check 'provider_view' privilege for the "current object" then call as before: has_provider_view?
To check against a specific object then pass it in as a parameter: has_quota_modify?(pool) has_pool_view?(BasePortalObject.general_permission_scope Signed-off-by: Scott Seago <[email protected]> --- src/app/controllers/application_controller.rb | 4 ++-- src/app/services/application_service.rb | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/controllers/application_controller.rb b/src/app/controllers/application_controller.rb index 214eb2b..d7b135b 100644 --- a/src/app/controllers/application_controller.rb +++ b/src/app/controllers/application_controller.rb @@ -56,8 +56,8 @@ class ApplicationController < ActionController::Base perm_helper_string = "" Privilege::FULL_PRIVILEGE_LIST.each do |privilege| - perm_helper_string += "def has_#{privilege}?; " + - "check_privilege(\"#{privilege}\") end; " + perm_helper_string += "def has_#{privilege}?(o...@perm_obj); " + + "check_privilege(\"#{privilege}\", obj) end; " end master_helper_module.module_eval perm_helper_string diff --git a/src/app/services/application_service.rb b/src/app/services/application_service.rb index e2c45cb..f72f83d 100644 --- a/src/app/services/application_service.rb +++ b/src/app/services/application_service.rb @@ -40,14 +40,14 @@ module ApplicationService # @current_user must be defined - def check_privilege(privilege) - ((@perm_obj and @perm_obj.has_privilege(@current_user, privilege)) or + def check_privilege(privilege, perm_obj) + ((perm_obj and perm_obj.has_privilege(@current_user, privilege)) or BasePortalObject.general_permission_scope.has_privilege(@current_user, privilege)) end def authorized?(privilege, perm_obj=nil) @perm_obj = perm_obj - check_privilege(privilege) + check_privilege(privilege,@perm_obj) end def require_privilege(privilege, perm_obj=nil) unless authorized?(privilege, perm_obj) -- 1.6.2.5 _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel
