%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sender/lib/internals/model/role/ |
| Current File : /home/bitrix/www/bitrix/modules/sender/lib/internals/model/role/permission.php |
<?php
namespace Bitrix\Sender\Internals\Model\Role;
use Bitrix\Main\Application;
use Bitrix\Main\ArgumentException;
use Bitrix\Main\Entity;
/**
* Class PermissionTable
*
* @package Bitrix\Sender\Internals\Model\Role
*/
class PermissionTable extends Entity\DataManager
{
/**
* Get table name.
*
* @return string
* @inheritdoc
*/
public static function getTableName()
{
return 'b_sender_role_permission';
}
/**
* Get map.
*
* @return array
* @inheritdoc
*/
public static function getMap()
{
return array(
'ID' => new Entity\IntegerField('ID', array(
'primary' => true,
'autocomplete' => true,
)),
'ROLE_ID' => new Entity\IntegerField('ROLE_ID', array(
'required' => true,
)),
'ENTITY' => new Entity\StringField('ENTITY', array(
'required' => true,
)),
'ACTION' => new Entity\StringField('ACTION', array(
'required' => true,
)),
'PERMISSION' => new Entity\StringField('PERMISSION'),
'ROLE_ACCESS' => new Entity\ReferenceField(
'ROLE_ACCESS',
'Bitrix\Sender\Internals\Model\Role\Access',
array('=this.ROLE_ID' => 'ref.ROLE_ID'),
array('join_type' => 'INNER')
),
'ROLE' => new Entity\ReferenceField(
'ROLE',
'Bitrix\Sender\Internals\Model\Role\Role',
array('=this.ROLE_ID' => 'ref.ID'),
array('join_type' => 'INNER')
),
);
}
/**
* Deletes all access codes associated with the specified role.
*
* @param int $roleId Id of the role.
* @return Entity\DeleteResult
* @throws ArgumentException
*/
public static function deleteByRoleId($roleId)
{
$roleId = (int) $roleId;
if($roleId <= 0)
{
throw new ArgumentException('Role id should be greater than zero', 'roleId');
}
$sql = "DELETE FROM " . self::getTableName() . " WHERE ROLE_ID = " . $roleId;
Application::getConnection()->queryExecute($sql);
$result = new Entity\DeleteResult();
return $result;
}
}