[WIP] Fix ergonomics rules

This commit is contained in:
Ludovic CANDELLIER
2020-03-30 00:48:17 +02:00
parent 36267139a1
commit cd9b6ea74c
106 changed files with 1392 additions and 747 deletions

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Repositories;
use App\Models\Core\App\ApplicationPage;
use Illuminate\Support\Facades\Route;
class ApplicationPages
{
public static function getBySlug($application_id, $slug)
{
$app = ApplicationPage::active()->byApplication($application_id)->bySlug($slug)->first();
return $app ? $app->toArray() : null;
}
// récupère toutes les pages actives pour une application
public static function getActiveByApplication($application_id)
{
$app = ApplicationPage::active()->byApplication($application_id)->get();
return $app ? $app->toArray() : null;
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Repositories\Core\App;
use Illuminate\Support\Facades\Route;
use App\Models\Application;
use App\Repositories\ApplicationPages;
use App\Repositories\Languages;
class Applications
{
public static function get($id)
{
return Application::findOrFail($id)->toArray();
}
public static function getCurrent()
{
$route = explode('.', Route::currentRouteName());
$app = isset($route[0]) ? $route[0] : null;
$page = isset($route[1]) ? $route[1] : null;
$action = isset($route[2]) ? $route[2] : null;
if (self::getBySlug($app)) {
$data['current'] = self::getBySlug($app)->toArray();
$application_id = $data['current']['id'];
$data['page'] = ApplicationPages::getBySlug($application_id, $page);
$data['pages'] = ApplicationPages::getActiveByApplication($application_id);
$data['action'] = $action;
} else {
$data['current']['slug'] = $app;
}
$data['langs'] = Languages::getActive();
$data['lang'] = Languages::getCurrent();
return $data;
}
public static function getActives()
{
return Application::active()->get()->toArray();
}
public static function getActivesWithModules()
{
return Application::with('modules')->active()->get()->toArray();
}
public static function getVisibles()
{
return Application::visible()->get()->toArray();
}
public static function getBySlug($slug)
{
return Application::active()->bySlug($slug)->first();
}
}

View File

@@ -0,0 +1,85 @@
<?php
namespace App\Repositories\Core\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Laratrust\Traits\LaratrustUserTrait;
use Yajra\DataTables\DataTables;
use App\Models\Core\Auth\Permission;
class Permissions
{
public static function getModules()
{
return Permission::select('module')->distinct('module')->get()->pluck('module');
}
public static function getOptions()
{
return Permission::orderBy('name', 'asc')->get()->pluck('name', 'id')->toArray();
}
public static function getInfo($id)
{
return Permission::find($id);
}
public static function select_all()
{
return self::getAll()->toArray();
}
public static function select_by_id($id)
{
return Permission::find($id)->toArray();
}
public static function getAll()
{
return Permission::orderBy('name', 'asc')->get();
}
public static function getByName($name)
{
return Permission::where('name', $name)->first();
}
public static function get($id)
{
return Permission::find($id);
}
public static function getTable($id)
{
$datas = Permission::withCount(['users']);
return Datatables::of($datas)->make(true);
}
public static function delete($id)
{
Users::destroyByUniquePermission($id);
return Permission::destroy($id);
}
public static function store($data)
{
return (isset($data['id']) && $data['id']) ? self::update($data) : self::create($data);
}
public static function create($data)
{
return Permission::create($data);
}
public static function update($data)
{
return Permission::find($data['id'])->update($data);
}
public static function count()
{
return Permission::count();
}
}

View File

@@ -0,0 +1,147 @@
<?php
namespace App\Repositories;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Laratrust\Traits\LaratrustUserTrait;
use Yajra\DataTables\DataTables;
use App\Models\Core\Auth\Role;
use App\Models\Core\Auth\RoleUser;
class Roles
{
use LaratrustUserTrait;
public static function store($input)
{
if (isset($input['id']) && $input['id']) {
return self::update($input);
} else {
return self::insert($input);
}
}
// ajoute une forme juridique
public static function insert($input)
{
$permissions = array_keys($input['permissions']);
$name = $input['name'];
$translated = $input['translated'];
self::setTranslation($name, $translated);
$role = Role::create(['name' => $name, 'display_name' => $name, 'translated' => $translated, 'description' => '', 'active' => true]);
$role->attachPermissions($permissions);
return $role;
}
// met à jour les informations d'une forme juridique
public static function update($input, $id = false)
{
$id = ($id) ? $id : $input['id'];
$permissions = array_keys($input['permissions']);
$name = $input['name'];
$translated = $input['translated'];
self::setTranslation($name, $translated);
$role = Role::find($id);
$role->update(['name' => $name, 'translated' => $translated]);
$role->syncPermissions($permissions);
return $role;
}
// supprime une forme juridique
public static function delete($id)
{
$old = self::select_by_id($id);
self::deleteTranslation($old->translated);
return Role::destroy($id);
}
// met à jour le statut actif/inactif d'une forme juridique
public static function toggle_active($id, $active)
{
return Role::find($id)->update(['active' => $active]);
}
// compte le nombre de formes juridiques
public static function count()
{
return Role::count();
}
// récupère toutes les infos sur les formes juridiques
public static function select_all()
{
return Role::all()->toArray();
}
public static function select_by_id($id)
{
return Role::find($id)->toArray();
}
public static function getWithPermissions($id)
{
$role = Role::find($id)->toArray();
$role['permissions'] = Role::find($id)->permissions->pluck('id')->toArray();
return $role;
}
public static function getAll()
{
return Role::orderBy('name', 'asc')->get();
}
public static function getByName($name)
{
return Role::where('name', $name)->first();
}
public static function get($id)
{
return Role::find($id);
}
public static function getTable($id)
{
$datas = Role::orderBy('name', 'asc');
return Datatables::of($datas)->make(true);
}
public static function getRolesByUser($user_id = false)
{
$user_id = $user_id ? $user_id : Users::getId();
return RoleUser::byUser($user_id);
}
public static function getUsersByRole($id)
{
return RoleUser::byTeam($id)->get();
}
public static function getUsersIdByRole($id)
{
return self::getUsersByRole($id)->pluck('user_id');
}
public static function getOptions()
{
return Role::orderBy('name', 'asc')->get()->pluck('name', 'id')->toArray();
}
public static function setTranslation($name, $translated)
{
$lang = Translate::getLang();
$appli = 1; // ContractDrive
$client = 1; // Client
Translations::setTranslation($name, $translated, $lang, $appli, $client);
}
public static function deleteTranslation($translated)
{
$lang = Translate::getLang();
$appli = 1; // ContractDrive
$client = 1; // Client
Translations::deleteTranslation($translated, $lang, $appli, $client);
}
}

View File

@@ -0,0 +1,80 @@
<?php
namespace App\Repositories\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Laratrust\Traits\LaratrustUserTrait;
use Yajra\Datatables\Datatables;
use App\Models\Core\Auth\Team;
use App\Models\Core\Auth\TeamUser;
use App\Repositories\Core\User\Users;
class Teams
{
use LaratrustUserTrait;
public static function getTeamsByUser($user_id = false)
{
$user_id = $user_id ? $user_id : Users::getId();
return TeamUser::byUser($user_id);
}
public static function getUsersByTeam($id)
{
return TeamUser::byTeam($id)->get();
}
public static function getUsersIdByTeam($id)
{
return self::getUsersByTeam($id)->pluck('user_id');
}
public static function getUsersByTeam2($id)
{
return Team::find($id)->users();
}
public static function getOptions()
{
return Team::get()->pluck('name', 'id');
}
public static function get($id)
{
return Team::find($id);
}
public static function getTable($id)
{
$datas = Team::with(['societe'])->withCount(['users']);
return Datatables::of($datas)->make(true);
}
public static function delete($id)
{
Users::destroyByUniqueTeam($id);
return Team::destroy($id);
}
public static function destroyBySociete($id)
{
$teams = Team::bySociete($id)->get();
foreach ($teams as $team) {
self::delete($team->id);
}
}
// ajoute une équipe/service/direction
public static function create($data)
{
return Team::create($data);
}
// met à jour les informations d'une équipe/service/direction
public static function update($data)
{
return Team::find($data['id'])->update($data);
}
}

View File

@@ -0,0 +1,136 @@
<?php
namespace App\Repositories\Core\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Laratrust\Traits\LaratrustUserTrait;
use App\Models\Core\Auth\User;
use App\Models\Core\Auth\RoleUser;
class Users
{
use LaratrustUserTrait;
public static function isAdmin()
{
return (self::hasRole('admin')) ? true : false;
}
public static function getInfo($id = false)
{
return self::getWithDetail($id);
}
public static function getWithDetail($id = false)
{
$id = $id ? $id : self::getId();
return User::where('id', $id)->with(['user_detail'])->first();
}
public static function getEmailsByRole($role) {
return User::select('id','email')->whereRoleIs($role)->get()->toArray();
}
public static function getIdsByRole($role) {
return User::select('id')->whereRoleIs($role)->get()->pluck('id')->toArray();
}
public static function getListByRole($role)
{
return self::selectOptions()->orderBy('nom', 'asc')->whereRoleIs($role)->get();
}
public static function getOptions()
{
return self::selectOptions()->get();
}
public static function selectOptions()
{
return User::select('id', DB::raw("concat(last_name,' ',first_name) as nom"));
}
public static function hasRole($role)
{
$user = self::get();
return $user ? $user->hasRole($role) : false;
}
public static function getId()
{
return self::getUser()->id;
}
public static function get($id = false)
{
$id = $id ? $id : self::getId();
return User::find($id);
}
public static function getUser()
{
return Auth::user();
}
public static function isConnected()
{
return Auth::check();
}
public static function delete($id)
{
$t = RoleUser::byUser($id)->delete();
return User::destroy($id);
}
public static function getByTeam($id)
{
return User::byTeam($id)->get();
}
public static function getByUniqueTeam($id)
{
return User::byTeam($id)->byUniqueTeam()->get();
}
public static function destroyByUniqueTeam($id)
{
return User::byTeam($id)->byUniqueTeam()->delete();
}
// récupère les champs de la table
public static function get_field_table()
{
return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable());
}
// ajoute un utilisateur
public static function insert($data)
{
return User::create($data);
}
// récupère tous les utilisateurs
public static function select_all()
{
return User::all()->toArray();
}
// met à jour les informations d'un utilisateur
public static function update(Request $request)
{
return User::find($data['id'])->update($data);
}
// met à jour le mot de passe d'un utilisateur
public static function update_password($id, $password)
{
$user = User::find($id);
$user->password = Hash::make($password);
return $user->save();
}
}