mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 10:54:34 -04:00
Working on User Crud
This commit is contained in:
parent
cd84cd48ba
commit
51c5b96b68
@ -23,11 +23,11 @@ class UserFactory
|
|||||||
$user->last_name = '';
|
$user->last_name = '';
|
||||||
$user->phone = '';
|
$user->phone = '';
|
||||||
$user->email = '';
|
$user->email = '';
|
||||||
$user->theme_id = 0;
|
$user->last_login = now();
|
||||||
$user->failed_logins = 0;
|
$user->failed_logins = 0;
|
||||||
$user->signature = '';
|
$user->signature = '';
|
||||||
|
$user->theme_id = 0;
|
||||||
|
|
||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -21,6 +21,7 @@ use App\Http\Requests\User\ShowUserRequest;
|
|||||||
use App\Http\Requests\User\StoreUserRequest;
|
use App\Http\Requests\User\StoreUserRequest;
|
||||||
use App\Http\Requests\User\UpdateUserRequest;
|
use App\Http\Requests\User\UpdateUserRequest;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Repositories\UserRepository;
|
||||||
use App\Transformers\UserTransformer;
|
use App\Transformers\UserTransformer;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -39,11 +40,14 @@ class UserController extends BaseController
|
|||||||
|
|
||||||
protected $entity_transformer = UserTransformer::class;
|
protected $entity_transformer = UserTransformer::class;
|
||||||
|
|
||||||
public function __construct()
|
protected $user_repo;
|
||||||
|
|
||||||
|
public function __construct(UserRepository $user_repo)
|
||||||
{
|
{
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
|
$this->user_repo = $user_repo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,10 +82,22 @@ class UserController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function store(StoreUserRequest $request)
|
public function store(StoreUserRequest $request)
|
||||||
{
|
{
|
||||||
|
$company = auth()->user()->company();
|
||||||
//save user
|
//save user
|
||||||
|
$user = $this->user_repo->save($request->all(), UserFactory::create($company->id, auth()->user()->id));
|
||||||
|
|
||||||
//attach user to company
|
$user->companies()->attach($company->id, [
|
||||||
|
'account_id' => $company->account->id,
|
||||||
|
'is_owner' => 0,
|
||||||
|
'is_admin' => $request->input('is_admin'),
|
||||||
|
'is_locked' => 0,
|
||||||
|
'permissions' => $request->input('permissions'),
|
||||||
|
'settings' => $request->input('settings'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->load('companies');
|
||||||
|
|
||||||
|
return $this->itemResponse($user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +136,10 @@ class UserController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function update(UpdateUserRequest $request, User $user)
|
public function update(UpdateUserRequest $request, User $user)
|
||||||
{
|
{
|
||||||
//
|
$user = $this->user_repo->save($request->all(), $user);
|
||||||
|
|
||||||
|
return $this->itemResponse($user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,9 +148,11 @@ class UserController extends BaseController
|
|||||||
* @param int $id
|
* @param int $id
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function destroy(DestroyUserRequest $request)
|
public function destroy(DestroyUserRequest $request, User $user)
|
||||||
{
|
{
|
||||||
//
|
$user->delete();
|
||||||
|
|
||||||
|
return response()->json([], 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
60
app/Repositories/UserRepository.php
Normal file
60
app/Repositories/UserRepository.php
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Invoice Ninja (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2019. Invoice Ninja LLC (https://invoiceninja.com)
|
||||||
|
*
|
||||||
|
* @license https://opensource.org/licenses/AAL
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\Repositories;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UserRepository
|
||||||
|
*/
|
||||||
|
class UserRepository extends BaseRepository
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the class name.
|
||||||
|
*
|
||||||
|
* @return string The class name.
|
||||||
|
*/
|
||||||
|
public function getClassName()
|
||||||
|
{
|
||||||
|
|
||||||
|
return User::class;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves the user and its contacts
|
||||||
|
*
|
||||||
|
* @param array $data The data
|
||||||
|
* @param \App\Models\user $user The user
|
||||||
|
*
|
||||||
|
* @return user|\App\Models\user|null user Object
|
||||||
|
*/
|
||||||
|
public function save(array $data, User $user) : ?user
|
||||||
|
{
|
||||||
|
|
||||||
|
$user->fill($data);
|
||||||
|
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return $user;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user