File: /home/barbeatleanalyti/public_html/public_html/webmail/modules/Core/Managers/Groups.php
<?php
/**
* This code is licensed under AGPLv3 license or Afterlogic Software License
* if commercial version of the product was purchased.
* For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
*
* @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0
* @license https://afterlogic.com/products/common-licensing Afterlogic Software License
* @copyright Copyright (c) 2019, Afterlogic Corp.
*/
namespace Aurora\Modules\Core\Managers;
/**
* CApiChannelsManager class summary
*
* @package Channels
*/
class Groups extends \Aurora\System\Managers\AbstractManager
{
/**
* @var \Aurora\System\Managers\Eav
*/
public $oEavManager = null;
/**
*
* @param \Aurora\System\Module\AbstractModule $oModule
*/
public function __construct(\Aurora\System\Module\AbstractModule $oModule)
{
parent::__construct($oModule);
$this->oEavManager = \Aurora\System\Managers\Eav::getInstance();
}
/**
* @param int $iPage
* @param int $iItemsPerPage
* @param string $sOrderBy Default value is **Login**
* @param bool $iOrderType Default value is **\Aurora\System\Enums\SortOrder::ASC**
* @param string $sSearchDesc Default value is empty string
*
* @return array|false [Id => [Login, Description]]
*/
public function getUserGroupsList($iPage, $iItemsPerPage, $sOrderBy = 'Login', $iOrderType = \Aurora\System\Enums\SortOrder::ASC, $sSearchDesc = '')
{
$aResult = false;
try
{
$aResultGroups = $this->oEavManager->getObjects(
'Aurora\Modules\Core\Classes\UserGroup',
array('UrlIdentifier', 'IdTenant'),
$iPage,
$iItemsPerPage,
array(
'UrlIdentifier' => '%'.$sSearchDesc.'%'
),
$sOrderBy,
$iOrderType
);
foreach($aResultGroups as $oUserGroup)
{
$aResult[$oUserGroup->EntityId] = array(
$oUserGroup->UrlIdentifier,
$oUserGroup->IdTenant
);
}
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$this->setLastException($oException);
}
return $aResult;
}
/**
* @param string $sSearchDesc Default value is empty string
*
* @return int|false
*/
public function getUserGroupsCount($sSearchDesc = '')
{
$iResult = false;
try
{
$aResults = $this->oEavManager->getObjectsCount(
'Aurora\Modules\Core\Classes\UserGroup',
array(
'UrlIdentifier' => '%'.$sSearchDesc.'%'
)
);
$iResult = count($aResults);
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$this->setLastException($oException);
}
return $iResult;
}
/**
* @param int $iGroupId
*
* @return Aurora\Modules\Core\Classes\Channel
*/
public function getUserGroupById($iGroupId)
{
$oGroup = null;
try
{
$oResult = $this->oEavManager->getObjectById($iGroupId);
if ($oResult instanceOf \Aurora\Modules\Core\Classes\Channel)
{
$oGroup = $oResult;
}
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$this->setLastException($oException);
}
return $oGroup;
}
/**
* @param Aurora\Modules\Core\Classes\UserGroup $oGroup
*
* @return bool
*/
public function isExists(\Aurora\Modules\Core\Classes\UserGroup $oGroup)
{
$bResult = false;
try
{
// $aResultChannels = $this->oEavManager->getObjects(
// 'Aurora\Modules\Core\Classes\UserGroup',
// array('Login'),
// 0,
// 0,
// array('Login' => $oGroup->Login)
// );
//
// if ($aResultChannels)
// {
// foreach($aResultChannels as $oObject)
// {
// if ($oObject->EntityId !== $oGroup->EntityId)
// {
// $bResult = true;
// break;
// }
// }
// }
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$this->setLastException($oException);
}
return $bResult;
}
/**
* @param Aurora\Modules\Core\Classes\UserGroup $oGroup
*
* @return bool
*/
public function saveUserGroup(\Aurora\Modules\Core\Classes\UserGroup &$oGroup)
{
$bResult = false;
try
{
if ($oGroup->validate())
{
if (!$this->isExists($oGroup))
{
if (!$this->oEavManager->saveObject($oGroup))
{
throw new \Aurora\System\Exceptions\ManagerException(Errs::UserGroupsManager_UserGroupCreateFailed);
}
}
else
{
throw new \Aurora\System\Exceptions\ManagerException(Errs::UserGroupsManager_UserGroupAlreadyExists);
}
}
$bResult = true;
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$bResult = false;
$this->setLastException($oException);
}
return $bResult;
}
/**
* @param Aurora\Modules\Core\Classes\UserGroup $oGroup
*
* @return bool
*/
public function updateUserGroup(\Aurora\Modules\Core\Classes\UserGroup $oGroup)
{
$bResult = false;
try
{
if ($oGroup->validate())
{
if (!$this->isExists($oGroup))
{
if (!$this->oEavManager->saveObject($oGroup))
{
throw new \Aurora\System\Exceptions\ManagerException(Errs::UserGroupsManager_UserGroupCreateFailed);
}
}
else
{
throw new \Aurora\System\Exceptions\ManagerException(Errs::UserGroupsManager_UserGroupDoesNotExist);
}
}
$bResult = true;
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$bResult = false;
$this->setLastException($oException);
}
return $bResult;
}
/**
* @todo
* @param Aurora\Modules\Core\Classes\UserGroup $oGroup
*
* @throws $oException
*
* @return bool
*/
public function deleteUserGroup(\Aurora\Modules\Core\Classes\UserGroup $oGroup)
{
$bResult = false;
try
{
// $oTenantsManager = new \Aurora\Modules\Core\Managers\Tenants\Manager();
//
// if ($oTenantsManager && !$oTenantsManager->deleteTenantsByChannelId($oGroup->EntityId, true))
// {
// $oException = $oTenantsManager->GetLastException();
// if ($oException)
// {
// throw $oException;
// }
// }
// $bResult = $this->oEavManager->deleteObject($oGroup->EntityId);
}
catch (\Aurora\System\Exceptions\BaseException $oException)
{
$this->setLastException($oException);
}
return $bResult;
}
}