Files
user_external/lib/imap.php
Christian Weiske 690a579a26 Implement request #301: Create users when using external auth login
After a successful login with imap, smb or ftp, the corresponding
user is created in an own database table.
This is needed to make e.g. sharing files with this users work.

The table may be used by several different external user authentication
services.

See the discussion in https://github.com/owncloud/apps/pull/1579
for details on the implementation design.
2014-02-11 21:05:37 +01:00

42 lines
997 B
PHP

<?php
/**
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
class OC_User_IMAP extends OC_User_External_Base {
private $mailbox;
public function __construct($mailbox) {
parent::__construct($mailbox);
$this->mailbox=$mailbox;
}
/**
* @brief Check if the password is correct
* @param $uid The username
* @param $password The password
* @returns true/false
*
* Check if the password is correct without logging in the user
*/
public function checkPassword($uid, $password) {
if (!function_exists('imap_open')) {
OCP\Util::writeLog('user_external', 'ERROR: PHP imap extension is not installed', OCP\Util::ERROR);
return false;
}
$mbox = @imap_open($this->mailbox, $uid, $password);
imap_errors();
imap_alerts();
if($mbox) {
imap_close($mbox);
$this->storeUser($uid);
return $uid;
}else{
return false;
}
}
}