realm-js/lib/management-schema.js
Kristian Dupont 402bf48f88 Permissions api (#1244)
* Add basic permissions skeleton

* ...

* Update permissions api

* Wait for server to process management realm, add offer api

* Fix test of apply and get permissions, add offer test

* Accept permission offer

* Accept permission offer test

* Invalidate permission offer

* Add basic docs (still need some links etc)

* Refactor tests

* Only run permission tests where sync is enabled

* Use legal syntax for user name generation

* Add changelog entry

* Streamline permission tests

* Fix casing for access level names etc.

* Add basic definitions to index.d.ts

* Use settimeout for resolving promise from listener

* Complete typescript defs

* Improve docs

* Allow 'any' as default recipient in getGrantedPermissions

* Fix getSpecialPurposeRealm on iOS

* Response to PR comments

* Respond to PR comments

* Fix offer description

* Skip permission tests in chrome debugger :-/
2017-08-29 15:23:22 +02:00

71 lines
2.7 KiB
JavaScript

////////////////////////////////////////////////////////////////////////////
//
// Copyright 2016 Realm Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////
'use strict';
module.exports = [
{
name: 'PermissionChange',
properties: {
id: { type: 'string' },
createdAt: { type: 'date' },
updatedAt: { type: 'date' },
statusCode: { type: 'int', optional: true },
statusMessage: { type: 'string', optional: true },
userId: { type: 'string' },
metadataKey: { type: 'string', optional: true },
metadataValue: { type: 'string', optional: true },
realmUrl: { type: 'string' },
mayRead: { type: 'bool', optional: true },
mayWrite: { type: 'bool', optional: true },
mayManage: { type: 'bool', optional: true },
},
primaryKey: 'id'
},
{
name: 'PermissionOffer',
properties: {
id: { type: 'string' },
createdAt: { type: 'date' },
updatedAt: { type: 'date' },
statusCode: { type: 'int', optional: true },
statusMessage: { type: 'string', optional: true },
token: { type: 'string', optional: true, indexed: true },
realmUrl: { type: 'string' },
mayRead: { type: 'bool', default: false },
mayWrite: { type: 'bool', default: false },
mayManage: { type: 'bool', default: false },
expiresAt: { type: 'date', optional: true },
},
primaryKey: 'id'
},
{
name: 'PermissionOfferResponse',
properties: {
id: { type: 'string' },
createdAt: { type: 'date' },
updatedAt: { type: 'date' },
statusCode: { type: 'int', optional: true },
statusMessage: { type: 'string', optional: true },
token: { type: 'string' },
realmUrl: { type: 'string', optional: true },
},
primaryKey: 'id'
}
];