Fix premature proxy switching. Ref #143
This commit is contained in:
parent
405d7e4360
commit
a422d22e48
@ -100,7 +100,13 @@ class SessionController extends Controller{
|
|||||||
$memberCount = count($memberIds) - 1;
|
$memberCount = count($memberIds) - 1;
|
||||||
|
|
||||||
if ($view->file_exists($path)){
|
if ($view->file_exists($path)){
|
||||||
|
|
||||||
|
|
||||||
|
$proxyStatus = \OC_FileProxy::$enabled;
|
||||||
|
\OC_FileProxy::$enabled = false;
|
||||||
$currentHash = sha1($view->file_get_contents($path));
|
$currentHash = sha1($view->file_get_contents($path));
|
||||||
|
\OC_FileProxy::$enabled = $proxyStatus;
|
||||||
|
|
||||||
if (!Helper::isVersionsEnabled() && $currentHash !== $sessionData['genesis_hash']){
|
if (!Helper::isVersionsEnabled() && $currentHash !== $sessionData['genesis_hash']){
|
||||||
// Original file was modified externally. Save to a new one
|
// Original file was modified externally. Save to a new one
|
||||||
$path = Helper::getNewFileName($view, $path, '-conflict');
|
$path = Helper::getNewFileName($view, $path, '-conflict');
|
||||||
@ -111,7 +117,7 @@ class SessionController extends Controller{
|
|||||||
// Not a last user
|
// Not a last user
|
||||||
if ($memberCount>0){
|
if ($memberCount>0){
|
||||||
// Update genesis hash to prevent conflicts
|
// Update genesis hash to prevent conflicts
|
||||||
Helper::warnLog('Update hash');
|
Helper::debugLog('Update hash');
|
||||||
$session->updateGenesisHash($esId, sha1($content));
|
$session->updateGenesisHash($esId, sha1($content));
|
||||||
} else {
|
} else {
|
||||||
// Last user. Kill session data
|
// Last user. Kill session data
|
||||||
|
@ -41,19 +41,22 @@ class Genesis {
|
|||||||
* */
|
* */
|
||||||
public function __construct(\OCA\Documents\View $view, $path, $owner){
|
public function __construct(\OCA\Documents\View $view, $path, $owner){
|
||||||
$this->view = new View('/' . $owner);
|
$this->view = new View('/' . $owner);
|
||||||
$this->hash = $this->getDocumentHash($view, $path);
|
|
||||||
|
|
||||||
if (!$this->view->file_exists(self::DOCUMENTS_DIRNAME)){
|
if (!$this->view->file_exists(self::DOCUMENTS_DIRNAME)){
|
||||||
$this->view->mkdir(self::DOCUMENTS_DIRNAME );
|
$this->view->mkdir(self::DOCUMENTS_DIRNAME );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->hash = $this->getDocumentHash($view, $path);
|
||||||
$this->path = self::DOCUMENTS_DIRNAME . '/' . $this->hash . '.odt';
|
$this->path = self::DOCUMENTS_DIRNAME . '/' . $this->hash . '.odt';
|
||||||
|
|
||||||
if (!$this->view->file_exists($this->path)){
|
if (!$this->view->file_exists($this->path)){
|
||||||
//copy new genesis to /user/documents/{hash}.odt
|
//copy new genesis to /user/documents/{hash}.odt
|
||||||
|
// get decrypted content
|
||||||
|
$content = $view->file_get_contents($path);
|
||||||
|
|
||||||
$proxyStatus = \OC_FileProxy::$enabled;
|
$proxyStatus = \OC_FileProxy::$enabled;
|
||||||
\OC_FileProxy::$enabled = false;
|
\OC_FileProxy::$enabled = false;
|
||||||
$this->view->copy('/files' . $path, $this->path);
|
|
||||||
|
$this->view->file_put_contents($this->path, $content);
|
||||||
\OC_FileProxy::$enabled = $proxyStatus;
|
\OC_FileProxy::$enabled = $proxyStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +81,13 @@ class Genesis {
|
|||||||
|
|
||||||
protected function getDocumentHash($view, $path){
|
protected function getDocumentHash($view, $path){
|
||||||
$this->validate($view, $path);
|
$this->validate($view, $path);
|
||||||
return sha1($view->file_get_contents($path));
|
$proxyStatus = \OC_FileProxy::$enabled;
|
||||||
|
\OC_FileProxy::$enabled = false;
|
||||||
|
|
||||||
|
$hash = sha1($view->file_get_contents($path));
|
||||||
|
|
||||||
|
\OC_FileProxy::$enabled = $proxyStatus;
|
||||||
|
return $hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user