storeinit(self::USER_REPO_NAME); } public function writesession(User $user) { $_SESSION['user' . Config::basepath()] = ['level' => $user->level()]; } public function readsession() { $userdatas = []; if (array_key_exists('user' . Config::basepath(), $_SESSION)) { $userdatas = $_SESSION['user' . Config::basepath()]; } $user = new User($userdatas); return $user; } public function login($pass) { $user = new User(['level' => $this->passlevel($pass)]); return $user; } public function passlevel($pass) { if (strip_tags($pass) == Config::admin()) { return $level = self::ADMIN; } elseif (strip_tags($pass) == Config::read()) { return $level = self::READ; } elseif (strip_tags($pass) == Config::editor()) { return $level = self::EDITOR; } elseif ($this->invitetest(strip_tags($pass))) { return $level = self::INVITE; } else { return $level = self::FREE; } } public function invitetest($pass) { $invitepasslist = []; if (in_array($pass, $invitepasslist)) { return true; } else { return false; } } public function logout() { $user = new User(['level' => self::FREE]); return $user; } public function getlister() { $userlist = []; $list = $this->repo->findAll(); foreach ($list as $userdata) { $userlist[$userdata->id] = new User($userdata); } return $userlist; } public function getlisterid(array $idlist = []) { $userdatalist = $this->repo->query() ->where('__id', 'IN', $idlist) ->execute(); $userlist = []; foreach ($userdatalist as $id => $userdata) { $userlist[$id] = new User($userdata); } return $userlist; } public function add(User $user) { $userdata = new \JamesMoss\Flywheel\Document($user->dry()); $userdata->setId($user->id()); $this->repo->store($userdata); } public function get($id) { if ($id instanceof User) { $id = $id->id(); } if (is_string($id)) { $userdata = $this->repo->findById($id); if ($userdata !== false) { return new User($userdata); } else { return false; } } else { return false; } } } ?>