12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
-
- namespace Luticate\Auth\DataAccess;
-
- use Luticate\Utils\LuDataAccess;
- use Luticate\Auth\DataAccess\Models\LuticateGroups;
- use Luticate\Auth\DBO\LuticateGroupsDbo;
- use Luticate\Utils\LuMultipleDbo;
-
- class LuticateGroupsDataAccess extends LuDataAccess {
- protected static function getModel()
- {
- return new LuticateGroups();
- }
-
- protected static function getOrderBy()
- {
- return array(array("name", "ASC"));
- }
-
- /**
- * @param $group_name
- * @return LuticateGroupsDbo|null
- */
- public static function getByName($group_name)
- {
- $group = LuticateGroups::where("name", "=", $group_name)->first();
- if (is_null($group))
- return null;
- return $group->toDbo();
- }
- public static function getUsers($group_id, $page = 0, $perPage = PHP_INT_MAX)
- {
- $model = LuticateGroups::where("group_id", "=", $group_id)
- ->join("luticate_users", "luticate_users.id", "=", "group_id.user_id");
-
- $count = $model->count();
-
- $model = $model->orderBy("luticate_users.username", "ASC");
- $data = $model->take($perPage)->offset($page * $perPage)->get();
- $dbo = self::arrayToDbo($data);
- return new LuMultipleDbo($count, $dbo);
- }
-
- public static function addUser($user_id, $group_id)
- {
- LuticateGroups::find($group_id)->users()->attach($user_id);
- return true;
- }
-
- public static function delUser($user_id, $group_id)
- {
- LuticateGroups::find($group_id)->users()->detach($user_id);
- return true;
- }
-
- public static function hasUser($user_id, $group_id)
- {
- return !is_null(LuticateGroups::find($group_id)->users()->find($user_id));
- }
- }
|