Merge pull request #8562 from owncloud/better-addmountpoint
Extract mount point merging logic into separate function
This commit is contained in:
commit
6d00675d69
|
@ -400,19 +400,11 @@ class OC_Mount_Config {
|
||||||
'options' => self::encryptPasswords($classOptions))
|
'options' => self::encryptPasswords($classOptions))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$mountPoints = self::readData($isPersonal ? OCP\User::getUser() : NULL);
|
$mountPoints = self::readData($isPersonal ? OCP\User::getUser() : NULL);
|
||||||
// Merge the new mount point into the current mount points
|
$mountPoints = self::mergeMountPoints($mountPoints, $mount, $mountType);
|
||||||
if (isset($mountPoints[$mountType])) {
|
|
||||||
if (isset($mountPoints[$mountType][$applicable])) {
|
|
||||||
$mountPoints[$mountType][$applicable]
|
|
||||||
= array_merge($mountPoints[$mountType][$applicable], $mount[$applicable]);
|
|
||||||
} else {
|
|
||||||
$mountPoints[$mountType] = array_merge($mountPoints[$mountType], $mount);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$mountPoints[$mountType] = $mount;
|
|
||||||
}
|
|
||||||
self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints);
|
self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints);
|
||||||
|
|
||||||
return self::getBackendStatus($class, $classOptions, $isPersonal);
|
return self::getBackendStatus($class, $classOptions, $isPersonal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -689,6 +681,28 @@ class OC_Mount_Config {
|
||||||
return $cipher->decrypt($binaryPassword);
|
return $cipher->decrypt($binaryPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges mount points
|
||||||
|
* @param array $data Existing mount points
|
||||||
|
* @param array $mountPoint New mount point
|
||||||
|
* @param string $mountType
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private static function mergeMountPoints($data, $mountPoint, $mountType) {
|
||||||
|
$applicable = key($mountPoint);
|
||||||
|
if (isset($data[$mountType])) {
|
||||||
|
if (isset($data[$mountType][$applicable])) {
|
||||||
|
$data[$mountType][$applicable]
|
||||||
|
= array_merge($data[$mountType][$applicable], $mountPoint[$applicable]);
|
||||||
|
} else {
|
||||||
|
$data[$mountType] = array_merge($data[$mountType], $mountPoint);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$data[$mountType] = $mountPoint;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the encryption cipher
|
* Returns the encryption cipher
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue