1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/components/playback/playaccessvalidation.js

50 lines
1.4 KiB
JavaScript
Raw Normal View History

define(['connectionManager', 'globalize'], function (connectionManager, globalize) {
2018-10-23 01:05:09 +03:00
"use strict";
function getRequirePromise(deps) {
return new Promise(function (resolve, reject) {
require(deps, resolve);
});
2018-10-23 01:05:09 +03:00
}
function showErrorMessage() {
return getRequirePromise(['alert']).then(function (alert) {
return alert(globalize.translate('MessagePlayAccessRestricted')).then(function () {
return Promise.reject();
});
});
2018-10-23 01:05:09 +03:00
}
function PlayAccessValidation() {
this.name = 'Playback validation';
this.type = 'preplayintercept';
this.id = 'playaccessvalidation';
this.order = -2;
2018-10-23 01:05:09 +03:00
}
PlayAccessValidation.prototype.intercept = function (options) {
2018-10-23 01:05:09 +03:00
var item = options.item;
if (!item) {
return Promise.resolve();
}
2018-10-23 01:05:09 +03:00
var serverId = item.ServerId;
if (!serverId) {
return Promise.resolve();
}
return connectionManager.getApiClient(serverId).getCurrentUser().then(function (user) {
if (user.Policy.EnableMediaPlayback) {
return Promise.resolve();
}
// reject but don't show an error message
if (!options.fullscreen) {
return Promise.reject();
}
return showErrorMessage();
});
};
return PlayAccessValidation;
2018-10-23 01:05:09 +03:00
});