Skip to content

Commit 2e576ed

Browse files
committed
CAS Auth is operational.
1 parent aa1a63d commit 2e576ed

File tree

5 files changed

+42
-10
lines changed

5 files changed

+42
-10
lines changed

app/Http/Controllers/PasteController.php

+22-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,10 @@ 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+
cas()->isAuthenticated();
106+
$username = cas()->getCurrentUser();
107+
$user = User::where('name', $username)->first();
108+
$isSameUser = (($user->id == $paste->userId && $paste->userId != 0)) ? true : false;
95109

96110
// Expiration de la paste
97111
if($paste->expiration != 0){
@@ -229,7 +243,7 @@ public function raw($link){
229243
$paste->save();
230244
}
231245
// On regarde si le créateur est connecté, si oui il peut voir sa paste expirée, sinon 404
232-
if(Auth::check()) {
246+
if(cas()->isAuthenticated()) {
233247
if ($paste->userId != Auth::user()->id) {
234248
return view('errors/404');
235249
}

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
}

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"type": "project",
1010
"require": {
1111
"php": ">=7.1.3",
12-
"laravel/framework": "5.7.*",
12+
"laravel/framework": ">=5.7 <6.0",
1313
"subfission/cas": ">=2.1.1 <3.0",
1414
"soundasleep/html2text": "~0.3"
1515
},

config/app.php

+2-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...
@@ -200,6 +200,7 @@
200200
'Blade' => Illuminate\Support\Facades\Blade::class,
201201
'Bus' => Illuminate\Support\Facades\Bus::class,
202202
'Cache' => Illuminate\Support\Facades\Cache::class,
203+
'Cas' => Subfission\Cas\Facades\Cas::class,
203204
'Config' => Illuminate\Support\Facades\Config::class,
204205
'Cookie' => Illuminate\Support\Facades\Cookie::class,
205206
'Crypt' => Illuminate\Support\Facades\Crypt::class,

0 commit comments

Comments
 (0)