123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- <?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);
- }
|