use right location of the file is the source and not the target it is shared to
This commit is contained in:
parent
8eef919a75
commit
1e5d03da80
|
@ -163,6 +163,20 @@ class Hooks {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get path of a file.
|
||||||
|
* @param $fileId id of the file
|
||||||
|
* @return path of the file
|
||||||
|
*/
|
||||||
|
private static function getFilePath($fileId) {
|
||||||
|
$query = \OC_DB::prepare('SELECT `path`'
|
||||||
|
.' FROM `*PREFIX*filecache`'
|
||||||
|
.' WHERE `fileid` = ?');
|
||||||
|
$result = $query->execute(array($fileId));
|
||||||
|
$row = $result->fetchRow();
|
||||||
|
return $row['path'];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
*/
|
*/
|
||||||
|
@ -182,7 +196,7 @@ class Hooks {
|
||||||
|
|
||||||
$shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 );
|
$shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 );
|
||||||
|
|
||||||
return Crypt::encKeyfileToMultipleUsers($shares, $params['fileTarget']);
|
return Crypt::encKeyfileToMultipleUsers($shares, self::getFilePath($params['itemSource']));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,25 +205,17 @@ class Hooks {
|
||||||
*/
|
*/
|
||||||
public static function preUnshare( $params ) {
|
public static function preUnshare( $params ) {
|
||||||
$shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 );
|
$shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 );
|
||||||
|
|
||||||
$userIds = array();
|
|
||||||
foreach ( $shares as $share ) {
|
|
||||||
error_log("keek user id: " . $share['userId']);
|
|
||||||
$userIds[] = $share['userId'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove the user from the list from which the file will be unshared
|
// remove the user from the list from which the file will be unshared
|
||||||
unset($userIds[$params['shareWith']]);
|
unset($shares[$params['shareWith']]);
|
||||||
|
|
||||||
return Crypt::encKeyfileToMultipleUsers($userIDs, $item[0]['file_target']);
|
return Crypt::encKeyfileToMultipleUsers($shares, self::getFilePath($params['itemSource']));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
*/
|
*/
|
||||||
public static function preUnshareAll( $params ) {
|
public static function preUnshareAll( $params ) {
|
||||||
$items = \OCP\Share::getItemSharedWithBySource($params['itemType'], $params['itemSource']);
|
return Crypt::encKeyfileToMultipleUsers(array(\OCP\User::getUser()), self::getFilePath($params['itemSource']));
|
||||||
return Crypt::encKeyfileToMultipleUsers(array($items[0]['uid_owner']), $items[0]['file_target']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -750,7 +750,7 @@ class Crypt {
|
||||||
* @param $users list of users which should be able to access the file
|
* @param $users list of users which should be able to access the file
|
||||||
* @param $fileTarget target of the file
|
* @param $fileTarget target of the file
|
||||||
*/
|
*/
|
||||||
public static function encKeyfileToMultipleUsers($users, $fileTarget) {
|
public static function encKeyfileToMultipleUsers($users, $filePath) {
|
||||||
$view = new \OC_FilesystemView( '/' );
|
$view = new \OC_FilesystemView( '/' );
|
||||||
$owner = \OCP\User::getUser();
|
$owner = \OCP\User::getUser();
|
||||||
$util = new Util( $view, $userId );
|
$util = new Util( $view, $userId );
|
||||||
|
@ -785,7 +785,7 @@ class Crypt {
|
||||||
\OC_FileProxy::$enabled = false;
|
\OC_FileProxy::$enabled = false;
|
||||||
|
|
||||||
// get the keyfile
|
// get the keyfile
|
||||||
$encKeyfile = Keymanager::getFileKey( $view, $owner, $fileTarget );
|
$encKeyfile = Keymanager::getFileKey( $view, $owner, $filePath );
|
||||||
|
|
||||||
$privateKey = $session->getPrivateKey();
|
$privateKey = $session->getPrivateKey();
|
||||||
|
|
||||||
|
@ -796,7 +796,7 @@ class Crypt {
|
||||||
$shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys );
|
$shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys );
|
||||||
|
|
||||||
// save sharekeys
|
// save sharekeys
|
||||||
if ( ! Keymanager::setShareKeys( $view, $fileTarget, $shareKeys['keys'] ) ) {
|
if ( ! Keymanager::setShareKeys( $view, $filePath, $shareKeys['keys'] ) ) {
|
||||||
|
|
||||||
trigger_error( "SET Share keys failed" );
|
trigger_error( "SET Share keys failed" );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue