def deletable_by?(current_user)
      return nil unless current_user
      if defined?(EnjuCirculation)
        # 未返却の資料のあるユーザを削除しようとした
        if checkouts.count > 0
          errors[:base] << I18n.t('user.this_user_has_checked_out_item')
        end
      end

      if has_role?('Librarian')
        # 管理者以外のユーザが図書館員を削除しようとした。図書館員の削除は管理者しかできない
        unless current_user.has_role?('Administrator')
          errors[:base] << I18n.t('user.only_administrator_can_destroy')
        end
        # 最後の図書館員を削除しようとした
        if last_librarian?
          errors[:base] << I18n.t('user.last_librarian')
        end
      end

      # 最後の管理者を削除しようとした
      if has_role?('Administrator')
        if Role.where(name: 'Administrator').first.users.count == 1
          errors[:base] << I18n.t('user.last_administrator')
        end
      end

      if errors[:base] == []
        true
      else
        false
      end
    end
def deletable_by?(current_user)
      return nil unless current_user
      if defined?(EnjuCirculation)
        # 未返却の資料のあるユーザを削除しようとした
        if checkouts.count > 0
          errors[:base] << I18n.t('user.this_user_has_checked_out_item')
        end
      end

      if has_role?('Librarian')
        # 管理者以外のユーザが図書館員を削除しようとした。図書館員の削除は管理者しかできない
        unless current_user.has_role?('Administrator')
          errors[:base] << I18n.t('user.only_administrator_can_destroy')
        end
        # 最後の図書館員を削除しようとした
        if last_librarian?
          errors[:base] << I18n.t('user.last_librarian')
        end
      end

      # 最後の管理者を削除しようとした
      if has_role?('Administrator')
        if Role.where(name: 'Administrator').first.users.count == 1
          errors[:base] << I18n.t('user.last_administrator')
        end
      end

      if errors[:base] == []
        true
      else
        false
      end
    end
ユーザが削除可能かどうかをチェックします。
 @param [User] current_user ユーザ
 @return [Object]