From 9fef217db7104c5ec50d770d165876c377f64f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Jaussoin?= Date: Sun, 1 Apr 2018 17:08:46 +0200 Subject: [PATCH] Move the Invitation table to Eloquent --- app/Invite.php | 33 +++++++++++++++++ app/controllers/LoginController.php | 2 +- app/widgets/Login/Login.php | 4 +-- app/widgets/Rooms/Rooms.php | 5 ++- app/widgets/Rooms/_rooms_invite.tpl | 10 +++--- composer.lock | 36 +++++++++---------- .../20180401144542_create_invites_table.php | 28 +++++++++++++++ 7 files changed, 88 insertions(+), 30 deletions(-) create mode 100644 app/Invite.php create mode 100644 database/migrations/20180401144542_create_invites_table.php diff --git a/app/Invite.php b/app/Invite.php new file mode 100644 index 000000000..af0831a33 --- /dev/null +++ b/app/Invite.php @@ -0,0 +1,33 @@ +belongsTo('App\User'); + } + + public static function set($jid, $resource) + { + $invitation = \App\Invite::where('user_id', $jid) + ->where('resource', $resource) + ->first(); + + if (!$invitation) { + $invitation = new \App\Invite; + $invitation->code = generateKey(8); + $invitation->user_id = $jid; + $invitation->resource = $resource; + $invitation->save(); + } + + return $invitation; + } +} diff --git a/app/controllers/LoginController.php b/app/controllers/LoginController.php index a34a8371b..c1ca14ee4 100644 --- a/app/controllers/LoginController.php +++ b/app/controllers/LoginController.php @@ -19,7 +19,7 @@ class LoginController extends Base $user = new User; if ($user->isLogged()) { if ($this->fetchGet('i') && Validator::length(8)->validate($this->fetchGet('i'))) { - $invitation = \Modl\Invite::get($this->fetchGet('i')); + $invitation = \App\Invite::find($this->fetchGet('i')); $this->redirect('chat', [$invitation->resource, 'room']); } else { $this->redirect('root'); diff --git a/app/widgets/Login/Login.php b/app/widgets/Login/Login.php index e17a70aa9..ae94ccf3e 100644 --- a/app/widgets/Login/Login.php +++ b/app/widgets/Login/Login.php @@ -66,11 +66,11 @@ class Login extends Base if ($this->get('i') && Validator::length(8)->validate($this->get('i'))) { - $invitation = \Modl\Invite::get($this->get('i')); + $invitation = \App\Invite::find($this->get('i')); if ($invitation) { $this->view->assign('invitation', $invitation); - $this->view->assign('contact', \App\Contact::firstOrNew(['id' => $invitation->jid])); + $this->view->assign('contact', \App\Contact::firstOrNew(['id' => $invitation->user_id])); } } diff --git a/app/widgets/Rooms/Rooms.php b/app/widgets/Rooms/Rooms.php index 729b4f188..12093ad85 100644 --- a/app/widgets/Rooms/Rooms.php +++ b/app/widgets/Rooms/Rooms.php @@ -131,10 +131,9 @@ class Rooms extends \Movim\Widget\Base { $view = $this->tpl(); - $cd = new \Modl\ContactDAO; - $view->assign('contacts', $cd->getRosterSimple()); + $view->assign('contacts', \App\User::me()->session->contacts()->pluck('jid')); $view->assign('room', $room); - $view->assign('invite', \Modl\Invite::set($this->user->jid, $room)); + $view->assign('invite', \App\Invite::set($this->user->id, $room)); Dialog::fill($view->draw('_rooms_invite', true)); } diff --git a/app/widgets/Rooms/_rooms_invite.tpl b/app/widgets/Rooms/_rooms_invite.tpl index 9d4564846..e471edee7 100644 --- a/app/widgets/Rooms/_rooms_invite.tpl +++ b/app/widgets/Rooms/_rooms_invite.tpl @@ -11,12 +11,10 @@

{$c->__('global.or')}

-