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'); }
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 */