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

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