| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | <?php
namespace Luticate\Auth\Business;
use Luticate\Auth\DBO\LuticatePermissionsDbo;
use Luticate\Utils\LuBusiness;
use Luticate\Auth\DataAccess\LuticatePermissionsUsersDataAccess;
use Luticate\Auth\DBO\LuticatePermissionsUsersDbo;
use Luticate\Utils\LuMultipleDbo;
class LuticatePermissionsUsersBusiness extends LuBusiness {
    protected static function getDataAccess()
    {
        return new LuticatePermissionsUsersDataAccess();
    }
    public static function checkPermissionUserName($user_id, $permission_name)
    {
        LuticateUsersBusiness::checkUserId($user_id);
        LuticatePermissionsBusiness::checkPermissionName($permission_name);
        return LuticatePermissionsUsersDataAccess::getByName($user_id, $permission_name);
    }
    public static function getAllByUser($user_id, $page = 0, $perPage = PHP_INT_MAX)
    {
        $values = LuticatePermissionsUsersDataAccess::getAllByUser($user_id, $page, $perPage);
        $dbos = [];
        foreach ($values->getData() as $value) {
            $dbo = new LuticatePermissionsDbo();
            $dbo->setValue($value->getValue());
            $dbo->setName($value->getName());
            $dbos[] = $dbo;
        }
        return new LuMultipleDbo($values->getCount(), $dbos);
    }
    public static function get($user_id, $permission_name)
    {
        return LuticatePermissionsUsersDataAccess::getByName($user_id, $permission_name);
    }
    public static function add($user_id, $permission_name, $permission_value)
    {
        $perm = self::checkPermissionUserName($user_id, $permission_name);
        if (!is_null($perm)) {
            self::badInput("User permission already exists");
        }
        $perm = new LuticatePermissionsUsersDbo();
        $perm->setName($permission_name);
        $perm->setValue($permission_value);
        $perm->setUserId($user_id);
        LuticatePermissionsUsersDataAccess::add($perm);
        return true;
    }
    public static function del($user_id, $permission_name)
    {
        self::checkPermissionUserName($user_id, $permission_name);
        LuticatePermissionsUsersDataAccess::delete($user_id, $permission_name);
        return true;
    }
    public static function edit($user_id, $permission_name, $permission_value)
    {
        self::del($user_id, $permission_name);
        return self::add($user_id, $permission_name, $permission_value);
    }
}
 |