server/lib/public/iusermanager.php

105 lines
2.2 KiB
PHP

<?php
/**
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OCP;
/**
* Class Manager
*
* Hooks available in scope \OC\User:
* - preSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
* - postSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
* - preDelete(\OC\User\User $user)
* - postDelete(\OC\User\User $user)
* - preCreateUser(string $uid, string $password)
* - postCreateUser(\OC\User\User $user, string $password)
*
* @package OC\User
*/
interface IUserManager {
/**
* register a user backend
*
* @param \OCP\UserInterface $backend
*/
public function registerBackend($backend);
/**
* remove a user backend
*
* @param \OCP\UserInterface $backend
*/
public function removeBackend($backend);
/**
* remove all user backends
*/
public function clearBackends() ;
/**
* get a user by user id
*
* @param string $uid
* @return \OCP\IUser
*/
public function get($uid);
/**
* check if a user exists
*
* @param string $uid
* @return bool
*/
public function userExists($uid);
/**
* Check if the password is valid for the user
*
* @param string $loginname
* @param string $password
* @return mixed the User object on success, false otherwise
*/
public function checkPassword($loginname, $password);
/**
* search by user id
*
* @param string $pattern
* @param int $limit
* @param int $offset
* @return \OCP\IUser[]
*/
public function search($pattern, $limit = null, $offset = null);
/**
* search by displayName
*
* @param string $pattern
* @param int $limit
* @param int $offset
* @return \OCP\IUser[]
*/
public function searchDisplayName($pattern, $limit = null, $offset = null);
/**
* @param string $uid
* @param string $password
* @throws \Exception
* @return bool|\OCP\IUser the created user of false
*/
public function createUser($uid, $password);
/**
* returns how many users per backend exist (if supported by backend)
*
* @return array an array of backend class as key and count number as value
*/
public function countUsers();
}