diff --git a/htdocs/lib/User/User.php b/htdocs/lib/User/User.php index 47955b7..c459e01 100644 --- a/htdocs/lib/User/User.php +++ b/htdocs/lib/User/User.php @@ -8,6 +8,8 @@ namespace UElearning\User; require_once UELEARNING_LIB_ROOT.'/Database/DBUser.php'; require_once UELEARNING_LIB_ROOT.'/User/UserGroupAdmin.php'; require_once UELEARNING_LIB_ROOT.'/User/UserGroup.php'; +require_once UELEARNING_LIB_ROOT.'/User/ClassGroupAdmin.php'; +require_once UELEARNING_LIB_ROOT.'/User/ClassGroup.php'; require_once UELEARNING_LIB_ROOT.'/User/Exception.php'; require_once UELEARNING_LIB_ROOT.'/Exception.php'; require_once UELEARNING_LIB_ROOT.'/Util/Password.php'; @@ -232,7 +234,6 @@ class User { else { throw new Exception\GroupNoFoundException($toGroup); } - } // ------------------------------------------------------------------------ @@ -248,23 +249,69 @@ class User { } /** - * 取得所在群組顯示名稱 + * 取得所在班級名稱 * * @return string 班級名稱 * @since 2.0.0 */ public function getClassName(){ // TODO: 取得所在群組顯示名稱 + // 群組ID + $classID = $this->queryResultArray['class_id']; + + // 檢查有此群組 + if(isset($classID)) { + // 取得群組名稱 + try { + $group = new ClassGroup($classID); + return $group->getName(); + } + catch (Exception\ClassNoFoundException $e) { + throw $e; + } + } + else return null; } /** - * 設定所在群組 - * - * @param string $toGroup 班級ID + * 設定所在班級 + * + * 範例: + * + * try { + * $user = new User\User('yuan'); + * + * try { + * $user->setClass(1); + * } + * catch (User\Exception\ClassNoFoundException $e) { + * echo 'No Class to set: '. $e->getGroupId(); + * } + * } + * catch (User\Exception\UserNoFoundException $e) { + * echo 'No Found user: '. $e->getUserId(); + * } + * + * @param string $toClass 班級ID * @since 2.0.0 */ public function setClass($toClass){ - // TODO: 設定所在群組 + + // 檢查有此群組 + if(isset($toClass)) { + + $classGroupAdmin = new ClassGroupAdmin(); + if($classGroupAdmin->isExist($toClass)) { + $this->setUpdate('class_id', $toClass); + } + else { + throw new Exception\ClassNoFoundException($toGroup); + } + } + else { + $this->setUpdate('class_id', null); + } + } // ======================================================================== diff --git a/htdocs/lib/User/UserAdmin.php b/htdocs/lib/User/UserAdmin.php index 5df69f9..1605ac7 100644 --- a/htdocs/lib/User/UserAdmin.php +++ b/htdocs/lib/User/UserAdmin.php @@ -26,6 +26,10 @@ class UserAdmin { * 建立使用者 * * 建立使用者範例: + * + * require_once __DIR__.'/../config.php'; + * require_once UELEARNING_LIB_ROOT.'/User/UserAdmin.php'; + * use UElearning\User; * * try { * $userAdmin = new User\UserAdmin(); @@ -35,13 +39,13 @@ class UserAdmin { * 'group_id' => 'admin', * 'enable' => true, * 'nickname' => '艾瑞克', - * 'email' => 'eric@example.com' - * )); + * 'email' => 'eric@example.com' ) + * ); * * } * // 若已有重複帳號名稱 * catch (User\Exception\UserIdExistException $e) { - * echo 'Is exist user: ', $e->getUserId(); + * echo 'Is exist user: ', $e->getUserId(); * } * * @param array $userInfoArray 使用者資訊陣列,格式為: diff --git a/htdocs/lib/User/UserSession.php b/htdocs/lib/User/UserSession.php index f2f5b46..d4481f6 100644 --- a/htdocs/lib/User/UserSession.php +++ b/htdocs/lib/User/UserSession.php @@ -27,9 +27,14 @@ class UserSession { * * 範例: * + * require_once __DIR__.'/../config.php'; + * require_once UELEARNING_LIB_ROOT.'/User/UserSession.php'; + * use UElearning\User; + * * try { * $session = new User\UserSession(); - * echo 'Token: '$session->login('yuan', '123456', 'browser'); + * $loginToken = $session->login('yuan', 'password', 'browser'); + * echo 'Token: '.$loginToken; * } * catch (User\Exception\UserNoFoundException $e) { * echo 'No Found user: '. $e->getUserId(); @@ -162,6 +167,25 @@ class UserSession { /** * 取得使用者物件 + * + * 範例: + * + * try { + * // 正常寫法 + * $userSession = new User\UserSession(); + * $user = $userSession->getUser(‘YZ8@(3fYb[!f!A^E4^6b4LuqxSXgZ2FJ’); + * + * // 簡短寫法(PHP 5.4以上才支援) + * //$user = (new User\UserSession())->getUser('YZ8@(3fYb[!f!A^E4^6b4LuqxSXgZ2FJ'); + * + * // 撈帳號資料 + * echo '暱稱: '.$user->getNickName(); // 取得暱稱 + * echo '本名: '.$user->getRealName(); // 取得本名 + * } + * catch (User\Exception\LoginTokenNoFoundException $e) { + * echo 'No Found Token: '. $e->getToken(); + * } + * * @param string $token 登入階段token * @return User 使用者物件 * @throw \UElearning\User\Exception\LoginTokenNoFoundException