| Current Path : /var/www/clients/client3/web2/web/vendor/magento/module-customer/Api/ |
| Current File : /var/www/clients/client3/web2/web/vendor/magento/module-customer/Api/AccountManagementInterface.php |
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Customer\Api;
use Magento\Framework\Exception\InputException;
/**
* Interface for managing customers accounts.
* @api
* @since 100.0.2
*/
interface AccountManagementInterface
{
/**#@+
* Constant for confirmation status
*/
const ACCOUNT_CONFIRMED = 'account_confirmed';
const ACCOUNT_CONFIRMATION_REQUIRED = 'account_confirmation_required';
const ACCOUNT_CONFIRMATION_NOT_REQUIRED = 'account_confirmation_not_required';
const MAX_PASSWORD_LENGTH = 256;
/**#@-*/
/**
* Create customer account. Perform necessary business operations like sending email.
*
* @param \Magento\Customer\Api\Data\CustomerInterface $customer
* @param string $password
* @param string $redirectUrl
* @return \Magento\Customer\Api\Data\CustomerInterface
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function createAccount(
\Magento\Customer\Api\Data\CustomerInterface $customer,
$password = null,
$redirectUrl = ''
);
/**
* Create customer account using provided hashed password. Should not be exposed as a webapi.
*
* @api
* @param \Magento\Customer\Api\Data\CustomerInterface $customer
* @param string $hash Password hash that we can save directly
* @param string $redirectUrl URL fed to welcome email templates. Can be used by templates to, for example, direct
* the customer to a product they were looking at after pressing confirmation link.
* @return \Magento\Customer\Api\Data\CustomerInterface
* @throws \Magento\Framework\Exception\InputException If bad input is provided
* @throws \Magento\Framework\Exception\State\InputMismatchException If the provided email is already used
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function createAccountWithPasswordHash(
\Magento\Customer\Api\Data\CustomerInterface $customer,
$hash,
$redirectUrl = ''
);
/**
* Validate customer data.
*
* @param \Magento\Customer\Api\Data\CustomerInterface $customer
* @return \Magento\Customer\Api\Data\ValidationResultsInterface
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function validate(\Magento\Customer\Api\Data\CustomerInterface $customer);
/**
* Check if customer can be deleted.
*
* @api
* @param int $customerId
* @return bool
* @throws \Magento\Framework\Exception\NoSuchEntityException If group is not found
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function isReadonly($customerId);
/**
* Activate a customer account using a key that was sent in a confirmation email.
*
* @param string $email
* @param string $confirmationKey
* @return \Magento\Customer\Api\Data\CustomerInterface
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function activate($email, $confirmationKey);
/**
* Activate a customer account using a key that was sent in a confirmation email.
*
* @api
* @param int $customerId
* @param string $confirmationKey
* @return \Magento\Customer\Api\Data\CustomerInterface
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function activateById($customerId, $confirmationKey);
/**
* Authenticate a customer by username and password
*
* @param string $email
* @param string $password
* @return \Magento\Customer\Api\Data\CustomerInterface
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function authenticate($email, $password);
/**
* Change customer password.
*
* @param string $email
* @param string $currentPassword
* @param string $newPassword
* @return bool true on success
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function changePassword($email, $currentPassword, $newPassword);
/**
* Change customer password.
*
* @param int $customerId
* @param string $currentPassword
* @param string $newPassword
* @return bool true on success
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function changePasswordById($customerId, $currentPassword, $newPassword);
/**
* Send an email to the customer with a password reset link.
*
* @param string $email
* @param string $template
* @param int $websiteId
* @return bool true on success
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function initiatePasswordReset($email, $template, $websiteId = null);
/**
* Reset customer password.
*
* @param string $email If empty value given then the customer
* will be matched by the RP token.
* @param string $resetToken
* @param string $newPassword
*
* @return bool true on success
* @throws \Magento\Framework\Exception\LocalizedException
* @throws InputException
*/
public function resetPassword($email, $resetToken, $newPassword);
/**
* Check if password reset token is valid.
*
* @param int $customerId If null is given then a customer
* will be matched by the RP token.
* @param string $resetPasswordLinkToken
*
* @return bool True if the token is valid
* @throws \Magento\Framework\Exception\State\InputMismatchException If token is mismatched
* @throws \Magento\Framework\Exception\State\ExpiredException If token is expired
* @throws \Magento\Framework\Exception\InputException If token or customer id is invalid
* @throws \Magento\Framework\Exception\NoSuchEntityException If customer doesn't exist
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function validateResetPasswordLinkToken($customerId, $resetPasswordLinkToken);
/**
* Gets the account confirmation status.
*
* @param int $customerId
* @return string
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getConfirmationStatus($customerId);
/**
* Resend confirmation email.
*
* @param string $email
* @param int $websiteId
* @param string $redirectUrl
* @return bool true on success
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function resendConfirmation($email, $websiteId, $redirectUrl = '');
/**
* Check if given email is associated with a customer account in given website.
*
* @param string $customerEmail
* @param int $websiteId If not set, will use the current websiteId
* @return bool
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function isEmailAvailable($customerEmail, $websiteId = null);
/**
* Check store availability for customer given the customerId.
*
* @param int $customerWebsiteId
* @param int $storeId
* @return bool
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function isCustomerInStore($customerWebsiteId, $storeId);
/**
* Retrieve default billing address for the given customerId.
*
* @param int $customerId
* @return \Magento\Customer\Api\Data\AddressInterface
* @throws \Magento\Framework\Exception\NoSuchEntityException If the customer Id is invalid
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getDefaultBillingAddress($customerId);
/**
* Retrieve default shipping address for the given customerId.
*
* @param int $customerId
* @return \Magento\Customer\Api\Data\AddressInterface
* @throws \Magento\Framework\Exception\NoSuchEntityException If the customer Id is invalid
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getDefaultShippingAddress($customerId);
/**
* Return hashed password, which can be directly saved to database.
*
* @param string $password
* @return string
*/
public function getPasswordHash($password);
}