1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-23 09:51:35 +02:00
invoiceninja/app/Services/UserService.php

121 lines
3.4 KiB
PHP
Raw Normal View History

2015-11-05 23:37:04 +01:00
<?php namespace App\Services;
use URL;
use App\Services\BaseService;
use App\Ninja\Repositories\UserRepository;
class UserService extends BaseService
{
protected $userRepo;
protected $datatableService;
public function __construct(UserRepository $userRepo, DatatableService $datatableService)
{
$this->userRepo = $userRepo;
$this->datatableService = $datatableService;
}
protected function getRepo()
{
return $this->userRepo;
}
/*
public function save()
{
return null;
}
*/
public function getDatatable($accountId)
{
$query = $this->userRepo->find($accountId);
return $this->createDatatable(ENTITY_USER, $query, false);
}
protected function getDatatableColumns($entityType, $hideClient)
{
return [
[
'first_name',
function ($model) {
2016-03-02 14:36:42 +01:00
return $model->public_id ? link_to('users/'.$model->public_id.'/edit', $model->first_name.' '.$model->last_name)->toHtml() : ($model->first_name.' '.$model->last_name);
2015-11-05 23:37:04 +01:00
}
],
[
'email',
function ($model) {
return $model->email;
}
],
[
'confirmed',
function ($model) {
2015-11-21 22:10:26 +01:00
if (!$model->public_id) {
2016-03-16 00:08:00 +01:00
return self::getStatusLabel(USER_STATE_OWNER);
2015-11-21 22:10:26 +01:00
} elseif ($model->deleted_at) {
return self::getStatusLabel(USER_STATE_DISABLED);
} elseif ($model->confirmed) {
2016-03-16 00:08:00 +01:00
if($model->is_admin){
return self::getStatusLabel(USER_STATE_ADMIN);
} else {
return self::getStatusLabel(USER_STATE_ACTIVE);
}
2015-11-21 22:10:26 +01:00
} else {
return self::getStatusLabel(USER_STATE_PENDING);
}
2015-11-05 23:37:04 +01:00
}
],
];
}
protected function getDatatableActions($entityType)
{
return [
[
uctrans('texts.edit_user'),
function ($model) {
return URL::to("users/{$model->public_id}/edit");
2015-11-21 22:10:26 +01:00
},
function ($model) {
return $model->public_id;
2015-11-05 23:37:04 +01:00
}
],
[
uctrans('texts.send_invite'),
function ($model) {
return URL::to("send_confirmation/{$model->public_id}");
},
function ($model) {
2015-11-21 22:10:26 +01:00
return $model->public_id && ! $model->confirmed;
2015-11-05 23:37:04 +01:00
}
]
];
}
2015-11-21 22:10:26 +01:00
private function getStatusLabel($state)
{
$label = trans("texts.{$state}");
$class = 'default';
switch ($state) {
case USER_STATE_PENDING:
2016-03-16 00:08:00 +01:00
$class = 'default';
2015-11-21 22:10:26 +01:00
break;
case USER_STATE_ACTIVE:
2016-03-16 00:08:00 +01:00
$class = 'info';
2015-11-21 22:10:26 +01:00
break;
case USER_STATE_DISABLED:
$class = 'warning';
break;
2016-03-16 00:08:00 +01:00
case USER_STATE_OWNER:
2015-11-21 22:10:26 +01:00
$class = 'success';
break;
2016-03-16 00:08:00 +01:00
case USER_STATE_ADMIN:
$class = 'primary';
break;
2015-11-21 22:10:26 +01:00
}
return "<h4><div class=\"label label-{$class}\">$label</div></h4>";
}
2015-11-05 23:37:04 +01:00
}