Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

LuticateGroupsDataAccess.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Luticate\Auth\DataAccess;
  3. use Luticate\Auth\DataAccess\Models\LuticateUsers;
  4. use Luticate\Auth\DBO\LuticateUsersLightDbo;
  5. use Luticate\Utils\LuDataAccess;
  6. use Luticate\Auth\DataAccess\Models\LuticateGroups;
  7. use Luticate\Auth\DBO\LuticateGroupsDbo;
  8. use Luticate\Utils\LuMultipleDbo;
  9. class LuticateGroupsDataAccess extends LuDataAccess {
  10. protected static function getModel()
  11. {
  12. return new LuticateGroups();
  13. }
  14. protected static function getOrderBy()
  15. {
  16. return array(array("name", "ASC"));
  17. }
  18. /**
  19. * @param $group_name
  20. * @return LuticateGroupsDbo|null
  21. */
  22. public static function getByName($group_name)
  23. {
  24. $group = LuticateGroups::where("name", "=", $group_name)->first();
  25. if (is_null($group))
  26. return null;
  27. return $group->toDbo();
  28. }
  29. public static function getUsers($group_id, $page = 0, $perPage = PHP_INT_MAX)
  30. {
  31. $model = LuticateUsers::where("luticate_users_groups.group_id", "=", $group_id)
  32. ->join("luticate_users_groups", "luticate_users.id", "=", "luticate_users_groups.user_id");
  33. $count = $model->count();
  34. $model = $model->orderBy("luticate_users.username", "ASC");
  35. $data = $model->take($perPage)->offset($page * $perPage)->get();
  36. $usersLight = [];
  37. foreach ($data as $user) {
  38. if (!is_null($user)) {
  39. $usersLight[] = LuticateUsersLightDbo::fromUserDbo($user->toDbo());
  40. }
  41. }
  42. return new LuMultipleDbo($count, $usersLight);
  43. }
  44. public static function addUser($user_id, $group_id)
  45. {
  46. LuticateGroups::find($group_id)->users()->attach($user_id);
  47. return true;
  48. }
  49. public static function delUser($user_id, $group_id)
  50. {
  51. LuticateGroups::find($group_id)->users()->detach($user_id);
  52. return true;
  53. }
  54. public static function hasUser($user_id, $group_id)
  55. {
  56. return !is_null(LuticateGroups::find($group_id)->users()->find($user_id));
  57. }
  58. }