On 03/29/2010 01:52 PM, Scott Seago wrote:
> 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)
>
ACK. Looks good.
-Mo
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel