Repository URL to install this package:
|
Version:
1.0.0 ▾
|
<?php
namespace Modules\Users\Repositories\Eloquent;
use Modules\Core\Repositories\CoreRepository;
use Modules\Users\Contracts\Repositories\UserRepository;
use Modules\Users\Entities\User as Model;
/**
* Class UserRepositoryEloquent
* @package namespace App\Repositories\Eloquent;
*/
class UserRepositoryEloquent extends CoreRepository implements UserRepository
{
/**
* @var bool
*/
protected $skipPresenter = true;
/**
* Specify Validator class name
*
* @return mixed
*/
public function validator()
{
return config('auth.validator.user');
}
/**
* Specify Model class name
*
* @return string
*/
public function model()
{
return config('auth.providers.users.model');
}
public function presenter()
{
return config('users.presenter.user');
}
public function countActive()
{
return $this->model->count();
}
public function createWithRoles(array $userData, array $rolesData)
{
$userData['password'] = bcrypt($userData['password']);
/** @var Model $user * */
$user = $this->create($userData);
$user->assignRole($rolesData);
}
public function updateAndSyncRoles($id, array $userData, array $rolesData)
{
if (isset($userData['password'])) {
if (!empty($userData['password'])) {
$userData['password'] = bcrypt($userData['password']);
} else {
unset($userData['password']);
}
}
/** @var Model $user * */
$user = $this->update($userData, $id);
$user->syncRoles($rolesData);
}
/**
* Delete a entity in repository by id
*
* @param $id
* @return int
*/
public function delete($id)
{
if ($id != auth()->user()->id || $id != 1) {
return parent::delete($id);
} else {
return false;
}
}
}