summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/smb_oc.php
blob: a62a2c015338e4535e8cb3424b6b92f21676cc21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
/**
 * Copyright (c) 2014 Robin McCorkell <rmccorkell@karoshi.org.uk>
 * This file is licensed under the Affero General Public License version 3 or
 * later.
 * See the COPYING-README file.
 */

namespace OC\Files\Storage;

class SMB_OC extends \OC\Files\Storage\SMB {
	public function __construct($params) {
		if (isset($params['host']) && \OC::$session->exists('smb-credentials')) {
			$host=$params['host'];
			$username_as_share = ($params['username_as_share'] === 'true');

			$params_auth = \OC::$session->get('smb-credentials');
			$user = \OC::$session->get('loginname');
			$password = $params_auth['password'];

			$root=isset($params['root'])?$params['root']:'/';
			$share = '';

			if ($username_as_share) {
				$share = '/'.$user;
			} elseif (isset($params['share'])) {
				$share = $params['share'];
			} else {
				throw new \Exception();
			}
			parent::__construct(array(
				"user" => $user,
				"password" => $password,
				"host" => $host,
				"share" => $share,
				"root" => $root
			));
		} else {
			throw new \Exception();
		}
	}

	public static function login( $params ) {
		\OC::$session->set('smb-credentials', $params);
	}

	public function isSharable($path) {
		return false;
	}
}