* UI COLLECTION */ $app->map("/{$v}/tables/:table/columns/:column/:ui/?", function ($table, $column, $ui) use($acl, $ZendDb, $params, $requestPayload, $app) { $TableGateway = new TableGateway($acl, 'directus_ui', $ZendDb); switch ($app->request()->getMethod()) { case "PUT": case "POST": $keys = array('table_name' => $table, 'column_name' => $column, 'ui_name' => $ui); $uis = to_name_value($requestPayload, $keys); $column_settings = array(); foreach ($uis as $col) { $existing = $TableGateway->select(array('table_name' => $table, 'column_name' => $column, 'ui_name' => $ui, 'name' => $col['name']))->toArray(); if (count($existing) > 0) { $col['id'] = $existing[0]['id']; } array_push($column_settings, $col); } $TableGateway->updateCollection($column_settings); } $UiOptions = new DirectusUiTableGateway($acl, $ZendDb); $get_new = $UiOptions->fetchOptions($table, $column, $ui); JsonView::render($get_new); })->via('GET', 'POST', 'PUT'); /** * Run the Router */ if (isset($_GET['run_api_router']) && $_GET['run_api_router']) { // Run Slim $app->response()->header('Content-Type', 'application/json; charset=utf-8'); $app->run(); }
function getUsers() { global $ZendDb, $acl; $tableGateway = new TableGateway($acl, 'directus_users', $ZendDb); $users = $tableGateway->getEntries(['table_name' => 'directus_users', 'perPage' => 1000, STATUS_COLUMN_NAME => STATUS_ACTIVE_NUM, 'columns_visible' => [STATUS_COLUMN_NAME, 'avatar', 'first_name', 'last_name', 'group', 'email', 'position', 'last_access']]); // Lets get the gravatar if no avatar is set. // TODO: Add this on insert/update of any user. $usersRowsToUpdate = []; foreach ($users['rows'] as $user) { $hasAvatar = array_key_exists('avatar', $user) ? $user['avatar'] : false; $hasEmail = array_key_exists('email', $user) ? $user['email'] : false; if (!$hasAvatar && $hasEmail) { $avatar = DirectusUsersTableGateway::get_avatar($user['email']); if ($avatar) { $user['avatar'] = $avatar; array_push($usersRowsToUpdate, $user); } } } if ($usersRowsToUpdate) { $tableGateway->updateCollection($usersRowsToUpdate); } return $users; }