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.

LuticatePermissionsDataAccess.php 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace Luticate\Auth\DataAccess;
  3. use Luticate\Auth\DataAccess\SP\SpLuGetAllUserPermission;
  4. use Luticate\Auth\DataAccess\SP\SpLuGetUserPermission;
  5. use Luticate\Utils\LuDataAccess;
  6. use Luticate\Auth\DataAccess\Models\LuticatePermissions;
  7. use Luticate\Auth\DBO\LuticatePermissionsDbo;
  8. class LuticatePermissionsDataAccess extends LuDataAccess {
  9. protected static function getModel()
  10. {
  11. return new LuticatePermissions();
  12. }
  13. protected static function getOrderBy()
  14. {
  15. return array(array("name", "ASC"));
  16. }
  17. public static function getEffectivePermission($user_id, $permission_name)
  18. {
  19. return SpLuGetUserPermission::execute($user_id, $permission_name)->getVal();
  20. }
  21. public static function getAllEffectivePermission($user_id)
  22. {
  23. return SpLuGetAllUserPermission::execute($user_id);
  24. }
  25. public static function getModelByName($permission_name)
  26. {
  27. return LuticatePermissions::where("name", "=", $permission_name)->first();
  28. }
  29. public static function getByName($permission_name)
  30. {
  31. $perm = self::getModelByName($permission_name);
  32. if (is_null($perm)) {
  33. return null;
  34. }
  35. return $perm->toDbo();
  36. }
  37. public static function delete($permission_name)
  38. {
  39. $perm = self::getModelByName($permission_name);
  40. if (is_null($perm))
  41. return;
  42. $perm->delete();
  43. }
  44. public static function edit($permission_name, $permission_value)
  45. {
  46. $perm = self::getModelByName($permission_name);
  47. if (is_null($perm))
  48. return;
  49. $perm->value = $permission_value;
  50. $perm->save();
  51. }
  52. }