コード例 #1
0
ファイル: issues.php プロジェクト: nirix/locust
use Locust\Models\Issue;
use Locust\Models\Status;
// -----------------------------------------------------------------------------
// Issues
get('/issues', function () {
    $issues = Issue::all();
    echo json_encode($issues);
});
// Create issue
post('/issues', function () {
    // Check if logged in
    if (!currentUser()) {
        return http_response_code(401);
    }
    $status = Status::find(ng('status_id'));
    $data = ['summary' => ng('summary'), 'description' => ng('description'), 'version_id' => ng('version_id'), 'user_id' => currentUser()['id'], 'status_id' => $status->id, 'is_closed' => $status->is_closed];
    $issue = new Issue($data);
    if ($issue->save()) {
        echo json_encode($issue);
    } else {
        http_response_code(400);
        echo json_encode($issue->errors());
    }
});
// Delete issue
delete('/issues/(\\d+)', function ($id) {
    // Check if logged in and is admin
    if (!currentUser() || currentUser()['role'] != 'admin') {
        return http_response_code(currentUser() ? 401 : 403);
    }
    $issue = Issue::find($id)->delete();
コード例 #2
0
ファイル: roadmap.php プロジェクト: nirix/locust
        http_response_code(400);
        echo json_encode($version->errors());
    }
});
// Show version
get('/roadmap/(.*)', function ($slug) {
    $version = Version::find('slug', $slug);
    echo json_encode($version);
});
post('/roadmap/(.*)', function ($slug) {
    // Check if logged in and is admin
    if (!currentUser() || currentUser()['role'] != 'admin') {
        return http_response_code(currentUser() ? 401 : 403);
    }
    if (ng('id') && ($version = Version::find(ng('id')))) {
        $version->set(['name' => ng('name'), 'slug' => ng('slug'), 'description' => ng('description'), 'display_order' => ng('display_order'), 'is_completed' => ng('is_completed')]);
        if ($version->save()) {
            echo json_encode($version);
        } else {
            http_response_code(400);
            echo json_encode($version->errors());
        }
    } else {
        http_response_code(400);
    }
});
// Delete version
delete('/roadmap/(.*)', function ($slug) {
    // Check if logged in and is admin
    if (!currentUser() || currentUser()['role'] != 'admin') {
        return http_response_code(currentUser() ? 401 : 403);
コード例 #3
0
ファイル: users.php プロジェクト: nirix/locust
// -----------------------------------------------------------------------------
// Users
// Create user
post('/users', function () {
    $user = new User(['username' => ng('username'), 'password' => ng('password'), 'email' => ng('email'), 'role' => "user"]);
    if ($user->save()) {
        echo json_encode($user);
    } else {
        http_response_code(400);
        echo json_encode($user->errors());
    }
});
// Login
post('/login', function () {
    $user = User::find('username', ng('username', ''));
    if ($user && $user->authenticate(ng('password'))) {
        setcookie('locust_session', $user->session_hash, 0, '/', null, false, true);
        echo json_encode($user->toArray());
    } else {
        http_response_code(401);
    }
});
// Profile
get('/profile', function () {
    if (isset($_COOKIE['locust_session']) && ($user = User::find('session_hash', $_COOKIE['locust_session']))) {
        echo json_encode($user->toArray());
    } else {
        http_response_code(401);
    }
});
// Logout