PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Application / Commands / User / GetWPUsersCommandHandler.php
ameliabooking / src / Application / Commands / User Last commit date
Customer 1 week ago Provider 1 week ago DeleteUserCommand.php 1 year ago DeleteUserCommandHandler.php 1 year ago GetCurrentUserCommand.php 1 year ago GetCurrentUserCommandHandler.php 2 weeks ago GetUserDeleteEffectCommand.php 1 year ago GetUserDeleteEffectCommandHandler.php 7 months ago GetWPUsersCommand.php 1 year ago GetWPUsersCommandHandler.php 1 week ago
GetWPUsersCommandHandler.php
73 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\User;
4
5 use AmeliaBooking\Application\Commands\CommandHandler;
6 use AmeliaBooking\Application\Commands\CommandResult;
7 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
8 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
9 use AmeliaBooking\Domain\Entity\Entities;
10 use AmeliaBooking\Infrastructure\Repository\User\WPUserRepository;
11 use AmeliaBooking\Infrastructure\WP\UserService\UserService;
12 use AmeliaBooking\Infrastructure\WP\UserRoles\SuperAdminRoleService;
13
14 /**
15 * Class GetWPUsersCommandHandler
16 *
17 * @package AmeliaBooking\Application\Commands\User
18 */
19 class GetWPUsersCommandHandler extends CommandHandler
20 {
21 /**
22 * @param GetWPUsersCommand $command
23 *
24 * @return CommandResult
25 * @throws AccessDeniedException
26 * @throws InvalidArgumentException
27 * @throws \AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException
28 */
29 public function handle(GetWPUsersCommand $command)
30 {
31 if (!$command->getPermissionService()->currentUserCanRead(Entities::EMPLOYEES)) {
32 throw new AccessDeniedException('You are not allowed to read employees.');
33 }
34
35 if (!$command->getPermissionService()->currentUserCanRead(Entities::CUSTOMERS)) {
36 throw new AccessDeniedException('You are not allowed to read customers.');
37 }
38
39 $result = new CommandResult();
40
41 $this->checkMandatoryFields($command);
42
43 /** @var UserService $userService */
44 $userService = $this->container->get('users.service');
45
46 $adminIds = $userService->getWpUserIdsByRoles(['administrator']);
47 $superAdminIds = $userService->getWpUserIdsByRoles([SuperAdminRoleService::ROLE]);
48
49 /** @var WPUserRepository $wpUserRepository */
50 $wpUserRepository = $this->getContainer()->get('domain.wpUsers.repository');
51
52 $wpUsers = $wpUserRepository->getAllNonRelatedWPUsers(
53 $command->getFields(),
54 array_unique(array_merge($adminIds, $superAdminIds))
55 );
56
57 $wpUsers = apply_filters('amelia_get_wp_users_filter', $wpUsers);
58
59 do_action('amelia_get_wp_users', $wpUsers);
60
61 $result->setResult(CommandResult::RESULT_SUCCESS);
62 $result->setMessage('Successfully retrieved users.');
63
64 $result->setData(
65 [
66 Entities::USER . 's' => $wpUsers
67 ]
68 );
69
70 return $result;
71 }
72 }
73