]> source.dussan.org Git - nextcloud-server.git/commitdiff
Support constructing an SMB_OC without saved session credentials
authorRobin McCorkell <rmccorkell@karoshi.org.uk>
Fri, 20 Mar 2015 15:55:53 +0000 (15:55 +0000)
committerRobin McCorkell <rmccorkell@karoshi.org.uk>
Fri, 20 Mar 2015 16:24:30 +0000 (16:24 +0000)
apps/files_external/lib/smb_oc.php

index 245d1ed79b3e5835963f039e3be2b897da7e386c..c2301d8589c79f2fa950c263b50700a54ccb7a7f 100644 (file)
@@ -21,13 +21,20 @@ class SMB_OC extends SMB {
         * @throws \Exception
         */
        public function __construct($params) {
-               if (isset($params['host']) && \OC::$server->getSession()->exists('smb-credentials')) {
+               if (isset($params['host'])) {
                        $host = $params['host'];
                        $this->username_as_share = ($params['username_as_share'] === 'true');
 
-                       $params_auth = json_decode(\OC::$server->getCrypto()->decrypt(\OC::$server->getSession()->get('smb-credentials')), true);
-                       $user = \OC::$server->getSession()->get('loginname');
-                       $password = $params_auth['password'];
+                       // dummy credentials, unused, to satisfy constructor
+                       $user = 'foo';
+                       $password = 'bar';
+                       if (\OC::$server->getSession()->exists('smb-credentials')) {
+                               $params_auth = json_decode(\OC::$server->getCrypto()->decrypt(\OC::$server->getSession()->get('smb-credentials')), true);
+                               $user = \OC::$server->getSession()->get('loginname');
+                               $password = $params_auth['password'];
+                       } else {
+                               // assume we are testing from the admin section
+                       }
 
                        $root = isset($params['root']) ? $params['root'] : '/';
                        $share = '';