Skip to content
This repository was archived by the owner on Nov 25, 2020. It is now read-only.

Commit 3ac26a6

Browse files
committed
Fix APCIterator namespace
Action.share : use ConfService::replaceRepository to trigger cache invalidation CoreCache: hook to workspace.after_update to clear associated cache contents
1 parent 8eddc19 commit 3ac26a6

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

core/src/plugins/action.share/class.ShareStore.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,8 @@ public function moveSharesFromMeta($shares, $operation="move", $oldNode, $newNod
627627
$collectRepositories[$repo->getId()] = $path;
628628
}
629629
if($save){
630-
ConfService::getConfStorageImpl()->saveRepository($repo, true);
630+
//ConfService::getConfStorageImpl()->saveRepository($repo, true);
631+
ConfService::replaceRepository($repo->getId(), $repo);
631632
}
632633
$access = $repo->getOption("SHARE_ACCESS");
633634
if(!empty($access) && $access == "PUBLIC"){

core/src/plugins/cache.doctrine/ext/PydioApcuCache.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function deleteKeysStartingWith($pattern)
4848
{
4949
$pattern = '/^'.$this->namespacedIdAsPattern($pattern).'/';
5050
//SAMPLE /^pydio-unique-id_nodes_\[list\:\/\/1/
51-
$iterator = new APCIterator('user', $pattern);
51+
$iterator = new \APCIterator('user', $pattern);
5252
foreach ($iterator as $data) {
5353
$this->doDelete($data['key']);
5454
}

core/src/plugins/core.cache/class.CoreCacheLoader.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,19 @@ public function clearNodeInfoCache($from=null, $to=null, $copy = false){
107107
}
108108
}
109109

110+
/**
111+
* @param Repository $repositoryObject
112+
*/
113+
public function clearWorkspaceNodeInfos($repositoryObject){
114+
$cDriver = ConfService::getCacheDriverImpl();
115+
if(empty($cDriver) || !($cDriver->supportsPatternDelete(AJXP_CACHE_SERVICE_NS_NODES))){
116+
return;
117+
}
118+
$node = new AJXP_Node("pydio://".$repositoryObject->getId()."/");
119+
$node->setLeaf(false);
120+
$this->clearCacheForNode($node);
121+
}
122+
110123
/**
111124
* @param AJXP_Node $node
112125
*/

core/src/plugins/core.cache/manifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
<serverCallback methodName="cacheNodeInfo" hookName="node.info.end"/>
3131
<serverCallback methodName="clearNodeInfoCache" hookName="node.change" defer="true"/>
3232
<serverCallback methodName="clearNodeInfoCache" hookName="node.meta_change" defer="true"/>
33+
<serverCallback methodName="clearWorkspaceNodeInfos" hookName="workspace.after_update" defer="true"/>
3334
</hooks>
3435
</registry_contributions>
3536
</ajxp_plugin>

0 commit comments

Comments
 (0)