Commit c07bf5ee authored by Viral Solani's avatar Viral Solani

API Authentication with JWT

parent 07ff00a8
<?php
namespace App\Http\Controllers\API\V1;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response as IlluminateResponse;
use Response;
/**
* Base API Controller.
*/
class APIController extends Controller
{
/**
* default status code.
*
* @var int
*/
protected $statusCode = 200;
/**
* get the status code.
*
* @return statuscode
*/
public function getStatusCode()
{
return $this->statusCode;
}
/**
* set the status code.
*
* @param [type] $statusCode [description]
*
* @return mix
*/
public function setStatusCode($statusCode)
{
$this->statusCode = $statusCode;
return $this;
}
/**
* responsd not found.
*
* @param string $message
*
* @return mix
*/
public function respondNotFound($message = 'Not Found')
{
return $this->setStatusCode(IlluminateResponse::HTTP_NOT_FOUND)->respondWithError($message);
}
/**
* Respond with error.
*
* @param string $message
*
* @return mix
*/
public function respondInternalError($message = 'Internal Error')
{
return $this->setStatusCode('500')->respondWithError($message);
}
/**
* Respond.
*
* @param array $data
* @param array $headers
*
* @return mix
*/
public function respond($data, $headers = [])
{
return response()->json($data, $this->getStatusCode(), $headers);
}
/**
* respond with pagincation.
*
* @param Paginator $items
* @param array $data
*
* @return mix
*/
public function respondWithPagination($items, $data)
{
$data = array_merge($data, [
'paginator' => [
'total_count' => $items->total(),
'total_pages' => ceil($items->total() / $items->perPage()),
'current_page' => $items->currentPage(),
'limit' => $items->perPage(),
],
]);
return $this->respond($data);
}
/**
* respond with error.
*
* @param $message
*
* @return mix
*/
public function respondWithError($message)
{
return $this->respond([
'error' => [
'message' => $message,
'status_code' => $this->getStatusCode(),
],
]);
}
/**
* Respond Created.
*
* @param string $message
*
* @return mix
*/
public function respondCreated($message)
{
return $this->setStatusCode(201)->respond([
'message' => $message,
]);
}
/**
* Throw Validation.
*
* @param string $message
*
* @return mix
*/
public function throwValidation($message)
{
return $this->setStatusCode(422)
->respondWithError($message);
}
}
<?php
namespace App\Http\Controllers\Api\V1;
use JWTAuth;
use Validator;
use Illuminate\Http\Request;
use App\Models\Access\User\User;
use App\Notifications\Activated;
use App\Notifications\Activation;
use App\Notifications\PasswordReset;
use App\Notifications\PasswordResetted;
use Tymon\JWTAuth\Exceptions\JWTException;
/**
* AuthController.
*/
class AuthController extends APIController
{
/**
* Authenticate User
*
* @param Request $request
* @return {mix}
*/
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
try {
if (!$token = JWTAuth::attempt($credentials)) {
return $this->throwValidation('Invalid Credentials! Please try again.');
}
} catch (JWTException $e) {
return $this->respondInternalError('This is something wrong. Please try again!');
}
$user = User::whereEmail(request('email'))->first();
if ($user->status != 1) {
return $this->throwValidation('Your account hasn\'t been activated. Please check your email & activate account.');
}
return response()->json(['message' => 'You are successfully logged in!', 'token' => $token]);
}
public function check()
{
try {
JWTAuth::parseToken()->authenticate();
} catch (JWTException $e) {
return response(['authenticated' => false]);
}
return response(['authenticated' => true]);
}
public function logout()
{
try {
$token = JWTAuth::getToken();
if ($token) {
JWTAuth::invalidate($token);
}
} catch (JWTException $e) {
return response()->json($e->getMessage(), 500);
}
return response()->json(['message' => 'You are successfully logged out!']);
}
public function register(Request $request)
{
$validation = Validator::make($request->all(), [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6',
'password_confirmation' => 'required|same:password',
]);
if ($validation->fails()) {
return response()->json(['message' => $validation->messages()->first()], 422);
}
$user = User::create([
'email' => request('email'),
'status' => 'pending_activation',
'password' => bcrypt(request('password')),
]);
$user->activation_token = generateUuid();
$user->save();
/* $profile = new Profile();
$profile->first_name = request('first_name');
$profile->last_name = request('last_name');
$user->profile()->save($profile);*/
$user->notify(new Activation($user));
return response()->json(['message' => 'You have registered successfully. Please check your email for activation!']);
}
public function activate($activation_token)
{
$user = User::whereActivationToken($activation_token)->first();
if (!$user) {
return response()->json(['message' => 'Invalid activation token!'], 422);
}
if ($user->status == 'activated') {
return response()->json(['message' => 'Your account has already been activated!'], 422);
}
if ($user->status != 'pending_activation') {
return response()->json(['message' => 'Invalid activation token!'], 422);
}
$user->status = 'activated';
$user->save();
$user->notify(new Activated($user));
return response()->json(['message' => 'Your account has been activated!']);
}
public function password(Request $request)
{
$validation = Validator::make($request->all(), [
'email' => 'required|email',
]);
if ($validation->fails()) {
return response()->json(['message' => $validation->messages()->first()], 422);
}
$user = User::whereEmail(request('email'))->first();
if (!$user) {
return response()->json(['message' => 'We couldn\'t found any user with this email. Please try again!'], 422);
}
$token = generateUuid();
\DB::table('password_resets')->insert([
'email' => request('email'),
'token' => $token,
]);
$user->notify(new PasswordReset($user, $token));
return response()->json(['message' => 'We have sent reminder email. Please check your inbox!']);
}
public function validatePasswordReset(Request $request)
{
$validate_password_request = \DB::table('password_resets')->where('token', '=', request('token'))->first();
if (!$validate_password_request) {
return response()->json(['message' => 'Invalid password reset token!'], 422);
}
if (date('Y-m-d H:i:s', strtotime($validate_password_request->created_at.'+30 minutes')) < date('Y-m-d H:i:s')) {
return response()->json(['message' => 'Password reset token is expired. Please request reset password again!'], 422);
}
return response()->json(['message' => '']);
}
public function reset(Request $request)
{
$validation = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required|min:6',
'password_confirmation' => 'required|same:password',
]);
if ($validation->fails()) {
return response()->json(['message' => $validation->messages()->first()], 422);
}
$user = User::whereEmail(request('email'))->first();
if (!$user) {
return response()->json(['message' => 'We couldn\'t found any user with this email. Please try again!'], 422);
}
$validate_password_request = \DB::table('password_resets')->where('email', '=', request('email'))->where('token', '=', request('token'))->first();
if (!$validate_password_request) {
return response()->json(['message' => 'Invalid password reset token!'], 422);
}
if (date('Y-m-d H:i:s', strtotime($validate_password_request->created_at.'+30 minutes')) < date('Y-m-d H:i:s')) {
return response()->json(['message' => 'Password reset token is expired. Please request reset password again!'], 422);
}
$user->password = bcrypt(request('password'));
$user->save();
$user->notify(new PasswordResetted($user));
return response()->json(['message' => 'Your password has been reset. Please login again!']);
}
public function changePassword(Request $request)
{
if (env('IS_DEMO')) {
return response()->json(['message' => 'You are not allowed to perform this action in this mode.'], 422);
}
$validation = Validator::make($request->all(), [
'current_password' => 'required',
'new_password' => 'required|confirmed|different:current_password|min:6',
'new_password_confirmation' => 'required|same:new_password',
]);
if ($validation->fails()) {
return response()->json(['message' => $validation->messages()->first()], 422);
}
$user = JWTAuth::parseToken()->authenticate();
if (!\Hash::check(request('current_password'), $user->password)) {
return response()->json(['message' => 'Old password does not match! Please try again!'], 422);
}
$user->password = bcrypt(request('new_password'));
$user->save();
return response()->json(['message' => 'Your password has been changed successfully!']);
}
}
<?php
namespace App\Api\V1\Controllers;
use App\Http\Controllers\Controller;
use App\Repositories\Api\CmsPage\CmsPageRepository;
class CmsPageController extends Controller
{
public function __construct(CmsPageRepository $cmsgpage)
{
$this->cmsgpage = $cmsgpage;
}
public function showCmsPage($page_slug)
{
$result = $this->cmsgpage->findBySlug($page_slug);
return response()
->json([
'status' => 'ok',
'data' => $result,
]);
}
}
<?php
namespace App\Api\V1\Controllers;
use App\Api\V1\Requests\ForgotPasswordRequest;
use App\Http\Controllers\Controller;
use App\Mail\ForgotPasswordMail;
use App\Repositories\Api\User\PasswordResetRepository;
use App\Repositories\Api\User\UserRepository;
use Carbon\Carbon;
use Illuminate\Support\Facades\Password;
use Symfony\Component\HttpKernel\Exception\HttpException;
/**
* Class ForgotPasswordController.
*/
class ForgotPasswordController extends Controller
{
/**
* @var UserRepository
*/
protected $user;
/**
* ForgotPasswordController constructor.
*
* @param UserRepository $user
*/
public function __construct(UserRepository $user, PasswordResetRepository $passwordreset)
{
$this->user = $user;
$this->passwordreset = $passwordreset;
}
/**
* Recovery password api.
*/
public function forgotpassword(ForgotPasswordRequest $request)
{
$check_user = $this->user->checkUser($request->get('email'));
if (!(empty($check_user))) {
$otp = $this->user->generateOTP();
$attributes = [
'email' => $request->get('email'),
'token' => $otp,
'created_at' => Carbon::now(),
];
$check_reset = $this->passwordreset->getByEmail($request->get('email'));
if (empty($check_reset)) {
$token = $this->passwordreset->create($attributes);
} else {
$token = $this->passwordreset->update($attributes);
}
$forgot_mail = \Mail::to($request->get('email'))->send(new ForgotPasswordMail($otp));
return response()->json([
'status' => 'ok',
'data' => ['token' => $otp],
], 200);
}
throw new HttpException(500, trans('validation.api.forgotpassword.email_not_valid'));
}
}
<?php
namespace App\Api\V1\Controllers;
use App\Api\V1\Requests\LoginRequest;
use App\http\Controllers\Controller;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\JWTAuth;
/**
* Class LoginController.
*/
class LoginController extends Controller
{
/*
* Login api for user
*/
public function login(LoginRequest $request, JWTAuth $JWTAuth)
{
$credentials = [
'email' => $request->email,
'password' => $request->password,
];
try {
/**
* check credentials valid or not.
*/
$token = $JWTAuth->attempt($credentials);
if (!$token) {
throw new AccessDeniedHttpException(trans('validation.api.login.username_password_didnt_match'));
}
} catch (JWTException $e) {
throw new HttpException(500);
}
return response()
->json([
'status' => 'ok',
'token' => $token,
]);
}
}
<?php
namespace App\Api\V1\Controllers;
use App\Api\V1\Requests\ConfirmAccountRequest;
use App\Api\V1\Requests\RegisterRequest;
use App\Http\Controllers\Controller;
use App\Repositories\Api\User\UserRepository;
use Symfony\Component\HttpKernel\Exception\HttpException;
/**
* Class RegisterController.
*/
class RegisterController extends Controller
{
/**
* @var UserRepository
*/
protected $user;
/**
* RegisterController constructor.
*
* @param UserRepository $user
*/
public function __construct(UserRepository $user)
{
$this->user = $user;
}
/*
* Register api.
*/
public function Register(RegisterRequest $request)
{
$user = $this->user->create($request->all());
return response()
->json([
'status' => 'ok',
]);
}
/*
* Confirm account api
*/
public function confirmAccount(ConfirmAccountRequest $request)
{
$user = $this->user->checkUser($request->get('email'));
if (!(empty($user))) {
if ($user[0]['confirmation_code'] != '') {
if (md5($request->get('otp')) == $user[0]['confirmation_code']) {
$checkconfirmation = $this->user->checkconfirmation($request->get('email'));
if ($checkconfirmation[0]['confirmed'] == 0) {
$confirmuser = $this->user->confirmUser($request->get('email'));
} else {
throw new HttpException(500, trans('validation.api.confirmaccount.already_confirmed'));
}
} else {
throw new HttpException(500, trans('validation.api.confirmaccount.invalid_otp'));
}
}
} else {
throw new HttpException(500, trans('validation.api.confirmaccount.invalid_email'));
}
return response()
->json([
'status' => 'ok',
]);
}
}
<?php
namespace App\Api\V1\Controllers;
use App\Api\V1\Requests\ResetPasswordRequest;
use App\Http\Controllers\Controller;
use App\Repositories\Api\User\PasswordResetRepository;
use App\Repositories\Api\User\UserRepository;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
use Symfony\Component\HttpKernel\Exception\HttpException;
/**
* Class ResetPasswordController.
*/
class ResetPasswordController extends Controller
{
/**
* @var UserRepository
*/
protected $user;
/**
* ResetPasswordController constructor.
*
* @param UserRepository $user
*/
public function __construct(UserRepository $user, PasswordResetRepository $passwordreset)
{
$this->user = $user;
$this->passwordreset = $passwordreset;
}
/**
* Resetpassword api.
*/
public function resetpassword(ResetPasswordRequest $request)
{
$check_user = $this->user->checkUser($request->get('email'));
if (!(empty($check_user))) {
$response = $this->passwordreset->checkUser($this->credentials($request));
if (!(empty($response))) {
$resetpassword = $this->user->resetpassword($this->credentials($request));
$remove_token = $this->passwordreset->delete($this->credentials($request));
return response()
->json([
'status' => 'ok',
]);
}
throw new HttpException(500, trans('validation.api.resetpassword.token_not_valid'));
}
throw new HttpException(500, trans('validation.api.resetpassword.email_not_valid'));
}
/**
* Get the password reset credentials from the request.
*
* @param ResetPasswordRequest $request
*
* @return array
*/
protected function credentials(ResetPasswordRequest $request)
{
return $request->all(
'email', 'password', 'password_confirmation', 'token'
);
}
}
<?php
namespace App\Api\V1\Controllers;
use App\http\Controllers\Controller;
use App\Repositories\Api\User\UserRepository;
use Dingo\Api\Routing\Helpers;
use Illuminate\Http\Request;
use JWTAuth;
/**
* Class UserDetailController.
*/
class UserDetailController extends Controller
{
use Helpers;
/**
* @var UserRepository
*/
protected $user;
/**
* ResetPasswordController constructor.
*
* @param UserRepository $user
*/
public function __construct(UserRepository $user)
{
$this->user = $user;
}
/*
* User details api
*/
public function userDetails(Request $request)
{
$currentUser = JWTAuth::parseToken()->authenticate();
$user = $this->user->getById($currentUser->id);
return response()
->json([
'status' => 'ok',
'data' => $user,
]);
}
}
......@@ -73,6 +73,8 @@ class Kernel extends HttpKernel
*/
'access.routeNeedsRole' => \App\Http\Middleware\RouteNeedsRole::class,
'access.routeNeedsPermission' => \App\Http\Middleware\RouteNeedsPermission::class,
'jwt.auth' => \App\Http\Middleware\VerifyJWTToken::class,
#'jwt.auth' => \App\Http\Middleware\VerifyJWTToken::class,
'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
];
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class Activated extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
protected $user;
public function __construct($user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$url = url('/');
return (new MailMessage())
->greeting('Hello!')
->line('Your account has been activated.')
->line('Click on the below link to go to our application!')
->action('Proceed', $url)
->line('Thank you for using our application!');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class Activation extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
protected $user;
public function __construct($user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$url = url('/auth/'.$this->user->activation_token.'/activate');
return (new MailMessage())
->greeting('Hello!')
->line('Thank you for registering an account with us.')
->line('Click on the below link to verify your email!')
->action('Verify now!', $url)
->line('Thank you for using our application!');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class PasswordReset extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
protected $user;
protected $token;
public function __construct($user, $token)
{
$this->user = $user;
$this->token = $token;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$url = url('/password/reset/'.$this->token);
return (new MailMessage())
->greeting('Hello!')
->line('We have recevied password reset request from you!')
->line('Click on the below link to reset your password.')
->action('Reset Password', $url)
->line('If you haven\'t requested for password reset, please ignore this email.')
->line('Thank you!');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class PasswordResetted extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
protected $user;
public function __construct($user)
{
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
*
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
*
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$url = url('/');
return (new MailMessage())
->greeting('Hello!')
->line('Your password has been reset successfully!')
->line('Click on the below link to continue login.')
->action('Login', $url)
->line('If you haven\'t changed your password, please contact administrator.')
->line('Thank you!');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
*
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
......@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "f0db0856ef828bbe877e49a03cca1cd4",
"content-hash": "6ddd07d8806b3ceefd05d8193db4ffaf",
"packages": [
{
"name": "arcanedev/log-viewer",
"version": "4.4.0",
"version": "4.4.1",
"source": {
"type": "git",
"url": "https://github.com/ARCANEDEV/LogViewer.git",
"reference": "5aacb3db635db4225efad9acba65c76fe40f73da"
"reference": "b14e2de1dfe84db80fbc9eb4b12ce05b85a09472"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ARCANEDEV/LogViewer/zipball/5aacb3db635db4225efad9acba65c76fe40f73da",
"reference": "5aacb3db635db4225efad9acba65c76fe40f73da",
"url": "https://api.github.com/repos/ARCANEDEV/LogViewer/zipball/b14e2de1dfe84db80fbc9eb4b12ce05b85a09472",
"reference": "b14e2de1dfe84db80fbc9eb4b12ce05b85a09472",
"shasum": ""
},
"require": {
......@@ -26,6 +26,7 @@
"psr/log": "~1.0"
},
"require-dev": {
"orchestra/testbench": "~3.5.0",
"phpunit/phpcov": "~4.0",
"phpunit/phpunit": "~6.0"
},
......@@ -69,7 +70,7 @@
"log-viewer",
"logviewer"
],
"time": "2017-08-31T16:18:24+00:00"
"time": "2017-10-28T10:32:04+00:00"
},
{
"name": "arcanedev/no-captcha",
......@@ -330,21 +331,21 @@
},
{
"name": "doctrine/annotations",
"version": "v1.4.0",
"version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
"reference": "5beebb01b025c94e93686b7a0ed3edae81fe3e7f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/5beebb01b025c94e93686b7a0ed3edae81fe3e7f",
"reference": "5beebb01b025c94e93686b7a0ed3edae81fe3e7f",
"shasum": ""
},
"require": {
"doctrine/lexer": "1.*",
"php": "^5.6 || ^7.0"
"php": "^7.1"
},
"require-dev": {
"doctrine/cache": "1.*",
......@@ -353,7 +354,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
"dev-master": "1.5.x-dev"
}
},
"autoload": {
......@@ -394,37 +395,41 @@
"docblock",
"parser"
],
"time": "2017-02-24T16:22:25+00:00"
"time": "2017-07-22T10:58:02+00:00"
},
{
"name": "doctrine/cache",
"version": "v1.6.2",
"version": "v1.7.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
"reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
"url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a",
"reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a",
"shasum": ""
},
"require": {
"php": "~5.5|~7.0"
"php": "~7.1"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
"phpunit/phpunit": "~4.8|~5.0",
"predis/predis": "~1.0",
"satooshi/php-coveralls": "~0.6"
"alcaeus/mongo-php-adapter": "^1.1",
"mongodb/mongodb": "^1.1",
"phpunit/phpunit": "^5.7",
"predis/predis": "~1.0"
},
"suggest": {
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6.x-dev"
"dev-master": "1.7.x-dev"
}
},
"autoload": {
......@@ -464,24 +469,24 @@
"cache",
"caching"
],
"time": "2017-07-22T12:49:21+00:00"
"time": "2017-08-25T07:02:50+00:00"
},
{
"name": "doctrine/collections",
"version": "v1.4.0",
"version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
"reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
"url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
"reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
"shasum": ""
},
"require": {
"php": "^5.6 || ^7.0"
"php": "^7.1"
},
"require-dev": {
"doctrine/coding-standard": "~0.1@dev",
......@@ -531,20 +536,20 @@
"collections",
"iterator"
],
"time": "2017-01-03T10:49:41+00:00"
"time": "2017-07-22T10:37:32+00:00"
},
{
"name": "doctrine/common",
"version": "v2.7.3",
"version": "v2.8.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
"reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
"url": "https://api.github.com/repos/doctrine/common/zipball/f68c297ce6455e8fd794aa8ffaf9fa458f6ade66",
"reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66",
"shasum": ""
},
"require": {
......@@ -553,15 +558,15 @@
"doctrine/collections": "1.*",
"doctrine/inflector": "1.*",
"doctrine/lexer": "1.*",
"php": "~5.6|~7.0"
"php": "~7.1"
},
"require-dev": {
"phpunit/phpunit": "^5.4.6"
"phpunit/phpunit": "^5.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7.x-dev"
"dev-master": "2.8.x-dev"
}
},
"autoload": {
......@@ -604,28 +609,30 @@
"persistence",
"spl"
],
"time": "2017-07-22T08:35:12+00:00"
"time": "2017-08-31T08:43:38+00:00"
},
{
"name": "doctrine/dbal",
"version": "v2.5.13",
"version": "v2.6.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "729340d8d1eec8f01bff708e12e449a3415af873"
"reference": "1a4ee83a5a709555f2c6f9057a3aacf892451c7e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
"reference": "729340d8d1eec8f01bff708e12e449a3415af873",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/1a4ee83a5a709555f2c6f9057a3aacf892451c7e",
"reference": "1a4ee83a5a709555f2c6f9057a3aacf892451c7e",
"shasum": ""
},
"require": {
"doctrine/common": ">=2.4,<2.8-dev",
"php": ">=5.3.2"
"doctrine/common": "^2.7.1",
"ext-pdo": "*",
"php": "^7.1"
},
"require-dev": {
"phpunit/phpunit": "4.*",
"phpunit/phpunit": "^5.4.6",
"phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5",
"symfony/console": "2.*||^3.0"
},
"suggest": {
......@@ -637,7 +644,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.5.x-dev"
"dev-master": "2.6.x-dev"
}
},
"autoload": {
......@@ -675,7 +682,7 @@
"persistence",
"queryobject"
],
"time": "2017-07-22T20:44:48+00:00"
"time": "2017-08-28T11:02:56+00:00"
},
{
"name": "doctrine/inflector",
......@@ -1287,16 +1294,16 @@
},
{
"name": "laravel/framework",
"version": "v5.5.14",
"version": "v5.5.20",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "26c700eb79e5bb55b59df2c495c9c71f16f43302"
"reference": "ce0019d22a83b1b240330ea4115ae27a4d75d79c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/26c700eb79e5bb55b59df2c495c9c71f16f43302",
"reference": "26c700eb79e5bb55b59df2c495c9c71f16f43302",
"url": "https://api.github.com/repos/laravel/framework/zipball/ce0019d22a83b1b240330ea4115ae27a4d75d79c",
"reference": "ce0019d22a83b1b240330ea4115ae27a4d75d79c",
"shasum": ""
},
"require": {
......@@ -1337,7 +1344,6 @@
"illuminate/database": "self.version",
"illuminate/encryption": "self.version",
"illuminate/events": "self.version",
"illuminate/exception": "self.version",
"illuminate/filesystem": "self.version",
"illuminate/hashing": "self.version",
"illuminate/http": "self.version",
......@@ -1379,7 +1385,7 @@
"nexmo/client": "Required to use the Nexmo transport (~1.0).",
"pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
"predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).",
"symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).",
"symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).",
"symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)."
......@@ -1415,20 +1421,20 @@
"framework",
"laravel"
],
"time": "2017-10-03T17:41:03+00:00"
"time": "2017-11-07T14:24:50+00:00"
},
{
"name": "laravel/socialite",
"version": "v3.0.7",
"version": "v3.0.9",
"source": {
"type": "git",
"url": "https://github.com/laravel/socialite.git",
"reference": "d79174513dbf14359b53e44394cf71373ae03433"
"reference": "fc1c8d415699e502f3e61cbc61e3250d5bd942eb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/socialite/zipball/d79174513dbf14359b53e44394cf71373ae03433",
"reference": "d79174513dbf14359b53e44394cf71373ae03433",
"url": "https://api.github.com/repos/laravel/socialite/zipball/fc1c8d415699e502f3e61cbc61e3250d5bd942eb",
"reference": "fc1c8d415699e502f3e61cbc61e3250d5bd942eb",
"shasum": ""
},
"require": {
......@@ -1477,7 +1483,7 @@
"laravel",
"oauth"
],
"time": "2017-07-22T14:44:37+00:00"
"time": "2017-11-06T16:02:48+00:00"
},
{
"name": "laravel/tinker",
......@@ -1833,7 +1839,7 @@
},
{
"name": "mtdowling/cron-expression",
"version": "v1.2.0",
"version": "v1.2.1",
"source": {
"type": "git",
"url": "https://github.com/mtdowling/cron-expression.git",
......@@ -1993,16 +1999,16 @@
},
{
"name": "nikic/php-parser",
"version": "v3.1.1",
"version": "v3.1.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "a1e8e1a30e1352f118feff1a8481066ddc2f234a"
"reference": "08131e7ff29de6bb9f12275c7d35df71f25f4d89"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a1e8e1a30e1352f118feff1a8481066ddc2f234a",
"reference": "a1e8e1a30e1352f118feff1a8481066ddc2f234a",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/08131e7ff29de6bb9f12275c7d35df71f25f4d89",
"reference": "08131e7ff29de6bb9f12275c7d35df71f25f4d89",
"shasum": ""
},
"require": {
......@@ -2040,7 +2046,7 @@
"parser",
"php"
],
"time": "2017-09-02T17:10:46+00:00"
"time": "2017-11-04T11:48:34+00:00"
},
{
"name": "paragonie/random_compat",
......@@ -2286,16 +2292,16 @@
},
{
"name": "psy/psysh",
"version": "v0.8.11",
"version": "v0.8.14",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
"reference": "b193cd020e8c6b66cea6457826ae005e94e6d2c0"
"reference": "91e53c16560bdb8b9592544bb38429ae00d6baee"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/b193cd020e8c6b66cea6457826ae005e94e6d2c0",
"reference": "b193cd020e8c6b66cea6457826ae005e94e6d2c0",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/91e53c16560bdb8b9592544bb38429ae00d6baee",
"reference": "91e53c16560bdb8b9592544bb38429ae00d6baee",
"shasum": ""
},
"require": {
......@@ -2355,7 +2361,7 @@
"interactive",
"shell"
],
"time": "2017-07-29T19:30:02+00:00"
"time": "2017-11-04T16:06:49+00:00"
},
{
"name": "ramsey/uuid",
......@@ -2496,16 +2502,16 @@
},
{
"name": "symfony/console",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "116bc56e45a8e5572e51eb43ab58c769a352366c"
"reference": "fd684d68f83568d8293564b4971928a2c4bdfc5c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/116bc56e45a8e5572e51eb43ab58c769a352366c",
"reference": "116bc56e45a8e5572e51eb43ab58c769a352366c",
"url": "https://api.github.com/repos/symfony/console/zipball/fd684d68f83568d8293564b4971928a2c4bdfc5c",
"reference": "fd684d68f83568d8293564b4971928a2c4bdfc5c",
"shasum": ""
},
"require": {
......@@ -2560,20 +2566,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-07T14:16:22+00:00"
},
{
"name": "symfony/css-selector",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "07447650225ca9223bd5c97180fe7c8267f7d332"
"reference": "66e6e046032ebdf1f562c26928549f613d428bd1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/07447650225ca9223bd5c97180fe7c8267f7d332",
"reference": "07447650225ca9223bd5c97180fe7c8267f7d332",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/66e6e046032ebdf1f562c26928549f613d428bd1",
"reference": "66e6e046032ebdf1f562c26928549f613d428bd1",
"shasum": ""
},
"require": {
......@@ -2613,20 +2619,20 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-05T15:47:03+00:00"
},
{
"name": "symfony/debug",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd"
"reference": "74557880e2846b5c84029faa96b834da37e29810"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd",
"reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd",
"url": "https://api.github.com/repos/symfony/debug/zipball/74557880e2846b5c84029faa96b834da37e29810",
"reference": "74557880e2846b5c84029faa96b834da37e29810",
"shasum": ""
},
"require": {
......@@ -2669,20 +2675,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-10T16:38:39+00:00"
},
{
"name": "symfony/event-dispatcher",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "d7ba037e4b8221956ab1e221c73c9e27e05dd423"
"reference": "271d8c27c3ec5ecee6e2ac06016232e249d638d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d7ba037e4b8221956ab1e221c73c9e27e05dd423",
"reference": "d7ba037e4b8221956ab1e221c73c9e27e05dd423",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/271d8c27c3ec5ecee6e2ac06016232e249d638d9",
"reference": "271d8c27c3ec5ecee6e2ac06016232e249d638d9",
"shasum": ""
},
"require": {
......@@ -2732,20 +2738,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-05T15:47:03+00:00"
},
{
"name": "symfony/finder",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "773e19a491d97926f236942484cb541560ce862d"
"reference": "138af5ec075d4b1d1bd19de08c38a34bb2d7d880"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/773e19a491d97926f236942484cb541560ce862d",
"reference": "773e19a491d97926f236942484cb541560ce862d",
"url": "https://api.github.com/repos/symfony/finder/zipball/138af5ec075d4b1d1bd19de08c38a34bb2d7d880",
"reference": "138af5ec075d4b1d1bd19de08c38a34bb2d7d880",
"shasum": ""
},
"require": {
......@@ -2781,20 +2787,20 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-05T15:47:03+00:00"
},
{
"name": "symfony/http-foundation",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "22cf9c2b1d9f67cc8e75ae7f4eaa60e4c1eff1f8"
"reference": "873ccdf8c1cae20da0184862820c434e20fdc8ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/22cf9c2b1d9f67cc8e75ae7f4eaa60e4c1eff1f8",
"reference": "22cf9c2b1d9f67cc8e75ae7f4eaa60e4c1eff1f8",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/873ccdf8c1cae20da0184862820c434e20fdc8ce",
"reference": "873ccdf8c1cae20da0184862820c434e20fdc8ce",
"shasum": ""
},
"require": {
......@@ -2834,20 +2840,20 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
"time": "2017-10-05T23:10:23+00:00"
"time": "2017-11-05T19:07:00+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "654f047a78756964bf91b619554f956517394018"
"reference": "f38c96b8d88a37b4f6bc8ae46a48b018d4894dd0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/654f047a78756964bf91b619554f956517394018",
"reference": "654f047a78756964bf91b619554f956517394018",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/f38c96b8d88a37b4f6bc8ae46a48b018d4894dd0",
"reference": "f38c96b8d88a37b4f6bc8ae46a48b018d4894dd0",
"shasum": ""
},
"require": {
......@@ -2855,7 +2861,7 @@
"psr/log": "~1.0",
"symfony/debug": "~2.8|~3.0",
"symfony/event-dispatcher": "~2.8|~3.0",
"symfony/http-foundation": "~3.3"
"symfony/http-foundation": "^3.3.11"
},
"conflict": {
"symfony/config": "<2.8",
......@@ -2920,20 +2926,20 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
"time": "2017-10-05T23:40:19+00:00"
"time": "2017-11-10T20:08:13+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.5.0",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803"
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
"reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"shasum": ""
},
"require": {
......@@ -2945,7 +2951,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.5-dev"
"dev-master": "1.6-dev"
}
},
"autoload": {
......@@ -2979,20 +2985,20 @@
"portable",
"shim"
],
"time": "2017-06-14T15:44:48+00:00"
"time": "2017-10-11T12:05:26+00:00"
},
{
"name": "symfony/polyfill-php56",
"version": "v1.5.0",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php56.git",
"reference": "e85ebdef569b84e8709864e1a290c40f156b30ca"
"reference": "265fc96795492430762c29be291a371494ba3a5b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/e85ebdef569b84e8709864e1a290c40f156b30ca",
"reference": "e85ebdef569b84e8709864e1a290c40f156b30ca",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/265fc96795492430762c29be291a371494ba3a5b",
"reference": "265fc96795492430762c29be291a371494ba3a5b",
"shasum": ""
},
"require": {
......@@ -3002,7 +3008,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.5-dev"
"dev-master": "1.6-dev"
}
},
"autoload": {
......@@ -3035,20 +3041,20 @@
"portable",
"shim"
],
"time": "2017-06-14T15:44:48+00:00"
"time": "2017-10-11T12:05:26+00:00"
},
{
"name": "symfony/polyfill-util",
"version": "v1.5.0",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-util.git",
"reference": "67925d1cf0b84bd234a83bebf26d4eb281744c6d"
"reference": "6e719200c8e540e0c0effeb31f96bdb344b94176"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/67925d1cf0b84bd234a83bebf26d4eb281744c6d",
"reference": "67925d1cf0b84bd234a83bebf26d4eb281744c6d",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/6e719200c8e540e0c0effeb31f96bdb344b94176",
"reference": "6e719200c8e540e0c0effeb31f96bdb344b94176",
"shasum": ""
},
"require": {
......@@ -3057,7 +3063,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.5-dev"
"dev-master": "1.6-dev"
}
},
"autoload": {
......@@ -3087,20 +3093,20 @@
"polyfill",
"shim"
],
"time": "2017-07-05T15:09:33+00:00"
"time": "2017-10-11T12:05:26+00:00"
},
{
"name": "symfony/process",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "fdf89e57a723a29baf536e288d6e232c059697b1"
"reference": "e14bb64d7559e6923fb13ee3b3d8fa763a2c0930"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/fdf89e57a723a29baf536e288d6e232c059697b1",
"reference": "fdf89e57a723a29baf536e288d6e232c059697b1",
"url": "https://api.github.com/repos/symfony/process/zipball/e14bb64d7559e6923fb13ee3b3d8fa763a2c0930",
"reference": "e14bb64d7559e6923fb13ee3b3d8fa763a2c0930",
"shasum": ""
},
"require": {
......@@ -3136,20 +3142,20 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-05T15:47:03+00:00"
},
{
"name": "symfony/routing",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "2e26fa63da029dab49bf9377b3b4f60a8fecb009"
"reference": "cf7fa1dfcfee2c96969bfa1c0341e5627ecb1e95"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/2e26fa63da029dab49bf9377b3b4f60a8fecb009",
"reference": "2e26fa63da029dab49bf9377b3b4f60a8fecb009",
"url": "https://api.github.com/repos/symfony/routing/zipball/cf7fa1dfcfee2c96969bfa1c0341e5627ecb1e95",
"reference": "cf7fa1dfcfee2c96969bfa1c0341e5627ecb1e95",
"shasum": ""
},
"require": {
......@@ -3214,20 +3220,20 @@
"uri",
"url"
],
"time": "2017-10-02T07:25:00+00:00"
"time": "2017-11-07T14:16:22+00:00"
},
{
"name": "symfony/translation",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "409bf229cd552bf7e3faa8ab7e3980b07672073f"
"reference": "373e553477e55cd08f8b86b74db766c75b987fdb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/409bf229cd552bf7e3faa8ab7e3980b07672073f",
"reference": "409bf229cd552bf7e3faa8ab7e3980b07672073f",
"url": "https://api.github.com/repos/symfony/translation/zipball/373e553477e55cd08f8b86b74db766c75b987fdb",
"reference": "373e553477e55cd08f8b86b74db766c75b987fdb",
"shasum": ""
},
"require": {
......@@ -3279,20 +3285,20 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-07T14:12:55+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "03e3693a36701f1c581dd24a6d6eea2eba2113f6"
"reference": "805de6bd6869073e60610df1b14ab7d969c61b01"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/03e3693a36701f1c581dd24a6d6eea2eba2113f6",
"reference": "03e3693a36701f1c581dd24a6d6eea2eba2113f6",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/805de6bd6869073e60610df1b14ab7d969c61b01",
"reference": "805de6bd6869073e60610df1b14ab7d969c61b01",
"shasum": ""
},
"require": {
......@@ -3347,7 +3353,7 @@
"debug",
"dump"
],
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-07T14:16:22+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
......@@ -3511,16 +3517,16 @@
},
{
"name": "yajra/laravel-datatables-oracle",
"version": "v8.1.0",
"version": "v8.3.2",
"source": {
"type": "git",
"url": "https://github.com/yajra/laravel-datatables.git",
"reference": "92125cc7e0b94375dad740022115182bc6d08f9f"
"reference": "8c3490d7a810824da147161033d6ef272d7c8726"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/yajra/laravel-datatables/zipball/92125cc7e0b94375dad740022115182bc6d08f9f",
"reference": "92125cc7e0b94375dad740022115182bc6d08f9f",
"url": "https://api.github.com/repos/yajra/laravel-datatables/zipball/8c3490d7a810824da147161033d6ef272d7c8726",
"reference": "8c3490d7a810824da147161033d6ef272d7c8726",
"shasum": ""
},
"require": {
......@@ -3577,7 +3583,7 @@
"jquery",
"laravel"
],
"time": "2017-10-08T01:16:25+00:00"
"time": "2017-11-02T02:30:46+00:00"
}
],
"packages-dev": [
......@@ -3651,32 +3657,32 @@
},
{
"name": "doctrine/instantiator",
"version": "1.0.5",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"shasum": ""
},
"require": {
"php": ">=5.3,<8.0-DEV"
"php": "^7.1"
},
"require-dev": {
"athletic/athletic": "~0.1.8",
"ext-pdo": "*",
"ext-phar": "*",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~2.0"
"phpunit/phpunit": "^6.2.3",
"squizlabs/php_codesniffer": "^3.0.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
"dev-master": "1.2.x-dev"
}
},
"autoload": {
......@@ -3701,20 +3707,20 @@
"constructor",
"instantiate"
],
"time": "2015-06-14T21:17:01+00:00"
"time": "2017-07-22T11:58:36+00:00"
},
{
"name": "filp/whoops",
"version": "2.1.10",
"version": "2.1.12",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
"reference": "ffbbd2c06c64b08fb47974eed5dbce4ca2bb0eec"
"reference": "a99f0b151846021ba7a73b4e3cba3ebc9f14f03e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/ffbbd2c06c64b08fb47974eed5dbce4ca2bb0eec",
"reference": "ffbbd2c06c64b08fb47974eed5dbce4ca2bb0eec",
"url": "https://api.github.com/repos/filp/whoops/zipball/a99f0b151846021ba7a73b4e3cba3ebc9f14f03e",
"reference": "a99f0b151846021ba7a73b4e3cba3ebc9f14f03e",
"shasum": ""
},
"require": {
......@@ -3759,10 +3765,10 @@
"exception",
"handling",
"library",
"whoops",
"zf2"
"throwable",
"whoops"
],
"time": "2017-08-03T18:23:40+00:00"
"time": "2017-10-15T13:05:10+00:00"
},
{
"name": "fzaninotto/faker",
......@@ -3908,16 +3914,16 @@
},
{
"name": "maximebf/debugbar",
"version": "v1.14.0",
"version": "v1.14.1",
"source": {
"type": "git",
"url": "https://github.com/maximebf/php-debugbar.git",
"reference": "e23a98f2d65607d8aa6c7b409a513f8fdf4acdde"
"reference": "64251a392344e3d22f3d21c3b7c531ba96eb01d2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/e23a98f2d65607d8aa6c7b409a513f8fdf4acdde",
"reference": "e23a98f2d65607d8aa6c7b409a513f8fdf4acdde",
"url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/64251a392344e3d22f3d21c3b7c531ba96eb01d2",
"reference": "64251a392344e3d22f3d21c3b7c531ba96eb01d2",
"shasum": ""
},
"require": {
......@@ -3965,7 +3971,7 @@
"debug",
"debugbar"
],
"time": "2017-08-17T07:17:00+00:00"
"time": "2017-09-13T12:19:36+00:00"
},
{
"name": "mockery/mockery",
......@@ -4034,37 +4040,40 @@
},
{
"name": "myclabs/deep-copy",
"version": "1.6.1",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
"reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102"
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102",
"reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
"php": "^5.6 || ^7.0"
},
"require-dev": {
"doctrine/collections": "1.*",
"phpunit/phpunit": "~4.1"
"doctrine/collections": "^1.0",
"doctrine/common": "^2.6",
"phpunit/phpunit": "^4.1"
},
"type": "library",
"autoload": {
"psr-4": {
"DeepCopy\\": "src/DeepCopy/"
}
},
"files": [
"src/DeepCopy/deep_copy.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Create deep copies (clones) of your objects",
"homepage": "https://github.com/myclabs/DeepCopy",
"keywords": [
"clone",
"copy",
......@@ -4072,7 +4081,7 @@
"object",
"object graph"
],
"time": "2017-04-12T18:52:22+00:00"
"time": "2017-10-19T19:58:43+00:00"
},
{
"name": "phar-io/manifest",
......@@ -4387,16 +4396,16 @@
},
{
"name": "phpunit/php-code-coverage",
"version": "5.2.2",
"version": "5.2.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "8ed1902a57849e117b5651fc1a5c48110946c06b"
"reference": "8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/8ed1902a57849e117b5651fc1a5c48110946c06b",
"reference": "8ed1902a57849e117b5651fc1a5c48110946c06b",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d",
"reference": "8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d",
"shasum": ""
},
"require": {
......@@ -4405,7 +4414,7 @@
"php": "^7.0",
"phpunit/php-file-iterator": "^1.4.2",
"phpunit/php-text-template": "^1.2.1",
"phpunit/php-token-stream": "^1.4.11 || ^2.0",
"phpunit/php-token-stream": "^2.0",
"sebastian/code-unit-reverse-lookup": "^1.0.1",
"sebastian/environment": "^3.0",
"sebastian/version": "^2.0.1",
......@@ -4447,7 +4456,7 @@
"testing",
"xunit"
],
"time": "2017-08-03T12:40:43+00:00"
"time": "2017-11-03T13:47:33+00:00"
},
{
"name": "phpunit/php-file-iterator",
......@@ -4637,16 +4646,16 @@
},
{
"name": "phpunit/phpunit",
"version": "6.4.1",
"version": "6.4.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "b770d8ba7e60295ee91d69d5a5e01ae833cac220"
"reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b770d8ba7e60295ee91d69d5a5e01ae833cac220",
"reference": "b770d8ba7e60295ee91d69d5a5e01ae833cac220",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/562f7dc75d46510a4ed5d16189ae57fbe45a9932",
"reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932",
"shasum": ""
},
"require": {
......@@ -4717,7 +4726,7 @@
"testing",
"xunit"
],
"time": "2017-10-07T17:53:53+00:00"
"time": "2017-11-08T11:26:09+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
......@@ -4825,30 +4834,30 @@
},
{
"name": "sebastian/comparator",
"version": "2.0.2",
"version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a"
"reference": "1174d9018191e93cb9d719edec01257fc05f8158"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ae068fede81d06e7bb9bb46a367210a3d3e1fe6a",
"reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1174d9018191e93cb9d719edec01257fc05f8158",
"reference": "1174d9018191e93cb9d719edec01257fc05f8158",
"shasum": ""
},
"require": {
"php": "^7.0",
"sebastian/diff": "^2.0",
"sebastian/exporter": "^3.0"
"sebastian/exporter": "^3.1"
},
"require-dev": {
"phpunit/phpunit": "^6.0"
"phpunit/phpunit": "^6.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
"dev-master": "2.1.x-dev"
}
},
"autoload": {
......@@ -4879,13 +4888,13 @@
}
],
"description": "Provides the functionality to compare PHP values for equality",
"homepage": "http://www.github.com/sebastianbergmann/comparator",
"homepage": "https://github.com/sebastianbergmann/comparator",
"keywords": [
"comparator",
"compare",
"equality"
],
"time": "2017-08-03T07:14:59+00:00"
"time": "2017-11-03T07:16:52+00:00"
},
{
"name": "sebastian/diff",
......@@ -5339,16 +5348,16 @@
},
{
"name": "symfony/dom-crawler",
"version": "v3.3.10",
"version": "v3.3.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
"reference": "40dafd42d5dad7fe5ad4e958413d92a207522ac1"
"reference": "cebe3c068867956e012d9135282ba6a05d8a259e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/40dafd42d5dad7fe5ad4e958413d92a207522ac1",
"reference": "40dafd42d5dad7fe5ad4e958413d92a207522ac1",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/cebe3c068867956e012d9135282ba6a05d8a259e",
"reference": "cebe3c068867956e012d9135282ba6a05d8a259e",
"shasum": ""
},
"require": {
......@@ -5391,7 +5400,7 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00"
"time": "2017-11-05T15:47:03+00:00"
},
{
"name": "theseer/tokenizer",
......
......@@ -69,7 +69,7 @@ return [
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Access\User\User::class,
'model' => User::class,
],
// 'users' => [
......
{
"/js/frontend.js": "/js/frontend.70ee44a92d84e7318a9d.js",
"/js/backend.js": "/js/backend.9cdae6ab449e701ce881.js",
"/js/frontend.js": "/js/frontend.2bea3bf4ad584622eb6b.js",
"/js/backend.js": "/js/backend.321ce1e5ca635759765f.js",
"/mix.js": "/mix.247ab120fe7680658924.js",
"/css/frontend.css": "/css/frontend.3af0a6cbd7d1d8d042f2a37e97008b7c.css",
"/css/backend.css": "/css/backend.f8550f50504e5b8ef6055285205f223a.css",
......
<?php
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], function () {
Route::group(['prefix' => 'auth'], function () {
Route::post('/login', 'AuthController@authenticate');
Route::post('/logout', 'AuthController@logout');
Route::post('/check', 'AuthController@check');
Route::post('/register', 'AuthController@register');
Route::get('/activate/{token}', 'AuthController@activate');
Route::post('/password', 'AuthController@password');
Route::post('/validate-password-reset', 'AuthController@validatePasswordReset');
Route::post('/reset', 'AuthController@reset');
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment