| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | <?php
namespace Luticate\Auth\Business;
use Luticate\Utils\LuBusiness;
use Luticate\Auth\DataAccess\LuticateGroupsDataAccess;
use Luticate\Auth\DBO\LuticateGroupsDbo;
class LuticateGroupsBusiness extends LuBusiness {
    protected static function getDataAccess()
    {
        return new LuticateGroupsDataAccess();
    }
    /**
     * @param $group_id
     * @return LuticateGroupsDbo|null
     */
    public static function checkGroupId($group_id)
    {
        $group = LuticateGroupsDataAccess::getById($group_id);
        if (is_null($group)) {
            self::notFound("Group not found");
        }
        return $group;
    }
    public static function getUsers($group_id, $page = 0, $perPage = 2000000000, $query = "")
    {
        return LuticateGroupsDataAccess::getUsers($group_id, $page, $perPage, $query);
    }
    public static function getByName($group_name)
    {
        return LuticateGroupsDataAccess::getByName($group_name);
    }
    public static function hasUser($user_id, $group_id)
    {
        return LuticateGroupsDataAccess::hasUser($user_id, $group_id);
    }
    public static function addUser($user_id, $group_id)
    {
        self::checkGroupId($group_id);
        LuticateUsersBusiness::checkUserId($user_id);
        if (self::hasUser($user_id, $group_id)) {
            return true;
        }
        return LuticateGroupsDataAccess::addUser($user_id, $group_id);
    }
    public static function delUser($user_id, $group_id)
    {
        self::checkGroupId($group_id);
        LuticateUsersBusiness::checkUserId($user_id);
        return LuticateGroupsDataAccess::delUser($user_id, $group_id);
    }
    public static function add($group_name)
    {
        $group = self::getByName($group_name);
        if (is_null($group)) {
            $group = new LuticateGroupsDbo();
            $group->setName($group_name);
            return LuticateGroupsDataAccess::addId($group);
        }
        self::badInput("Group name already exists");
        return -1;
    }
    public static function edit($group_id, $group_name)
    {
        $group = self::getByName($group_name);
        if (!is_null($group) && $group->getId() != $group_id) {
            self::badInput("Group name already exists");
        }
        $group = self::checkGroupId($group_id);
        $group->setName($group_name);
        LuticateGroupsDataAccess::editById($group_id, $group);
        return true;
    }
}
 |