summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/extensions.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index a94065ab0..94ce76ec7 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -386,12 +386,15 @@ def load_standard_extensions(ext_mgr, logger, path, package, ext_list=None):
def extension_authorizer(api_name, extension_name):
- def authorize(context, target=None):
+ def authorize(context, target=None, action=None):
if target is None:
target = {'project_id': context.project_id,
'user_id': context.user_id}
- action = '%s_extension:%s' % (api_name, extension_name)
- nova.policy.enforce(context, action, target)
+ if action is None:
+ act = '%s_extension:%s' % (api_name, extension_name)
+ else:
+ act = '%s_extension:%s:%s' % (api_name, extension_name, action)
+ nova.policy.enforce(context, act, target)
return authorize