1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
-
- namespace Luticate\Auth\DataAccess;
-
- use Luticate\Auth\DataAccess\Models\LuticateUsers;
- 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 = LuticateUsers::where("luticate_users.id", "=", "luticate_users_groups.user_id")
- ->join("luticate_users_groups", "luticate_users_groups.group_id", "=", $group_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));
- }
- }
|