class Ability
  include CanCan::Ability

  def initialize user
    read_only = true

    can :read, :all

    if user && user.admin?
      can :manage, :all
    elsif user && !read_only
      can :create, :all
      can :edit, :all
    end
  end
end

class Ability
  include CanCan::Ability

  def initialize user
    read_only = true

    can :read, :all

    if user && user.admin?
      can :manage, :all
    elsif user
      can :create, :all unless read_only
      can :edit, :all
    end
  end
end

Allow users to edit descriptions
Allow users to edit descriptions

even in read-only mode
