Add support for magic "admin" ACL that is only satisfied by appengine administrators.

This commit is contained in:
Ian Gulliver
2014-06-08 23:41:23 -07:00
parent 44ede2abbf
commit d2e7b76df9
2 changed files with 90 additions and 6 deletions

View File

@@ -629,3 +629,70 @@ asyncTest('Two channels, one client', function() {
});
});
});
asyncTest('subscribe admin ACL', function() {
expect(2);
var subject = randstring();
logout(function() {
var callbacks = {
'onLogin': function() {
cosmo.subscribe({
'name': subject,
'readable_only_by': 'admin'
}).then(function() {
ok(true, 'logged in succeeds');
cosmo.shutdown();
start();
});
}
};
var cosmo = new Cosmopolite(callbacks, null, randstring());
cosmo.subscribe({
'name': subject,
'readable_only_by': 'admin'
}).then(null, function() {
ok(true, 'logged out fails');
window.open(
'/_ah/login?email=test%40example.com&admin=True&action=Login' +
'&continue=/cosmopolite/static/login_complete.html');
});
});
});
asyncTest('sendMessage admin ACL', function() {
expect(2);
var subject = randstring();
var message = randstring();
logout(function() {
var callbacks = {
'onLogin': function() {
cosmo.sendMessage({
'name': subject,
'writable_only_by': 'admin'
}, message).then(function() {
ok(true, 'logged in succeeds');
cosmo.shutdown();
start();
});
}
};
var cosmo = new Cosmopolite(callbacks, null, randstring());
cosmo.sendMessage({
'name': subject,
'writable_only_by': 'admin'
}, message).then(null, function() {
ok(true, 'logged out fails');
window.open(
'/_ah/login?email=test%40example.com&admin=True&action=Login' +
'&continue=/cosmopolite/static/login_complete.html');
});
});
});