Admin_channels do not work as expected

Using Sync Gateway 2.8: I wonder if I misunderstood the logic of admin_channels property in Sync Gateway’s user config?

I defined this for the users section of a database config:

"users": {
				"GUEST": {"disabled": true, "admin_channels": []},
				"mtmsuser": {"password": "xxx", "admin_roles": ["mtms"], "admin_channels": ["config", "tickets_open", "deletions"]}
			},

So I expect that the user “mtmsuser” has access to the channels config, tickets_open and deletions without any further action.

In the sync function there is code like this:

if (doc.ticketstatusalias && doc.ticketstatusalias < "10") {			
						channel("tickets_open");
					}

But although I configured the CBL iOS replicator to use these channels I didn’t received documents.

Only after I added an access() call to the sync function:

if (doc.ticketstatusalias && doc.ticketstatusalias < "10") {			
						access("mtmsuser", "tickets_open");
						channel("tickets_open");
					}

the replicator got the documents.

Questions:

  1. Is this the intended behavior?
  2. Is it a difference to define channel access via admin_channels property or via sync function’s access() in terms of performance?
  3. Is there a limit how many channels a user might get access to?

Thanks!