diff --git a/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar.tpl b/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar.tpl
old mode 100644
new mode 100755
index 8636e97..729d028
--- a/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar.tpl
+++ b/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar.tpl
@@ -1,43 +1,21 @@
{def $current_node = fetch( 'content', 'node', hash( 'node_id', $current_node_id ) )
- $content_object = $current_node.object
- $can_edit_languages = $content_object.can_edit_languages
+ $content_object = $current_node.object }
+
+{if fetch( 'websitetoolbar', 'can_use', hash( 'class_id', $content_object.content_class.id ) )}
+
+{def $can_edit_languages = $content_object.can_edit_languages
$can_manage_location = fetch( 'content', 'access', hash( 'access', 'manage_locations', 'contentobject', $current_node ) )
$can_create_languages = $content_object.can_create_languages
$is_container = $content_object.content_class.is_container
$odf_display_classes = ezini( 'WebsiteToolbarSettings', 'ODFDisplayClasses', 'websitetoolbar.ini' )
$odf_hide_container_classes = ezini( 'WebsiteToolbarSettings', 'HideODFContainerClasses', 'websitetoolbar.ini' )
- $website_toolbar_access = fetch( 'user', 'has_access_to', hash( 'module', 'websitetoolbar', 'function', 'use' ) )
$odf_import_access = fetch( 'user', 'has_access_to', hash( 'module', 'ezodf', 'function', 'import' ) )
$odf_export_access = fetch( 'user', 'has_access_to', hash( 'module', 'ezodf', 'function', 'export' ) )
$content_object_language_code = ''
- $policies = fetch( 'user', 'user_role', hash( 'user_id', $current_user.contentobject_id ) )
- $available_for_current_class = false()
$custom_templates = ezini( 'CustomTemplateSettings', 'CustomTemplateList', 'websitetoolbar.ini' )
$include_in_view = ezini( 'CustomTemplateSettings', 'IncludeInView', 'websitetoolbar.ini' )
$node_hint = ': '|append( $current_node.name|wash(), ' [', $content_object.content_class.name|wash(), ']' ) }
- {foreach $policies as $policy}
- {if and( eq( $policy.moduleName, 'websitetoolbar' ),
- eq( $policy.functionName, 'use' ),
- is_array( $policy.limitation ) )}
- {if $policy.limitation[0].values_as_array|contains( $content_object.content_class.id )}
- {set $available_for_current_class = true()}
- {/if}
- {elseif or( and( eq( $policy.moduleName, '*' ),
- eq( $policy.functionName, '*' ),
- eq( $policy.limitation, '*' ) ),
- and( eq( $policy.moduleName, 'websitetoolbar' ),
- eq( $policy.functionName, '*' ),
- eq( $policy.limitation, '*' ) ),
- and( eq( $policy.moduleName, 'websitetoolbar' ),
- eq( $policy.functionName, 'use' ),
- eq( $policy.limitation, '*' ) ) )}
- {set $available_for_current_class = true()}
- {/if}
- {/foreach}
-
-{if and( $website_toolbar_access, $available_for_current_class )}
-
diff --git a/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_edit.tpl b/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_edit.tpl
old mode 100644
new mode 100755
index b709541..eef5e27
--- a/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_edit.tpl
+++ b/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_edit.tpl
@@ -1,3 +1,5 @@
+{if fetch( 'websitetoolbar', 'can_use', hash( 'class_id', $object.content_class.id ) )}
+
{def $custom_templates = ezini( 'CustomTemplateSettings', 'CustomTemplateList', 'websitetoolbar.ini' )
$include_in_view = ezini( 'CustomTemplateSettings', 'IncludeInView', 'websitetoolbar.ini' )}
@@ -70,4 +72,6 @@
{include uri='design:parts/websitetoolbar/floating_toolbar.tpl'}
-
\ No newline at end of file
+
+
+{/if}
diff --git a/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_versionview.tpl b/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_versionview.tpl
old mode 100644
new mode 100755
index de4cd6f..b3ebf7c
--- a/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_versionview.tpl
+++ b/packages/ezwt_extension/ezextension/ezwt/design/standard/templates/parts/website_toolbar_versionview.tpl
@@ -1,3 +1,5 @@
+{if fetch( 'websitetoolbar', 'can_use', hash( 'class_id', $object.content_class.id ) )}
+
{def $custom_templates = ezini( 'CustomTemplateSettings', 'CustomTemplateList', 'websitetoolbar.ini' )
$include_in_view = ezini( 'CustomTemplateSettings', 'IncludeInView', 'websitetoolbar.ini' )}
@@ -65,4 +67,6 @@
{include uri='design:parts/websitetoolbar/floating_toolbar.tpl'}
-
\ No newline at end of file
+
+
+{/if}
diff --git a/packages/ezwt_extension/ezextension/ezwt/modules/websitetoolbar/ezwtfunctioncollection.php b/packages/ezwt_extension/ezextension/ezwt/modules/websitetoolbar/ezwtfunctioncollection.php
new file mode 100755
index 0000000..a7d879e
--- /dev/null
+++ b/packages/ezwt_extension/ezextension/ezwt/modules/websitetoolbar/ezwtfunctioncollection.php
@@ -0,0 +1,54 @@
+hasAccessTo( 'websitetoolbar', 'use' );
+
+ if ( $userHasAccess['accessWord'] == 'no' )
+ return array( 'result' => false );
+
+ $contentClass = eZContentClass::fetch( (int) $classID );
+ if ( !$contentClass instanceof eZContentClass )
+ return array( 'result' => false );
+
+ $availableForCurrentClass = false;
+ $userFunctions = new eZUserFunctionCollection();
+ $policies = $userFunctions->fetchUserRole( $currentUser->attribute( 'contentobject_id' ) );
+
+ foreach ( $policies['result'] as $policy )
+ {
+ if ( $policy['moduleName'] == 'websitetoolbar' && $policy['functionName'] == 'use' && is_array( $policy['limitation'] ) )
+ {
+ if ( in_array( (int) $classID, $policy['limitation'][0]->allValues() ) )
+ $availableForCurrentClass = true;
+ }
+ else if ( ( $policy['moduleName'] == '*' && $policy['functionName'] == '*' && $policy['limitation'] == '*' ) ||
+ ( $policy['moduleName'] == 'websitetoolbar' && $policy['functionName'] == '*' && $policy['limitation'] == '*' ) ||
+ ( $policy['moduleName'] == 'websitetoolbar' && $policy['functionName'] == 'use' && $policy['limitation'] == '*' ) )
+ {
+ $availableForCurrentClass = true;
+ }
+ }
+
+ return array( 'result' => $availableForCurrentClass );
+ }
+}
+
+?>
diff --git a/packages/ezwt_extension/ezextension/ezwt/modules/websitetoolbar/function_definition.php b/packages/ezwt_extension/ezextension/ezwt/modules/websitetoolbar/function_definition.php
new file mode 100755
index 0000000..6afe86b
--- /dev/null
+++ b/packages/ezwt_extension/ezextension/ezwt/modules/websitetoolbar/function_definition.php
@@ -0,0 +1,19 @@
+ 'can_use',
+ 'call_method' => array( 'class' => 'ezwtFunctionCollection', 'method' => 'canUse' ),
+ 'parameter_type' => 'standard',
+ 'parameters' => array( array( 'name' => 'class_id',
+ 'type' => 'integer',
+ 'required' => true ) ) );
+
+?>