show a warning when there are no permissions
This commit is contained in:
parent
3b093a68b2
commit
c4306ca740
|
@ -1,8 +1,9 @@
|
||||||
/* @flow */
|
/* @flow */
|
||||||
import {get_options, set_options} from './options';
|
import {get_options, set_options} from './options';
|
||||||
import {ensurePermissions} from './permissions';
|
import {ensurePermissions, hasPermissions} from './permissions';
|
||||||
|
|
||||||
const ENDPOINT_ID = 'endpoint_id';
|
const ENDPOINT_ID = 'endpoint_id';
|
||||||
|
const HAS_PERMISSION_ID = 'has_permission_id';
|
||||||
const NOTIFICATION_ID = 'notification_id';
|
const NOTIFICATION_ID = 'notification_id';
|
||||||
const DEFAULT_TAGS_ID = 'default_tags_id';
|
const DEFAULT_TAGS_ID = 'default_tags_id';
|
||||||
// TODO specify capture path here?
|
// TODO specify capture path here?
|
||||||
|
@ -26,11 +27,26 @@ function getSaveButton(): HTMLInputElement {
|
||||||
return ((document.getElementById(SAVE_ID): any): HTMLInputElement);
|
return ((document.getElementById(SAVE_ID): any): HTMLInputElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getHasPermission(): HTMLElement {
|
||||||
|
return ((document.getElementById(HAS_PERMISSION_ID): any): HTMLElement);
|
||||||
|
}
|
||||||
|
|
||||||
function restoreOptions() {
|
function restoreOptions() {
|
||||||
get_options(opts => {
|
get_options(opts => {
|
||||||
getEndpoint().value = opts.endpoint;
|
const ep = opts.endpoint;
|
||||||
|
getEndpoint().value = ep;
|
||||||
getDefaultTags().value = opts.default_tags;
|
getDefaultTags().value = opts.default_tags;
|
||||||
getEnableNotification().checked = opts.notification;
|
getEnableNotification().checked = opts.notification;
|
||||||
|
|
||||||
|
hasPermissions(ep).then(has => {
|
||||||
|
if (has) {
|
||||||
|
console.debug('Got permisssions already, nothing to worry about.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.debug('Whoops, no permissions to access %s', ep);
|
||||||
|
// TODO maybe just show button? but then it would need to be reactive..
|
||||||
|
getHasPermission().style.display = 'block';
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,14 @@ function urlForPermissionsCheck(url: string): string {
|
||||||
return u.toString();
|
return u.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function hasPermissions(endpoint: string) {
|
||||||
|
const perms = {
|
||||||
|
origins: [
|
||||||
|
urlForPermissionsCheck(endpoint),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
return chromePermissionsContains(perms);
|
||||||
|
}
|
||||||
|
|
||||||
export function ensurePermissions(endpoint: string) {
|
export function ensurePermissions(endpoint: string) {
|
||||||
const perms = {
|
const perms = {
|
||||||
|
|
|
@ -10,9 +10,14 @@
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<label for="endpoint_id">Endpoint</label>
|
<fieldset>
|
||||||
<div><input type="URL" id="endpoint_id"/></div>
|
<legend>Endpoint</legend>
|
||||||
<label for="notification_id">Notification after capturing</label>
|
<input type='URL' id='endpoint_id'/>
|
||||||
|
<div id='has_permission_id' style="display: none; color: red">
|
||||||
|
No permission to access the endpoint. Will request when you press "Save".
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<label for="notification_id">Notification after capture</label>
|
||||||
<div><input type="checkbox" id="notification_id"/></div>
|
<div><input type="checkbox" id="notification_id"/></div>
|
||||||
<label for="default_tags_id">Default tags</label>
|
<label for="default_tags_id">Default tags</label>
|
||||||
<div><input type="text" id="default_tags_id" /></div>
|
<div><input type="text" id="default_tags_id" /></div>
|
||||||
|
|
Loading…
Reference in a new issue