Bladeren bron

Fix for #23066 (#24689)

tags/v9.0.1beta2
Torben Dannhauer 8 jaren geleden
bovenliggende
commit
718f0757e4
3 gewijzigde bestanden met toevoegingen van 8 en 4 verwijderingen
  1. 2
    2
      apps/files_sharing/lib/Helper.php
  2. 1
    1
      lib/private/Share/Share.php
  3. 5
    1
      tests/lib/Share/ShareTest.php

+ 2
- 2
apps/files_sharing/lib/Helper.php Bestand weergeven

$newHash = ''; $newHash = '';
if(\OC::$server->getHasher()->verify($password, $linkItem['share_with'], $newHash)) { if(\OC::$server->getHasher()->verify($password, $linkItem['share_with'], $newHash)) {
// Save item id in session for future requests // Save item id in session for future requests
\OC::$server->getSession()->set('public_link_authenticated', $linkItem['id']);
\OC::$server->getSession()->set('public_link_authenticated', (string) $linkItem['id']);


/** /**
* FIXME: Migrate old hashes to new hash format * FIXME: Migrate old hashes to new hash format
else { else {
// not authenticated ? // not authenticated ?
if ( ! \OC::$server->getSession()->exists('public_link_authenticated') if ( ! \OC::$server->getSession()->exists('public_link_authenticated')
|| \OC::$server->getSession()->get('public_link_authenticated') !== $linkItem['id']) {
|| \OC::$server->getSession()->get('public_link_authenticated') !== (string)$linkItem['id']) {
return false; return false;
} }
} }

+ 1
- 1
lib/private/Share/Share.php Bestand weergeven

} }


if ( \OC::$server->getSession()->exists('public_link_authenticated') if ( \OC::$server->getSession()->exists('public_link_authenticated')
&& \OC::$server->getSession()->get('public_link_authenticated') === $linkItem['id'] ) {
&& \OC::$server->getSession()->get('public_link_authenticated') === (string)$linkItem['id'] ) {
return true; return true;
} }



+ 5
- 1
tests/lib/Share/ShareTest.php Bestand weergeven

* @param $item * @param $item
*/ */
public function testCheckPasswordProtectedShare($expected, $item) { public function testCheckPasswordProtectedShare($expected, $item) {
\OC::$server->getSession()->set('public_link_authenticated', 100);
\OC::$server->getSession()->set('public_link_authenticated', '100');
$result = \OCP\Share::checkPasswordProtectedShare($item); $result = \OCP\Share::checkPasswordProtectedShare($item);
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);
} }
array(true, array('share_with' => '')), array(true, array('share_with' => '')),
array(true, array('share_with' => '1234567890', 'share_type' => '1')), array(true, array('share_with' => '1234567890', 'share_type' => '1')),
array(true, array('share_with' => '1234567890', 'share_type' => 1)), array(true, array('share_with' => '1234567890', 'share_type' => 1)),
array(true, array('share_with' => '1234567890', 'share_type' => '3', 'id' => '100')),
array(true, array('share_with' => '1234567890', 'share_type' => 3, 'id' => '100')),
array(true, array('share_with' => '1234567890', 'share_type' => '3', 'id' => 100)), array(true, array('share_with' => '1234567890', 'share_type' => '3', 'id' => 100)),
array(true, array('share_with' => '1234567890', 'share_type' => 3, 'id' => 100)), array(true, array('share_with' => '1234567890', 'share_type' => 3, 'id' => 100)),
array(false, array('share_with' => '1234567890', 'share_type' => '3', 'id' => '101')),
array(false, array('share_with' => '1234567890', 'share_type' => 3, 'id' => '101')),
array(false, array('share_with' => '1234567890', 'share_type' => '3', 'id' => 101)), array(false, array('share_with' => '1234567890', 'share_type' => '3', 'id' => 101)),
array(false, array('share_with' => '1234567890', 'share_type' => 3, 'id' => 101)), array(false, array('share_with' => '1234567890', 'share_type' => 3, 'id' => 101)),
); );

Laden…
Annuleren
Opslaan