public function createApiKey()
 {
     self::validator(['comment' => 'max:60']);
     $user = User::find(self::userId());
     // Check number of issued keys (max 3)
     if (Apikey::where('user_id', '=', self::userId())->count() > 2) {
         App::abort(500, 'Maximum 3 API keys');
     }
     $key = new Apikey();
     $key->api_key = BaseController::randString(32);
     $key->user_id = self::userId();
     $key->user_fp = self::userFp();
     $key->comment = Input::get('comment', '');
     if (Input::get('readonly')) {
         $key->readonly = 1;
     }
     $key->save();
     return Redirect::to('settings/api_keys');
 }
Beispiel #2
0
Route::filter('antiflood', function () {
    if (Input::get('preview')) {
        return View::make('verif.post_preview');
    }
    if (BaseController::userId() == 1) {
        if (!BaseController::checkCaptcha()) {
            return View::make('verif.post');
        }
    }
});
/*
 *  API Filter: checks every API request for authentication
 */
Route::filter('private_api', function () {
    if (isset($_SERVER['PHP_AUTH_USER'])) {
        $key = Apikey::where('user_id', '=', $_SERVER['PHP_AUTH_USER'])->where('api_key', '=', $_SERVER['PHP_AUTH_PW'])->first();
        if ($key) {
            $user = ApiUser::getInstance();
            $user->user_id = $key->user_id;
            $user->user_fp = $key->user_fp;
            $user->readonly = $key->readonly;
        } else {
            return Response::authHeader();
        }
    } else {
        return Response::authHeader();
    }
});
/*
 *  API Filter: checks if API key is readonly
 */