a-blog cms PHP API Reference

Helper
in package

Table of Contents

Methods

addExtraLoggedInCookie()  : void
ログインしている場合、権限のCookieを追加
addUserFromOauth()  : int
新しいユーザーをOAuth認証から作成
canAccessAdminLoginFromCurrentIp()  : bool
管理者ログイン用: 現在のIPアドレスからアクセス可能か判断
canAccessSigninFromCurrentIp()  : bool
一般サインイン用: 現在のIPアドレスからアクセス可能か判断
canLoginPage()  : bool
認証前のログインページを表示できるかどうかを判定
canMemberSignin()  : bool
会員サインインが可能かどうかを判定
checkAllowedDevice()  : bool
ログイン許可端末のチェック
createTimedLinkParams()  : string
createUser()  : int
findUser()  : int
登録ユーザーを検索
getAdminLoginAuth()  : array<string|int, string>
管理ログインできる権限を取得
getLogoutRedirectUrl()  : string
ログアウト時のリダイレクト先URLを取得
getSinginAuth()  : array<string|int, string>
一般サインインできる権限を取得
isAuthRequiredPage()  : bool
現在のページが認証が必要なページかどうか判定
isExactPath()  : bool
指定されたパスがブログトップからのパスで余分なパスがないかどうかを判定
isLoggedIn()  : bool
ログイン中かどうか判定
isValidAuthenticatedPath()  : bool
ログイン済みユーザーのページ(マイページ・管理画面)で正しいパスかどうかを判定 deny_blog_loginはログインページの制御なので、ログイン済み操作には適用しない
loginRedirect()  : mixed
ログインリダイレクト処理
matchExactPath()  : bool
ブログコードとセグメントから生成したパスが、リクエストパスと一致するかを判定
postLoginProcessing()  : void
ログイン判定後の処理
redirectToAuthPage()  : never
ログイン・サインインページへリダイレクト
removeExtraLoggedInCookie()  : void
ログインしていない時、追加されるCookieを削除
resizeUserIcon()  : string
ユーザーアイコンのサイズを変更
resolveAuthSystemRequest()  : AuthSystemResolution
認証系URLの解決結果(テンプレート表示 or ログイン画面へのリダイレクト)を取得する
resolveSecretRedirectTarget()  : "login"|"signin"|null
シークレットコンテンツ遮断のリダイレクト先を解決する(副作用なし・テスト対象)
setConstantsAuthSystemPage()  : void
認証系ページの定数をセット
subscriberActivation()  : bool
ユーザーを有効化
updateSessionClientInfo()  : void
ログインセッションに付随するクライアント情報を更新
updateUser()  : mixed
userIconFromUri()  : string
画像URIから画像を生成
validateTimedLinkParams()  : array<string|int, mixed>
canAccessFromCurrentIp()  : bool
IPアドレスチェックの共通ロジック
isMemberAuthPageFeatureAvailable()  : bool
現在の会員向け認証系ページの機能が利用可能かどうかを判定
isMemberAuthSystemPage()  : bool
会員向けの認証系ページ(サインイン/登録/パスワードリセット/パスワードリセット認証/2FA復旧)かどうかを判定
isSignupFeatureEnabled()  : bool
読者登録(サインアップ)機能が有効かどうかを判定
isTwoFactorAuthEnabled()  : bool
二要素認証機能が有効かどうかを判定
requiresAuthenticationForSecretContent()  : bool
シークレットコンテンツへのアクセスに認証が必要か判定
shouldRedirectToSignin()  : bool
シークレットコンテンツ遮断時に、会員サインイン画面へ誘導すべきかを判定する

Methods

addExtraLoggedInCookie()

ログインしている場合、権限のCookieを追加

public addExtraLoggedInCookie(int $uid) : void
Parameters
$uid : int

addUserFromOauth()

新しいユーザーをOAuth認証から作成

public addUserFromOauth(array<string|int, mixed> $data) : int
Parameters
$data : array<string|int, mixed>

OAuth認証データ

Return values
int

canAccessAdminLoginFromCurrentIp()

管理者ログイン用: 現在のIPアドレスからアクセス可能か判断

public canAccessAdminLoginFromCurrentIp() : bool
Return values
bool

true: アクセス可能, false: アクセス不可能

canAccessSigninFromCurrentIp()

一般サインイン用: 現在のIPアドレスからアクセス可能か判断

public canAccessSigninFromCurrentIp() : bool
Return values
bool

true: アクセス可能, false: アクセス不可能

canLoginPage()

認証前のログインページを表示できるかどうかを判定

public canLoginPage(int $bid, string $segment) : bool

deny_blog_login / fix_login_url による、認証ページの露出面を減らすためのアクセス制御。 false の場合に 404 を表示するのは仕様であり、正規URLへのリダイレクトで代替してはいけない。 リダイレクトすると隠している正規URLを教えることになり制限の意味がなくなるうえ、 deny_blog_login はURLの形ではなくブログの属性で拒否するため無限リダイレクトになる。 シークレット遮断(resolveSecretRedirectTarget())の「認証画面へ誘導」とは目的が逆で、 こちらは「認証ページが存在しないことにする」ための判定。

Parameters
$bid : int
$segment : string
Return values
bool

canMemberSignin()

会員サインインが可能かどうかを判定

public canMemberSignin() : bool
Return values
bool

checkAllowedDevice()

ログイン許可端末のチェック

public checkAllowedDevice(array<string|int, mixed> $user) : bool
Parameters
$user : array<string|int, mixed>
Return values
bool

createTimedLinkParams()

public createTimedLinkParams(array<string|int, mixed> $context, int $lifetime) : string
Parameters
$context : array<string|int, mixed>
$lifetime : int
Return values
string

findUser()

登録ユーザーを検索

public findUser(string $email, mixed $bid) : int
Parameters
$email : string
$bid : mixed
Return values
int

getAdminLoginAuth()

管理ログインできる権限を取得

public getAdminLoginAuth() : array<string|int, string>
Return values
array<string|int, string>

getLogoutRedirectUrl()

ログアウト時のリダイレクト先URLを取得

public getLogoutRedirectUrl(int $userId) : string
Parameters
$userId : int
Return values
string

getSinginAuth()

一般サインインできる権限を取得

public getSinginAuth() : array<string|int, string>
Return values
array<string|int, string>

isAuthRequiredPage()

現在のページが認証が必要なページかどうか判定

public isAuthRequiredPage() : bool
Return values
bool

isExactPath()

指定されたパスがブログトップからのパスで余分なパスがないかどうかを判定

public isExactPath(int $bid, string $segment) : bool
Parameters
$bid : int
$segment : string
Return values
bool

isLoggedIn()

ログイン中かどうか判定

public isLoggedIn() : bool
Return values
bool

isValidAuthenticatedPath()

ログイン済みユーザーのページ(マイページ・管理画面)で正しいパスかどうかを判定 deny_blog_loginはログインページの制御なので、ログイン済み操作には適用しない

public isValidAuthenticatedPath(int $bid, string $segment) : bool
Parameters
$bid : int
$segment : string
Return values
bool

loginRedirect()

ログインリダイレクト処理

public loginRedirect(array<string|int, mixed> $user[, string|null $fieldRedirectUrl = null ]) : mixed
Parameters
$user : array<string|int, mixed>
$fieldRedirectUrl : string|null = null

matchExactPath()

ブログコードとセグメントから生成したパスが、リクエストパスと一致するかを判定

public matchExactPath(string $blogCode, string $segment, string $requestPath) : bool
Parameters
$blogCode : string
$segment : string
$requestPath : string
Return values
bool

postLoginProcessing()

ログイン判定後の処理

public postLoginProcessing() : void

redirectToAuthPage()

ログイン・サインインページへリダイレクト

public redirectToAuthPage(["login"|"signin" $type = 'login' ]) : never
Parameters
$type : "login"|"signin" = 'login'
Return values
never

removeExtraLoggedInCookie()

ログインしていない時、追加されるCookieを削除

public removeExtraLoggedInCookie() : void

resizeUserIcon()

ユーザーアイコンのサイズを変更

public resizeUserIcon(string $squarePath) : string
Parameters
$squarePath : string
Return values
string

resolveAuthSystemRequest()

認証系URLの解決結果(テンプレート表示 or ログイン画面へのリダイレクト)を取得する

public resolveAuthSystemRequest() : AuthSystemResolution

副作用を持たず、呼び出し側(main.php)が戻り値(AuthSystemResolution)に従って テンプレート表示またはリダイレクトを行う。シークレットブログ/カテゴリーの未認証アクセス遮断は 認証系画面の表示判定より先に行い、未ログイン時はログイン画面へ誘導する。

Return values
AuthSystemResolution

resolveSecretRedirectTarget()

シークレットコンテンツ遮断のリダイレクト先を解決する(副作用なし・テスト対象)

public resolveSecretRedirectTarget(string|null $blogStatus, string|null $categoryStatus, bool $requiresAuthentication, bool $preferSignin, bool $isAuthRequiredPage, bool $canMemberSignin, bool $isMemberAuthSystemPage, bool $isMemberAuthPageFeatureAvailable, bool $canAccessSigninFromCurrentIp, bool $canAccessAdminLoginFromCurrentIp) : "login"|"signin"|null

グローバル定数・設定への依存はすべて呼び出し側(resolveAuthSystemRequest())で 解決して引数で受け取り、本メソッドは受け取った値だけで判定する。これにより private な shouldRedirectToSignin() を含む判定分岐を、この public メソッド経由で 網羅的にテストできる(グローバル状態をスタブせずに済む)。

Parameters
$blogStatus : string|null

現在のブログステータス(ACMS_RAM::blogStatus(BID))

$categoryStatus : string|null

現在のカテゴリーステータス(CID 未定義なら null)

$requiresAuthentication : bool

未認証アクセスの遮断が必要か(requiresAuthenticationForSecretContent())

$preferSignin : bool

ログイン画面のリダイレクト設定がサインイン(redirect_login_page === 'signin')

$isAuthRequiredPage : bool

認証が必要なページ(管理画面・リビジョンプレビュー)

$canMemberSignin : bool

会員サインイン機能が有効

$isMemberAuthSystemPage : bool

会員向け認証系ページ(サインイン/登録/パスワードリセット/2FA復旧)か

$isMemberAuthPageFeatureAvailable : bool

会員向け認証系ページの機能が利用可能か(isMemberAuthPageFeatureAvailable())

$canAccessSigninFromCurrentIp : bool

現在のIPアドレスから会員サインインページへのアクセスが許可されているか (canAccessSigninFromCurrentIp())。誘導先が signin の場合に確認する。

$canAccessAdminLoginFromCurrentIp : bool

現在のIPアドレスから管理者ログインページへのアクセスが 許可されているか(canAccessAdminLoginFromCurrentIp())。誘導先が login の場合に確認する。 signin_white_hosts と login_white_hosts は管理画面上も「一般サインイン制限」「管理ログイン制限」として 独立した設定のため、誘導先に対応する方の制限だけを確認する。許可されていない場合は一切リダイレクトしない。 リダイレクトすると隠しているはずの認証ページの正規URLを制限対象IPに開示してしまうため (canLoginPage() が同じ理由で 404 を維持しているのと同じ設計方針)

Return values
"login"|"signin"|null

'signin': 会員サインイン画面へ, 'login': 管理者ログイン画面へ, null: 遮断不要

setConstantsAuthSystemPage()

認証系ページの定数をセット

public setConstantsAuthSystemPage(Field $queryParameter) : void
Parameters
$queryParameter : Field

subscriberActivation()

ユーザーを有効化

public subscriberActivation(int $uid) : bool
Parameters
$uid : int
Return values
bool

updateSessionClientInfo()

ログインセッションに付随するクライアント情報を更新

public updateSessionClientInfo(int $uid) : void
Parameters
$uid : int

updateUser()

public updateUser(int $uid, Field_Validation $user[, bool $subscribeLoginAnywhere = false ]) : mixed
Parameters
$uid : int
$user : Field_Validation
$subscribeLoginAnywhere : bool = false

userIconFromUri()

画像URIから画像を生成

public userIconFromUri(string $imageUri) : string
Parameters
$imageUri : string

画像URL

Return values
string

画像パス

validateTimedLinkParams()

public validateTimedLinkParams(string $key, string $salt, string $context) : array<string|int, mixed>
Parameters
$key : string
$salt : string
$context : string
Tags
throws
BadRequestException
throws
ExpiredException
Return values
array<string|int, mixed>

canAccessFromCurrentIp()

IPアドレスチェックの共通ロジック

private canAccessFromCurrentIp(string $whiteListName, string $blackListName) : bool
Parameters
$whiteListName : string
$blackListName : string
Return values
bool

isMemberAuthPageFeatureAvailable()

現在の会員向け認証系ページの機能が利用可能かどうかを判定

private isMemberAuthPageFeatureAvailable() : bool

会員機能自体の有効性に加え、ページ固有の機能スイッチ (サインアップ: subscribe、2FA復旧: two_factor_auth)を確認する。 URL 制約(fix_login_url / deny_blog_login による canLoginPage())は含めない。 URL 制約違反は認証画面へ誘導せず 404 のままにする(正規URLの秘匿を維持し、 同一ページへのリダイレクトループを防ぐ)ため。

Return values
bool

isMemberAuthSystemPage()

会員向けの認証系ページ(サインイン/登録/パスワードリセット/パスワードリセット認証/2FA復旧)かどうかを判定

private isMemberAuthSystemPage() : bool
Return values
bool

isSignupFeatureEnabled()

読者登録(サインアップ)機能が有効かどうかを判定

private isSignupFeatureEnabled() : bool

isMemberAuthPageFeatureAvailable() と resolveAuthSystemRequest() の IS_SYSTEM_SIGNUP_PAGE 分岐の両方から参照する単一の判定源。

Return values
bool

isTwoFactorAuthEnabled()

二要素認証機能が有効かどうかを判定

private isTwoFactorAuthEnabled() : bool

isMemberAuthPageFeatureAvailable() と resolveAuthSystemRequest() の IS_SYSTEM_ADMIN_TFA_RECOVERY_PAGE / IS_SYSTEM_TFA_RECOVERY_PAGE 分岐の 両方から参照する単一の判定源。

Return values
bool

requiresAuthenticationForSecretContent()

シークレットコンテンツへのアクセスに認証が必要か判定

private requiresAuthenticationForSecretContent(string $admin) : bool

シークレットブログ/カテゴリーにアクセスする際、 以下のいずれかに該当する場合は認証(ログイン/サインイン)が必要:

  • プレビュー共有URLではない
  • ログインしていない
  • 認証系ページの場合
  • 拡張機能による特殊な認証をおこなるためのページの場合
Parameters
$admin : string

管理画面パス

Return values
bool

true: 認証が必要, false: アクセス可能(認証不要)

shouldRedirectToSignin()

シークレットコンテンツ遮断時に、会員サインイン画面へ誘導すべきかを判定する

private shouldRedirectToSignin(bool $preferSignin, bool $isAuthRequiredPage, bool $canMemberSignin) : bool

ログイン画面のリダイレクト設定が「サインイン」で、かつ認証必須ページであるか、 または会員サインイン機能が有効な場合にサインイン画面へ誘導する。それ以外は管理者ログイン画面へ。 resolveSecretRedirectTarget() 経由でテストされる。

Parameters
$preferSignin : bool

ログイン画面のリダイレクト設定がサインイン

$isAuthRequiredPage : bool

認証が必要なページ

$canMemberSignin : bool

会員サインイン機能が有効

Return values
bool

true: 会員サインイン画面へ, false: 管理者ログイン画面へ


        
On this page

Search results