       ## Old default: public if available, private otherwise
       #if root?.threadPrivacy? and 'public' not in root.threadPrivacy
       #  message.private = true
+    checkProtected message.protected, group, user
     ## "Reply All" behavior: Initial access for a private message
     ## includes all coauthors and access of parent message,
     ## except for the actual author of this message which isn't needed.

            "Cannot make message public in thread '#{root._id}'"
  null

@canCoauthorsMod = (message, coauthorsMod, client = Meteor.isClient, user = Meteor.user()) ->
  ## Adding coauthors requires no additional permission.
  ## Removing coauthors can be done in the following situations:

@canImport = (group) -> canSuper group
@canSuperdelete = (message) ->
  canSuper message2group message
@canProtect = canSuperdelete  ## same logic as checkProtected

## A user has explicit [read] access to a message if they are a coauthor or
## they are listed in the 'access' list and the message is published and
