 
 
 class AuthorizeSubscriber extends PrivilegedOperation
-    requiredAffiliation: 'moderator'
+    requiredAffiliation: =>
+        if @actorAffiliation is 'owner'
+            yes
+        else if @nodeConfig.channelType is 'topic' and
+                @actorAffiliation is 'moderator'
+            yes
+        else
+            no
 
     privilegedTransaction: (t, cb) ->
         if @req.allow

        cb()

    checkRequiredAffiliation: (t, cb) ->
        if not @requiredAffiliation? or
           isAffiliationAtLeast @actorAffiliation, @requiredAffiliation
            cb()
        else
            cb new errors.Forbidden("Requires affiliation #{@requiredAffiliation} (you are #{@actorAffiliation})")

    # Used by Publish operation
    checkPublishModel: (t, cb) ->

            }

class ManageNodeAffiliations extends PrivilegedOperation
    requiredAffiliation: =>
        if @actorAffiliation is 'owner'
            yes
        else if @nodeConfig.channelType is 'topic' and
                @actorAffiliation is 'moderator'
            yes
        else
            no

    privilegedTransaction: (t, cb) ->
        async.series @req.affiliations.map(({user, affiliation}) =>
