UserRepository
in package
ユーザーのリポジトリ
Table of Contents
Methods
- countEntriesByUserIds() : array<int, int>
- 指定したユーザー ID に紐づくエントリー数をまとめて集計する
- exists() : bool
- ユーザーが存在するかチェック
- findPrimaryAdmin() : array<string, mixed>|null
- 指定ブログの主たる管理者ユーザーレコードを取得
- inLoginScopeWhere() : SQL_Where
- 「どこでもログイン」が有効なユーザー、または指定ブログに所属するユーザーに絞り込むWHERE句を生成する。 ログイン・パスワード再設定・ユーザー切り替えなど、ブログ横断ログインを考慮する必要がある箇所で 共通利用し、同じ条件の重複実装によるドリフトを防ぐ。
- selectLoginScopeAccount() : array<string, mixed>|null
- inLoginScopeWhere() で引いた候補から、対象のユーザーを1件に決める。
Methods
countEntriesByUserIds()
指定したユーザー ID に紐づくエントリー数をまとめて集計する
public
countEntriesByUserIds(array<string|int, int> $userIds) : array<int, int>
Parameters
- $userIds : array<string|int, int>
-
集計対象のユーザー ID 配列
Return values
array<int, int> —ユーザー ID をキー、エントリー数を値とする連想配列。エントリーを持たないユーザーは含まれない
exists()
ユーザーが存在するかチェック
public
exists(int $userId[, int|null $blogId = null ]) : bool
Parameters
- $userId : int
-
ユーザーID
- $blogId : int|null = null
-
ブログID(指定された場合、そのブログに属するかもチェック)
Return values
bool —存在する場合true
findPrimaryAdmin()
指定ブログの主たる管理者ユーザーレコードを取得
public
findPrimaryAdmin(int $blogId) : array<string, mixed>|null
指定された $blogId に所属する管理者のうち、user_status = 'open' かつ
user_login_expire が今日以降の有効なユーザーから、user_id が最小のレコードを返す
(最も古くから登録されている管理者)。該当ユーザーが存在しない場合は null を返す。
プレビュー共有 URL など、ルートブログの代表管理者を取得したい用途では
呼び出し側で RBID(ルートブログ ID)を渡す。
Parameters
- $blogId : int
-
対象ブログの ID
Return values
array<string, mixed>|nullinLoginScopeWhere()
「どこでもログイン」が有効なユーザー、または指定ブログに所属するユーザーに絞り込むWHERE句を生成する。 ログイン・パスワード再設定・ユーザー切り替えなど、ブログ横断ログインを考慮する必要がある箇所で 共通利用し、同じ条件の重複実装によるドリフトを防ぐ。
public
inLoginScopeWhere(int $blogId) : SQL_Where
Parameters
- $blogId : int
-
絞り込み対象のブログID
Return values
SQL_WhereselectLoginScopeAccount()
inLoginScopeWhere() で引いた候補から、対象のユーザーを1件に決める。
public
selectLoginScopeAccount(array<int, array<string, mixed>> $rows, int $blogId) : array<string, mixed>|null
どこでもログインのユーザーは他ブログにも同じメールアドレスで存在しうる(メールアドレスの重複 検査はブログ単位のため)。指定ブログ所属のユーザーを優先し、それでも1件に決まらなければ 取り違えを避けて null を返す(パスワードログインが複数一致を拒否するのと同じ扱い)。
Parameters
- $rows : array<int, array<string, mixed>>
- $blogId : int