class TablePolicy attr_reader :current_user, :model def initialize(current_user, model) @current_user = current_user || User.new @table = model end def index? @current_user.admin? end def show? @current_user.admin? || @current_user == @user end def update? @current_user.admin? # TODO: Allow table owner to edit || @table.owner == @current_user end def destroy? return false if @current_user == @user @current_user.admin? end end