Skip to content

Commit 3e0cf0c

Browse files
committed
CAS authentication is operational.
1 parent d9e64a8 commit 3e0cf0c

File tree

4 files changed

+43
-9
lines changed

4 files changed

+43
-9
lines changed

app/Http/Controllers/PasteController.php

+25-8
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,27 @@
1212
use Cookie;
1313
use DB;
1414
use \Carbon;
15+
use Cas;
1516

1617
class PasteController extends Controller
1718
{
18-
public function index(){
19-
if (!Auth::check()) { return redirect('/login'); }
20-
return view('paste/index');
21-
}
19+
public function index(){
20+
if (!cas()->isAuthenticated()) {
21+
cas()->authenticate();
22+
}
23+
$username = cas()->getCurrentUser();
24+
$user = User::where('name', $username)->first();
25+
return view('paste/index', [
26+
'user' => $user,
27+
]);
28+
}
2229

2330
public function submit(Requests\StorePaste $request){
24-
if (!Auth::check()) { return redirect('/login'); }
31+
if (!cas()->isAuthenticated()) {
32+
cas()->authenticate();
33+
}
34+
$username = cas()->getCurrentUser();
35+
$user = User::create_if_absent($username);
2536
$title = (empty(trim(Input::get('pasteTitle')))) ? 'Untitled' : Input::get('pasteTitle');
2637

2738
$expiration = Input::get('expire');
@@ -72,7 +83,7 @@ public function submit(Requests\StorePaste $request){
7283

7384
Paste::create([
7485
'link' => $generatedLink,
75-
'userId' => (Auth::check()) ? Auth::id() : 0,
86+
'userId' => ($user != null) ? $user->id : 0,
7687
'views' => '0',
7788
'title' => $title,
7889
'content' => Input::get('pasteContent'),
@@ -91,7 +102,13 @@ public function view($link, Request $request){
91102
$paste = Paste::where('link', $link)->firstOrFail();
92103

93104
// Est-ce que l'utilisateur connecté est celui qui a écrit la paste ?
94-
$isSameUser = ((Auth::user() == $paste->user && $paste->userId != 0)) ? true : false;
105+
if (cas()->isAuthenticated()) {
106+
$username = cas()->getCurrentUser();
107+
$user = User::where('name', $username)->first();
108+
$isSameUser = (($user->id == $paste->userId && $paste->userId != 0)) ? true : false;
109+
} else {
110+
$isSameUser = false;
111+
}
95112

96113
// Expiration de la paste
97114
if($paste->expiration != 0){
@@ -229,7 +246,7 @@ public function raw($link){
229246
$paste->save();
230247
}
231248
// On regarde si le créateur est connecté, si oui il peut voir sa paste expirée, sinon 404
232-
if(Auth::check()) {
249+
if(cas()->isAuthenticated()) {
233250
if ($paste->userId != Auth::user()->id) {
234251
return view('errors/404');
235252
}

app/Http/Kernel.php

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class Kernel extends HttpKernel
4949
protected $routeMiddleware = [
5050
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
5151
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
52+
'cas.auth' => \Subfission\Cas\Middleware\CASAuth::class,
53+
'cas.guest' => \Subfission\Cas\Middleware\RedirectCASAuthenticated::class,
5254
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
5355
'can' => \Illuminate\Auth\Middleware\Authorize::class,
5456
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,

app/User.php

+15
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Notifications\Notifiable;
66
use Illuminate\Foundation\Auth\User as Authenticatable;
7+
use Illuminate\Support\Facades\Log;
78

89
class User extends Authenticatable
910
{
@@ -31,4 +32,18 @@ public function pastes()
3132
{
3233
return $this->hasMany('App\Paste', 'userId');
3334
}
35+
36+
public static function create_if_absent($username) {
37+
$user = User::where('name', $username)->first();
38+
if ($user == null) {
39+
Log::debug('Inserting new user.', ['username' => $username]);
40+
$user = User::create([
41+
'name' => $username,
42+
'email' => $username .'@example.local',
43+
'password' => '',
44+
]);
45+
Log::info('User created.', ['user' => $user]);
46+
}
47+
return $user;
48+
}
3449
}

config/app.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
Illuminate\Translation\TranslationServiceProvider::class,
163163
Illuminate\Validation\ValidationServiceProvider::class,
164164
Illuminate\View\ViewServiceProvider::class,
165-
'Subfission\Cas\CasServiceProvider',
165+
Subfission\Cas\CasServiceProvider::class,
166166

167167
/*
168168
* Package Service Providers...

0 commit comments

Comments
 (0)