17 import(
'lib.pkp.classes.handler.APIHandler');
18 import(
'classes.core.Services');
26 $this->_handlerPath =
'stats/users';
31 'handler' => [$this,
'get'],
32 'roles' => [ROLE_ID_SITE_ADMIN, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR],
36 parent::__construct();
42 function authorize($request, &$args, $roleAssignments) {
44 import(
'lib.pkp.classes.security.authorization.ContextAccessPolicy');
47 import(
'lib.pkp.classes.security.authorization.PolicySet');
48 $rolePolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
49 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
50 foreach ($roleAssignments as $role => $operations) {
55 return parent::authorize($request, $args, $roleAssignments);
68 public function get($slimRequest, $response, $args) {
71 if (!$request->getContext()) {
72 return $response->withStatus(404)->withJsonError(
'api.404.resourceNotFound');
80 foreach ($slimRequest->getQueryParams() as $param => $value) {
82 case 'registeredAfter':
83 case 'registeredBefore':
84 $params[$param] = $value;
88 $params[$param] = $value ===
'disabled' ? $value :
'active';
93 $params = array_merge($defaultParams, $params);
97 $params[
'contextId'] = [$request->getContext()->getId()];
100 if ($result !==
true) {
101 return $response->withStatus(400)->withJsonError($result);
104 return $response->withJson(array_map(
106 $item[
'name'] = __($item[
'name']);