mirror of
https://github.com/Karaka-Management/oms-Organization.git
synced 2026-02-16 00:08:41 +00:00
fixes #135
This commit is contained in:
parent
36e7c7b592
commit
967a34dfeb
|
|
@ -14,10 +14,14 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\Organization\Admin;
|
namespace Modules\Organization\Admin;
|
||||||
|
|
||||||
|
use Model\CoreSettings;
|
||||||
|
|
||||||
|
use Modules\Organization\Controller\ApiController;
|
||||||
|
use Modules\Organization\Models\SettingsEnum;
|
||||||
use Modules\Organization\Models\Unit;
|
use Modules\Organization\Models\Unit;
|
||||||
use Modules\Organization\Models\UnitMapper;
|
use Modules\Organization\Models\UnitMapper;
|
||||||
|
|
||||||
use phpOMS\DataStorage\Database\DatabasePool;
|
use phpOMS\DataStorage\Database\DatabasePool;
|
||||||
|
|
||||||
use phpOMS\Module\InfoManager;
|
use phpOMS\Module\InfoManager;
|
||||||
use phpOMS\Module\InstallerAbstract;
|
use phpOMS\Module\InstallerAbstract;
|
||||||
|
|
||||||
|
|
@ -38,9 +42,39 @@ class Installer extends InstallerAbstract
|
||||||
{
|
{
|
||||||
parent::install($dbPool, $info);
|
parent::install($dbPool, $info);
|
||||||
|
|
||||||
|
self::installDefaultUnit();
|
||||||
|
self::installSettings($dbPool);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install default unit
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private static function installDefaultUnit() : void
|
||||||
|
{
|
||||||
$unit = new Unit();
|
$unit = new Unit();
|
||||||
$unit->setName('Orange Management');
|
$unit->setName('Orange Management');
|
||||||
|
|
||||||
UnitMapper::create($unit);
|
UnitMapper::create($unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install settings
|
||||||
|
*
|
||||||
|
* @param DatabasePool $dbPool Database pool
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private static function installSettings(DatabasePool $dbPool) : void
|
||||||
|
{
|
||||||
|
$settings = new CoreSettings($dbPool->get('insert'));
|
||||||
|
$settings->create(['name' => SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_UNIT, 'content' => '1', 'module' => ApiController::MODULE_NAME]);
|
||||||
|
$settings->create(['name' => SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_DEPARTMENT, 'content' => '1', 'module' => ApiController::MODULE_NAME]);
|
||||||
|
$settings->create(['name' => SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_POSITION, 'content' => '1', 'module' => ApiController::MODULE_NAME]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,16 +38,6 @@ use phpOMS\Utils\Parser\Markdown\Markdown;
|
||||||
* @license OMS License 1.0
|
* @license OMS License 1.0
|
||||||
* @link https://orange-management.org
|
* @link https://orange-management.org
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*
|
|
||||||
* @todo Orange-Management/Modules#135
|
|
||||||
* Automatic group generation *optional*
|
|
||||||
* Whenever a new
|
|
||||||
* * Unit
|
|
||||||
* * Department
|
|
||||||
* * Position
|
|
||||||
* is created a new group is created and all of the possibilities (this should be a optional setting for the module).
|
|
||||||
* Group name strucutre: org:position-department-unit or org:unit-department-position
|
|
||||||
* This should be solvable through hooks.
|
|
||||||
*/
|
*/
|
||||||
final class ApiController extends Controller
|
final class ApiController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -186,7 +176,7 @@ final class ApiController extends Controller
|
||||||
$unit = $this->createUnitFromRequest($request);
|
$unit = $this->createUnitFromRequest($request);
|
||||||
$this->createModel($request->getHeader()->getAccount(), $unit, UnitMapper::class, 'unit');
|
$this->createModel($request->getHeader()->getAccount(), $unit, UnitMapper::class, 'unit');
|
||||||
|
|
||||||
if ($this->app->appSettings->get(SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_UNIT) === '1') {
|
if ($this->app->appSettings->get(null, SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_UNIT) === '1') {
|
||||||
$newRequest = new HttpRequest();
|
$newRequest = new HttpRequest();
|
||||||
$newRequest->setData('name', 'org:unit:' . \strtolower($unit->getName()));
|
$newRequest->setData('name', 'org:unit:' . \strtolower($unit->getName()));
|
||||||
$newRequest->setData('status', GroupStatus::ACTIVE);
|
$newRequest->setData('status', GroupStatus::ACTIVE);
|
||||||
|
|
@ -357,7 +347,7 @@ final class ApiController extends Controller
|
||||||
$position = $this->createPositionFromRequest($request);
|
$position = $this->createPositionFromRequest($request);
|
||||||
$this->createModel($request->getHeader()->getAccount(), $position, PositionMapper::class, 'position');
|
$this->createModel($request->getHeader()->getAccount(), $position, PositionMapper::class, 'position');
|
||||||
|
|
||||||
if ($this->app->appSettings->get(SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_POSITION) === '1') {
|
if ($this->app->appSettings->get(null, SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_POSITION) === '1') {
|
||||||
$newRequest = new HttpRequest();
|
$newRequest = new HttpRequest();
|
||||||
$newRequest->setData('name', 'org:pos:' . \strtolower($position->getName()));
|
$newRequest->setData('name', 'org:pos:' . \strtolower($position->getName()));
|
||||||
$newRequest->setData('status', GroupStatus::ACTIVE);
|
$newRequest->setData('status', GroupStatus::ACTIVE);
|
||||||
|
|
@ -530,7 +520,7 @@ final class ApiController extends Controller
|
||||||
$department = $this->createDepartmentFromRequest($request);
|
$department = $this->createDepartmentFromRequest($request);
|
||||||
$this->createModel($request->getHeader()->getAccount(), $department, DepartmentMapper::class, 'department');
|
$this->createModel($request->getHeader()->getAccount(), $department, DepartmentMapper::class, 'department');
|
||||||
|
|
||||||
if ($this->app->appSettings->get(SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_DEPARTMENT) === '1') {
|
if ($this->app->appSettings->get(null, SettingsEnum::GROUP_GENERATE_AUTOMATICALLY_DEPARTMENT) === '1') {
|
||||||
$newRequest = new HttpRequest();
|
$newRequest = new HttpRequest();
|
||||||
$newRequest->setData('name', 'org:dep:' . \strtolower($department->getName()));
|
$newRequest->setData('name', 'org:dep:' . \strtolower($department->getName()));
|
||||||
$newRequest->setData('status', GroupStatus::ACTIVE);
|
$newRequest->setData('status', GroupStatus::ACTIVE);
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ use phpOMS\Stdlib\Base\Enum;
|
||||||
*/
|
*/
|
||||||
abstract class SettingsEnum extends Enum
|
abstract class SettingsEnum extends Enum
|
||||||
{
|
{
|
||||||
public const GROUP_GENERATE_AUTOMATICALLY_UNIT = 1004700001;
|
public const GROUP_GENERATE_AUTOMATICALLY_UNIT = '1004700001';
|
||||||
public const GROUP_GENERATE_AUTOMATICALLY_DEPARTMENT = 1004700002;
|
public const GROUP_GENERATE_AUTOMATICALLY_DEPARTMENT = '1004700002';
|
||||||
public const GROUP_GENERATE_AUTOMATICALLY_POSITION = 1004700003;
|
public const GROUP_GENERATE_AUTOMATICALLY_POSITION = '1004700003';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user