Esempio n. 1
0
        $val = '';
        $tokens = array();
        foreach ($columns as $col) {
            array_push($tokens, $entry[$col]);
        }
        $val = implode(' ', $tokens);
        array_push($response, array('value' => $val, 'tokens' => $tokens, 'id' => $entry['id']));
    }
    JsonView::render($response);
});
$app->map("/{$v}/tables/:table/rows/:id/?", function ($table, $id) use($ZendDb, $acl, $params, $requestPayload, $app) {
    $currentUser = Auth::getUserInfo();
    $params['table_name'] = $table;
    // any UPDATE requests should md5 the email
    if ("directus_users" === $table && in_array($app->request()->getMethod(), array('PUT', 'PATCH')) && array_key_exists('email', $requestPayload)) {
        $avatar = DirectusUsersTableGateway::get_avatar($requestPayload['email']);
        $requestPayload['avatar'] = $avatar;
    }
    $TableGateway = new TableGateway($acl, $table, $ZendDb);
    switch ($app->request()->getMethod()) {
        // PUT an updated table entry
        case 'PATCH':
        case 'PUT':
            $requestPayload[$TableGateway->primaryKeyFieldName] = $id;
            $activityLoggingEnabled = !(isset($_GET['skip_activity_log']) && 1 == $_GET['skip_activity_log']);
            $activityMode = $activityLoggingEnabled ? TableGateway::ACTIVITY_ENTRY_MODE_PARENT : TableGateway::ACTIVITY_ENTRY_MODE_DISABLED;
            $TableGateway->manageRecordUpdate($table, $requestPayload, $activityMode);
            break;
            // DELETE a given table entry
        // DELETE a given table entry
        case 'DELETE':
Esempio n. 2
0
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;
}