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.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 = 2000000000)
  20. {
  21. $users = LuticatePermissionsGroupsDataAccess::getAllByGroup($group_id, $page, $perPage);
  22. return $users->map(function($user)
  23. {
  24. $dbo = new LuticatePermissionsDbo();
  25. $dbo->setValue($user->getValue());
  26. $dbo->setName($user->getName());
  27. return $dbo;
  28. });
  29. }
  30. public static function get($group_id, $permission_name)
  31. {
  32. $perm = self::checkPermissionGroupName($group_id, $permission_name);
  33. if (is_null($perm)) {
  34. $perm = new LuticatePermissionsGroupsDbo();
  35. $perm->setName($permission_name);
  36. $perm->setValue(null);
  37. $perm->setGroupId($group_id);
  38. }
  39. return $perm;
  40. }
  41. public static function add($group_id, $permission_name, $permission_value)
  42. {
  43. $perm = self::checkPermissionGroupName($group_id, $permission_name);
  44. if (!is_null($perm)) {
  45. self::badInput("Group permission already exists");
  46. }
  47. $perm = new LuticatePermissionsGroupsDbo();
  48. $perm->setName($permission_name);
  49. $perm->setValue($permission_value);
  50. $perm->setGroupId($group_id);
  51. LuticatePermissionsGroupsDataAccess::add($perm);
  52. return true;
  53. }
  54. public static function del($group_id, $permission_name)
  55. {
  56. self::checkPermissionGroupName($group_id, $permission_name);
  57. LuticatePermissionsGroupsDataAccess::delete($group_id, $permission_name);
  58. return true;
  59. }
  60. public static function edit($group_id, $permission_name, $permission_value)
  61. {
  62. self::del($group_id, $permission_name);
  63. return self::add($group_id, $permission_name, $permission_value);
  64. }
  65. }