Blame view

sources/apps/user_webdavauth/user_webdavauth.php 2.56 KB
03e52840d   Kload   Init
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
  <?php
  
  /**
   * ownCloud
   *
   * @author Frank Karlitschek
   * @copyright 2012 Frank Karlitschek frank@owncloud.org
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
   * License as published by the Free Software Foundation; either
   * version 3 of the License, or any later version.
   *
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
   *
   * You should have received a copy of the GNU Affero General Public
   * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
   *
   */
  
  class OC_USER_WEBDAVAUTH extends OC_User_Backend {
  	protected $webdavauth_url;
  
  	public function __construct() {
  		$this->webdavauth_url = OC_Config::getValue( "user_webdavauth_url" );
  	}
  
  	public function deleteUser($uid) {
  		// Can't delete user
  		OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to delete users from web frontend using WebDAV user backend', 3);
  		return false;
  	}
  
  	public function setPassword ( $uid, $password ) {
  		// We can't change user password
  		OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to change password for users from web frontend using WebDAV user backend', 3);
  		return false;
  	}
  
  	public function checkPassword( $uid, $password ) {
31b7f2792   Kload   Upgrade to ownclo...
44
45
46
47
48
49
50
  		$arr = explode('://', $this->webdavauth_url, 2);
  		if( ! isset($arr) OR count($arr) !== 2) {
  			OC_Log::write('OC_USER_WEBDAVAUTH', 'Invalid Url: "'.$this->webdavauth_url.'" ', 3);
  			return false;
  		}
  		list($webdavauth_protocol, $webdavauth_url_path) = $arr;
  		$url= $webdavauth_protocol.'://'.urlencode($uid).':'.urlencode($password).'@'.$webdavauth_url_path;
03e52840d   Kload   Init
51
52
  		$headers = get_headers($url);
  		if($headers==false) {
31b7f2792   Kload   Upgrade to ownclo...
53
  			OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to connect to WebDAV Url: "'.$webdavauth_protocol.'://'.$webdavauth_url_path.'" ', 3);
03e52840d   Kload   Init
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
  			return false;
  
  		}
  		$returncode= substr($headers[0], 9, 3);
  
  		if(substr($returncode, 0, 1) === '2') {
  			return $uid;
  		} else {
  			return false;
  		}
  
  	}
  
  	/*
  	* we don´t know if a user exists without the password. so we have to return true all the time
  	*/
  	public function userExists( $uid ){
  		return true;
  	}
  
  	/**
  	 * @return bool
  	 */
  	public function hasUserListings() {
  		return false;
  	}
  
  	/*
  	* we don´t know the users so all we can do it return an empty array here
  	*/
  	public function getUsers($search = '', $limit = 10, $offset = 0) {
  		$returnArray = array();
  
  		return $returnArray;
  	}
  }