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