You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LuticatePermissionsGroupsBusiness.php 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace Luticate\Auth\Business;
  3. use Luticate\Auth\DBO\LuticatePermissionsDbo;
  4. use Luticate\Utils\LuBusiness;
  5. use Luticate\Auth\DataAccess\LuticatePermissionsGroupsDataAccess;
  6. use Luticate\Auth\DBO\LuticatePermissionsGroupsDbo;
  7. use Luticate\Utils\LuMultipleDbo;
  8. class LuticatePermissionsGroupsBusiness extends LuBusiness {
  9. protected static function getDataAccess()
  10. {
  11. return new LuticatePermissionsGroupsDataAccess();
  12. }
  13. public static function checkPermissionGroupName($group_id, $permission_name)
  14. {
  15. LuticateGroupsBusiness::checkGroupId($group_id);
  16. LuticatePermissionsBusiness::checkPermissionName($permission_name);
  17. return LuticatePermissionsGroupsDataAccess::getByName($group_id, $permission_name);
  18. }
  19. public static function getAllByGroup($group_id, $page = 0, $perPage = PHP_INT_MAX)
  20. {
  21. $values = LuticatePermissionsGroupsDataAccess::getAllByGroup($group_id, $page, $perPage);
  22. $dbos = [];
  23. foreach ($values->getData() as $value) {
  24. $dbo = new LuticatePermissionsDbo();
  25. $dbo->setValue($value->getValue());
  26. $dbo->setName($value->getName());
  27. $dbos[] = $dbo;
  28. }
  29. return new LuMultipleDbo($values->getCount(), $dbos);
  30. }
  31. public static function get($group_id, $permission_name)
  32. {
  33. $perm = self::checkPermissionGroupName($group_id, $permission_name);
  34. if (is_null($perm)) {
  35. $perm = new LuticatePermissionsGroupsDbo();
  36. $perm->setName($permission_name);
  37. $perm->setValue(null);
  38. $perm->setGroupId($group_id);
  39. }
  40. return $perm;
  41. }
  42. public static function add($group_id, $permission_name, $permission_value)
  43. {
  44. $perm = self::checkPermissionGroupName($group_id, $permission_name);
  45. if (!is_null($perm)) {
  46. self::badInput("Group permission already exists");
  47. }
  48. $perm = new LuticatePermissionsGroupsDbo();
  49. $perm->setName($permission_name);
  50. $perm->setValue($permission_value);
  51. $perm->setGroupId($group_id);
  52. LuticatePermissionsGroupsDataAccess::add($perm);
  53. return true;
  54. }
  55. public static function del($group_id, $permission_name)
  56. {
  57. self::checkPermissionGroupName($group_id, $permission_name);
  58. LuticatePermissionsGroupsDataAccess::delete($group_id, $permission_name);
  59. return true;
  60. }
  61. public static function edit($group_id, $permission_name, $permission_value)
  62. {
  63. self::del($group_id, $permission_name);
  64. return self::add($group_id, $permission_name, $permission_value);
  65. }
  66. }