認証:ユーザーオブジェクト

User(ユーザー)オブジェクトはユーザーの認証のために使われます。ユーザー属性を含む、あなたのウェブサイト/アプリケーションにおけるユーザーアカウントに関連するカスタム情報を保存するには、下記のUserInfo(ユーザー情報)オブジェクトにアクセスしてください。

現在のユーザーオブジェクトを取得

$u = new User()

User() コンストラクタを使用すると、Userオブジェクトは現在ログインしているユーザーアカウントを格納します。

任意のユーザーオブジェクトを取得

$u = User::getByUserID($userID)

特定のユーザーIDのユーザーオブジェクトを返します。

メソッド

User::getByUserID($userID)

特定のユーザーIDのユーザーオブジェクトを返します。

User::loginByUserID($userID)

現在のセッションを置き換え$userIDでログインしなおします。

$u->isRegistered()

現在のUserオブジェクトが登録済みかどうかを返します。コンストラクタを使用した際に、現在のセッションのユーザーオブジェクトが登録済みかどうかを調べるのに便利です。

$u->isLoggedIn()

現在のUserオブジェクトがログインしているかどうかをチェックします。

$u->checkLogin()

現在の$uオブジェクトがログインしており、アクティブな場合はtrueを返します。ユーザーアカウントが最後にオンラインだった時間を更新します。

$u->recordLogin()

ユーザーのログイン履歴を更新します。ログイン回数プロパティに1を加えます。

$u->recordView($page)

ユーザーが与えられたページを見たことを記録します。

User::encryptPassword($password, $salt = PASSWORD_SALT)

渡された $password を暗号化しUserレコードに保存します。

$u->isActive()

ユーザーが有効な際にtrueを返します。

$u->isSuperUser()

ユーザーオブジェクトが特権管理者(User ID 1)の場合trueを返します。

$u->getLastOnline()

ユーザーが最後にオンラインだったタイムスタンプを取得します。

$u->getUserName()

ユーザー名を取得します。

$u->getUserID()

ユーザーIDを取得します

$u->getUserTimezone()

タイムゾーンが使用されている際、ユーザーのタイムゾーンを取得します

$u->logout();

ユーザーセッションのクッキーを破棄し、ログアウトします

$groups = $u->getUserGroups()

ユーザーオブジェクトが所属する、グループIDをキー、グループ名を値としたグループの連想配列を返します。

$u->enterGroup(Group $g)

Groupオブジェクトが渡された場合、ユーザーをそのグループに入れます。

$u->exitGroup(Group $g)

Groupオブジェクトが渡された場合、ユーザーをそのグループから外します。

$u->inGroup(Group $g)

ユーザーがグループ $g に入っている場合に true を返します。

$u->loadCollectionEdit($page)

指定したページがユーザーによって編集中の状態にします。

$u->unloadCollectionEdit($page)

ページを非編集中に戻します。

$u->config($key)

特定のユーザーレコードに保存された $key の設定値を取り出します。

$u->saveConfig($key, $value)

特定のキー/バリュー設定ペアをユーザーレコードに保存します。

ユーザー情報:UserInfoオブジェクト

Userオブジェクトは認証やグループに関する操作を行ないますが、UserInfoオブジェクトはユーザーオブジェクトに関する全てのコア・プロパティーや属性へのアクセスを提供します。プログラムからの追加、更新、削除が行なえます。

UserInfoオブジェクトの取得

	$ui = UserInfo::getByID($userID)
$ui = UserInfo::getByUserName($username)
$ui = UserInfo::getByEmail($email)
$ui = UserInfo::getByOpenID($openID); // does not log a user in

これらのメソッドは全てUserInfoオブジェクトを返します。

コアユーザーデータを取得するメソッド

User $u = $ui->getUserObject()

UserInfoオブジェクトを元にUserオブジェクトを返します。

$ui->hasAvatar()

ユーザーがアバターを持っている際、trueを返します。

$ui->getLastLogin()

ユーザーが最後にログインした時間を取得します。

$ui->getPreviousLogin()

前回のログイン情報を取得します。

$ui->isActive()

ユーザーが有効な場合にtrueを返します。

$ui->isValidated()

ユーザーのメールアドレスが認証されている際に1、認証されていない際に0、認証が必要ではない場合に-1を返します。

$ui->isFullRecord()

ユーザーがメールアドレスのみで必要なユーザーレコードを満たしていない場合に0を返します。

$ui->getNumLogins()

ユーザーが過去にログインした回数を取得します。

$ui->getUserEmail()

ユーザーのメールアドレスを返します。

$ui->getUserPassword()

ユーザーの暗号化されたパスワードを返します。

$ui->getUserDateAdded($type = 'system')

ユーザーが追加された日付を返します。'user'を渡すとユーザーのタイムゾーンを考慮した日付が返ります(ENABLE_USER_TIMEZONESをオンにする必要があります)。

$ui->getLastOnline($type = 'system')

ユーザーが最後にオンラインになった日付を返します。'user'を渡すとユーザーのタイムゾーンを考慮した日付が返ります(ENABLE_USER_TIMEZONESをオンにする必要があります)。

$ui->getUserName()

$ui->getUserID()

$ui->getUserTimezone()

これらはUserオブジェクトと場合と同じです。

ユーザー属性を取得/設定する

$value = $ui->getAttribute(mixed $ak, $displayMode = false)

$ak にもとづくユーザーの属性値を返します。$ak は属性キーのハンドル、またはUserAttributeKeyオブジェクトです。$displayMode は適切な値を表示するために属性タイプコントローラーのどのメソッドを実行するかを指定します。

	print $ui->getAttribute('my_rating'); // 数値を返します。
print $ui->getAttribute(' my_rating', 'display'); // HTMLのレーティング表示(星)を返します。

また、UserInfoオブジェクトは全てのユーザー属性を取得するマジックメソッドを作成します。"getUser"のあとに属性ハンドルをキャメルケースにしてつなげて使えます。

print $ui->getUserMyRating();
print $ui->getUserGender(); // "genter" というハンドルの属性値を返します。
print $ui->getUserDateOfBirth(); // "date_of_birth" ハンドル

$ui->clearAttribute(mixed $ak)

属性 $ak を削除します。$ak は属性キーのハンドル、またはUserAttributeKeyオブジェクトです。キーを削除するのではなく、ユーザーに設定された値を取り除きます。

$ui->reindex()

与えられたユーザーのユーザー属性を再インデックスします。

$ui->setAttribute(mixed $ak, $value)

特定のUserInfoレコードに関連する属性 $ak の値を設定します。$ak は属性キーのハンドル、またはUserAttributeKeyオブジェクトです。

AttributeValue $av = $ui->getAttributeValueObject($ak, $createIfNotFound = false)

現在のUserInfoオブジェクトとAttributeKeyオブジェクトの組み合わせによるAttributeValueオブジェクトを返します。

ユーザーを追加する

$newUserInfoObject = UserInfo::add($data)

$data は次のデータを含む配列になります。

  • uName - ユーザー名。必須
  • uEmail - メールアドレス。必須
  • uPassword - 暗号化前のパスワード
  • uIsValidated - メールアドレスが認証済みかどうか。指定しない場合は、-1が保存されます。
  • uIsFullRecord - 配列内で0に指定しない限り1に設定されます。

ユーザーを更新する

$ui->update($data)

$data は次のデータを含む配列になります。

  • uName - ユーザー名。必須
  • uEmail - メールアドレス。必須
  • uHasAvatar - ユーザーがアバターを設定している場合は1、そうでない場合は0
  • uTimezone - ユーザーのタイムゾーン
  • uPassword - 暗号化前のパスワード。

$ui->changePassword($newPassword)

ユーザーのパスワードを変更する。

$ui->activate()

ユーザーアカウントを有効化する。

$ui->deactivate()

ユーザーアカウントを無効化する。

$ui->resetUserPassword()

ユーザーのパスワードをリセットし、新しいパスワードを返します。

ユーザーを削除する

$ui->delete()

全ての属性とグループへの所属情報を含むユーザーデータを削除します。ブロックやページの所有者は特権管理者に移動します。特権管理者は削除できません。

Methods for Dealing with Private Messages

As of concrete 5.3, the core includes support for private messaging between users, if user profiles are enabled. The following methods are useful in this regard.

$ui->sendPrivateMessage(UserInfo $recipient, $subject, $text, UserPrivateMessage $inReplyTo = false)

Sends a private message to a user.

$ui->canReadPrivateMessage($userPrivateMessage)

Returns true if the user can read the private message (i.e. their user ID matches.) You can learn more about the UserPrivateMessage object in the Profile Section.


 

原文:Users