From 3680015fd16785c0a25e5cc906330f10bc6f30e2 Mon Sep 17 00:00:00 2001 From: Codeway Date: Thu, 6 Apr 2023 13:50:59 +0200 Subject: [PATCH] Add check user translation rights Add check --- .../quickTranslateObjectBtn.js | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/src/QuickTranslateBundle/Resources/public/js/quick-translate-btn/quickTranslateObjectBtn.js b/src/QuickTranslateBundle/Resources/public/js/quick-translate-btn/quickTranslateObjectBtn.js index 98b610f..90f89f9 100644 --- a/src/QuickTranslateBundle/Resources/public/js/quick-translate-btn/quickTranslateObjectBtn.js +++ b/src/QuickTranslateBundle/Resources/public/js/quick-translate-btn/quickTranslateObjectBtn.js @@ -21,14 +21,16 @@ pimcore.element.quickTranslateObjectBtn = Class.create({ if (this.layout == null) { - var langs = this.getLangExtStore(this.getLanguages(), ["id", "name"]); + + var langsFrom = this.getLangExtStore(this.getLanguagesFrom(), ["id", "name"]); + var langsTo = this.getLangExtStore(this.getLanguagesTo(), ["id", "name"]); var langFrom = new Ext.form.ComboBox({ id: 'langFrom' + this.element.id, name: "langFrom" + this.element.id, valueField: "id", displayField: 'name', - store: langs, + store: langsFrom, editable: false, triggerAction: 'all', mode: "local", @@ -43,7 +45,7 @@ pimcore.element.quickTranslateObjectBtn = Class.create({ name: "langTo" + this.element.id, valueField: "id", displayField: 'name', - store: langs, + store: langsTo, editable: false, triggerAction: 'all', mode: "local", @@ -340,10 +342,41 @@ pimcore.element.quickTranslateObjectBtn = Class.create({ }, + getLanguagesTo: function () { - /* get all available languages configured in admin panel that are supported by deepl*/ - getLanguages: function () { + var locales = pimcore.settings.websiteLanguages.filter(function (language) { + return isDeeplLanguage(language); + }); + var languageAllowed = []; + + // No restriction (empty array) + if(pimcore.currentuser.websiteTranslationLanguagesEdit.length + pimcore.currentuser.websiteTranslationLanguagesView.length == 0 ){ + languageAllowed = locales; + }else{ + for (var j = 0; j < locales.length; j++) { + if( pimcore.currentuser.websiteTranslationLanguagesEdit.includes(locales[j]) ) { + languageAllowed.push(locales[j]); + } + } + } + + var languages = []; + + for (var i = 0; i < locales.length; i++) { + if( languageAllowed.includes(locales[i]) ) { + var langText = pimcore.available_languages[locales[i]] + " [" + locales[i] + "]"; + languages.push([locales[i], langText]); + } + } + ; + + return languages; + + }, + + /* get all available languages configured in admin panel that are supported by deepl*/ + getLanguagesFrom: function () { var locales = pimcore.settings.websiteLanguages.filter(function (language) { return isDeeplLanguage(language); @@ -352,11 +385,11 @@ pimcore.element.quickTranslateObjectBtn = Class.create({ var languages = []; for (var i = 0; i < locales.length; i++) { - var langText = pimcore.available_languages[locales[i]] + " [" + locales[i] + "]"; - languages.push([locales[i], langText]); + var langText = pimcore.available_languages[locales[i]] + " [" + locales[i] + "]"; + languages.push([locales[i], langText]); } ; - + return languages; }, @@ -408,4 +441,4 @@ pimcore.element.quickTranslateObjectBtn = Class.create({ }, -}); \ No newline at end of file +});