問題一覧に戻る
上級認証・認可
問題54: ロール管理 - 権限システム設計
柔軟なロールベースアクセス制御(RBAC)システムを設計・実装する方法を学習します。このパターンでは、管理者、編集者、閲覧者などのロールを定義し、ユーザーに割り当て、アプリケーション全体で権限をチェックしてきめ細かいアクセス制御を実現します。
# 利用可能なロールを定義
enum role: { guest: 0, member: 1, editor: 2, 3 }
# 新規ユーザーのデフォルトロールを設定
after_initialize :set_default_role, if:
def set_default_role
self.role ||= :member
end
# ユーザーが管理者かチェック
def admin?
current_user&.__?
end
# 汎用的なロールチェックメソッド
def has_role?(role_name)
current_user&.
end