Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
b8d860f
Merge pull request #2544 from elcreator/fix-action-buttons-alignment
Seiger Nov 2, 2026
94e60f3
fix(file-browser): preserve group permissions for shared storage
MiddleSokilAI Nov 2, 2026
0bd022d
fix(tests): accept cached site-wide ACL root lookup
MiddleSokilAI Nov 2, 2026
1dc336c
fix(file-browser): map shared roots from the configured upload URL
elcreator Nov 3, 2026
c8f817c
upd(file-manager): pass operator links to somewhere new in both file …
elcreator Nov 3, 2026
20a32a0
fix(file-manager): protect folders by real target and never write thr…
elcreator Nov 3, 2026
20d14aa
Merge pull request #2549 from elcreator/fix-group-permissions-for-sha…
Seiger Nov 3, 2026
b93b804
fix(installer): stop CLI input loops on EOF
MiddleSokilAI Nov 2, 2026
4d5902a
Merge pull request #2550 from elcreator/fix-cli-installer-eof-3.5
Seiger Nov 4, 2026
cbc23d7
fix(installer): make "remove the install folder" work
elcreator Nov 4, 2026
ee88a18
fix(tests): keep the installer flow test off any real database
elcreator Nov 4, 2026
7e6133d
fix(nginx): let the classic updater run update.php
elcreator Nov 5, 2026
a0444f8
fix(packages): stop treating a branch as changed when only one side n…
elcreator Nov 5, 2026
15ca55a
fix(installer): accept database hosts with underscores
elcreator Nov 5, 2026
c3443da
fix(installer): let a SQLite database sit in a folder below core/data…
elcreator Nov 5, 2026
6dca225
fix(installer): tell visitors behind a proxy apart in the installer lock
elcreator Nov 5, 2026
35003b7
upd(installer): say on the connection form which settings the environ…
elcreator Nov 5, 2026
bf731f2
add(manager): warn when the .htaccess of a site lacks the rules of it…
elcreator Nov 5, 2026
02fd7b4
upd(lang): translate the .htaccess warning and the form notice
elcreator Nov 5, 2026
b0c2f3a
fix(deps): update symfony packages for the advisories of 2026-11-04
elcreator Nov 5, 2026
e8b8ba9
Merge pull request #2554 from elcreator/fix-symfony-advisories-3.5
Seiger Nov 5, 2026
3fbc3b4
fix(manager): land on the dashboard after changing a password (#2553)
elcreator Nov 5, 2026
46652b3
fix(manager): stop locking the change password page
elcreator Nov 5, 2026
b439435
fix(manager): open the user list after a delete only with edit_user
elcreator Nov 5, 2026
88436b4
Merge branch '3.5.x' into fix-installer-removal-3.5
elcreator Nov 5, 2026
c681d06
Merge pull request #2556 from elcreator/fix-change-password-privilege…
Seiger Nov 5, 2026
4bae869
Merge pull request #2551 from elcreator/fix-installer-removal-3.5
Seiger Nov 5, 2026
aee5f1d
fix(packages): restore a branch at the commit the site ran
elcreator Nov 6, 2026
24eb88a
fix(manager): keep paths out of manager_language
elcreator Nov 6, 2026
dc72825
fix(packages): compare the reference of a branch without a source
elcreator Nov 7, 2026
05ae3aa
fix(manager): answer 404 and 405 for requests no route takes
elcreator Nov 7, 2026
a348194
Merge pull request #2558 from elcreator/fix-custom-package-commit-and…
Seiger Nov 7, 2026
e8fb826
Merge pull request #2562 from elcreator/fix-manager-unknown-path-3.5
Seiger Nov 7, 2026
ecbc104
fix(manager): sandbox the editor resource preview
elcreator Nov 8, 2026
93db7b1
fix(manager): enforce ACL on refresh, role, category, chunk and trash
elcreator Nov 8, 2026
46ece99
fix(manager): cap role save, delete and assignment at the actor reach
elcreator Nov 8, 2026
72d7b37
fix(manager): check the whole branch ACL in delete, undelete, sort, m…
elcreator Nov 8, 2026
4ba21a5
fix(manager): escape the role name in the manager user role dropdown
elcreator Nov 8, 2026
3664c5f
fix(manager): render user group checkboxes outside the actor reach as…
elcreator Nov 8, 2026
b668953
del(seeders): drop the dead action_ok permission and its dangling rol…
elcreator Nov 8, 2026
d174231
fix(manager): contain a per-user filemanager_path within the system root
elcreator Nov 8, 2026
9947572
add(manager): gate the Security settings tab behind a security_settin…
elcreator Nov 8, 2026
dd4f297
upd(acl): drop settings and bk_manager from the default Publisher preset
elcreator Nov 8, 2026
f3475da
fix(acl): require publish_document to run the due (un)publish on Refr…
elcreator Nov 8, 2026
2453e7a
fix(cache): keep an overdue publish schedule in the refresh threshold
elcreator Nov 8, 2026
fa6b774
add(acl): DB-backed Publisher preset seeder tests, narrow preservatio…
elcreator Nov 8, 2026
34263ae
fix(acl): refuse deleting a role that is still assigned to users
elcreator Nov 8, 2026
5b30f68
Merge pull request #2566 from elcreator/fix-manager-acl-enforcement-3.5
Seiger Nov 9, 2026
0a6dc49
Merge branch '3.5.x' into fix-manager-role-escalation-3.5
Seiger Nov 9, 2026
6336377
Merge pull request #2567 from elcreator/fix-manager-role-escalation-3.5
Seiger Nov 9, 2026
7a5993b
Merge pull request #2568 from elcreator/fix-manager-doc-acl-cascades-3.5
Seiger Nov 9, 2026
b5b19b8
Merge pull request #2569 from elcreator/fix-manager-role-name-xss-3.5
Seiger Nov 9, 2026
3aa103c
Merge pull request #2570 from elcreator/fix-manager-dead-action-ok-pe…
Seiger Nov 9, 2026
4dc56c8
Merge pull request #2573 from elcreator/fix-manager-publisher-default…
Seiger Nov 9, 2026
fe8dd19
fix(updater): preserve Composer authentication during preflight
MiddleSokilAI Nov 9, 2026
b109b40
Merge pull request #2576 from MiddleSokilAI/sokil/updater-composer-auth
Seiger Nov 9, 2026
ed70b97
Merge remote-tracking branch 'upstream/3.5.x' into fix-manager-refres…
elcreator Nov 9, 2026
e07084b
fix(manager): judge the editor preview by parsed origin, reject other…
elcreator Nov 9, 2026
b11591d
Merge remote-tracking branch 'upstream/3.5.x' into fix-manager-role-i…
elcreator Nov 9, 2026
d867bbd
fix(acl): test the role delete guards with an acting manager
elcreator Nov 9, 2026
e2b32fc
fix(cache): treat an ended publication window as complete in the sche…
elcreator Nov 9, 2026
8aa7573
fix(manager): validate the file manager root by the file manager's ow…
elcreator Nov 9, 2026
806a121
fix(manager): keep the file checksum with the Security tab in save_se…
elcreator Nov 9, 2026
e62ac1d
Merge pull request #2571 from elcreator/fix-manager-user-filemanager-…
Seiger Nov 9, 2026
ac8bb01
Merge pull request #2565 from elcreator/fix-editor-preview-sandbox-3.5
Seiger Nov 9, 2026
918c170
Merge pull request #2574 from elcreator/fix-manager-refresh-publish-p…
Seiger Nov 9, 2026
1c75cb0
Merge pull request #2575 from elcreator/fix-manager-role-in-use-delet…
Seiger Nov 9, 2026
4299d6c
Merge remote-tracking branch 'upstream/3.5.x' into fix-manager-securi…
elcreator Nov 9, 2026
110d61b
fix(manager): store each system setting under one spelling in save_se…
elcreator Nov 9, 2026
ea88047
fix(manager): keep the file integrity check quiet after an update
elcreator Nov 9, 2026
b65b59a
fix(autoload): add the 3.5.x classes missing from the committed classmap
elcreator Nov 9, 2026
a0f5551
upd(sync): merge 3.5.x and #2572 into 3.6.x
elcreator Nov 9, 2026
47b63f7
upd(sync): list the 3.6 copy of index.php as a release copy
elcreator Nov 9, 2026
b64350b
upd(sync): give the save_settings fixture the ManagerTheme facade of 3.6
elcreator Nov 9, 2026
46d0355
Merge pull request #2572 from elcreator/fix-manager-security-settings…
Seiger Nov 9, 2026
adb4e31
fix(acl): judge role reach by defined, optional permissions only
elcreator Nov 9, 2026
95d7b68
upd(sync): merge #2578 into 3.6.x
elcreator Nov 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,11 @@ under one policy. Do not add a restore path that skips it:
prefixes `custom/` to path repositories and to `extra.merge-plugin.include` / `require`, a list or a
single path) and removed again before `moveFiles()`, which
would otherwise lay it over the site's own.
- `make:site` scopes Composer authentication through `ComposerEnvironment`: keep the normal
Composer home (explicit, user/XDG or Windows), with `core/composer` only as the no-home fallback.
Its legacy auth file supplies fallback credentials; normal global config/auth, `core/auth.json`,
then `COMPOSER_AUTH` take precedence. Preflight and restore inherit the same environment;
never copy credentials into the archive or shell arguments, and restore the caller's environment.
- The merge plugin runs with `"replace": true`: a custom constraint replaces the core's own, so a
custom requirement on a core package is checked against the lock like any other (`pins()`).
- A restore that fails leaves the installers' update incomplete: the CLI exits with 1 and keeps `install/`,
Expand Down
14 changes: 7 additions & 7 deletions core/database/seeders/UserPermissionsTableSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,6 @@ public function run(): void
'disabled' => 0,
'group_id' => 1
],
[
'name' => 'View action completed screen',
'lang_key' => 'role_actionok',
'key' => 'action_ok',
'disabled' => 1,
'group_id' => 1
],
[
'name' => 'View error dialog',
'lang_key' => 'role_errors',
Expand Down Expand Up @@ -549,6 +542,13 @@ public function run(): void
'disabled' => 0,
'group_id' => 14
],
[
'name' => 'Change security settings',
'key' => 'security_settings',
'lang_key' => 'role_security_settings',
'disabled' => 0,
'group_id' => 14
],
[
'name' => 'Use the Backup Manager',
'key' => 'bk_manager',
Expand Down
8 changes: 2 additions & 6 deletions core/database/seeders/UserRolesTableSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public function run(): void
[
'id' => 3,
'name' => 'Publisher',
'description' => 'Editor with expanded permissions including manage users, update Elements and site settings',
'description' => 'Editor with expanded permissions including manage users and update Elements',
]
]);

Expand All @@ -81,7 +81,6 @@ public function run(): void
['permission' => 'home', 'role_id' => 1],
['permission' => 'widget_recent_info', 'role_id' => 1],
['permission' => 'help', 'role_id' => 1],
['permission' => 'role_actionok', 'role_id' => 1],
['permission' => 'error_dialog', 'role_id' => 1],
['permission' => 'about', 'role_id' => 1],
['permission' => 'widget_online_info', 'role_id' => 1],
Expand Down Expand Up @@ -140,6 +139,7 @@ public function run(): void
['permission' => 'delete_eventlog', 'role_id' => 1],
['permission' => 'logs', 'role_id' => 1],
['permission' => 'settings', 'role_id' => 1],
['permission' => 'security_settings', 'role_id' => 1],
['permission' => 'bk_manager', 'role_id' => 1],
['permission' => 'remove_locks', 'role_id' => 1],
['permission' => 'display_locks', 'role_id' => 1],
Expand All @@ -152,7 +152,6 @@ public function run(): void
['permission' => 'home', 'role_id' => 2],
['permission' => 'widget_recent_info', 'role_id' => 2],
['permission' => 'help', 'role_id' => 2],
['permission' => 'role_actionok', 'role_id' => 2],
['permission' => 'error_dialog', 'role_id' => 2],
['permission' => 'about', 'role_id' => 2],
['permission' => 'widget_online_info', 'role_id' => 2],
Expand Down Expand Up @@ -187,7 +186,6 @@ public function run(): void
['permission' => 'home', 'role_id' => 3],
['permission' => 'widget_recent_info', 'role_id' => 3],
['permission' => 'help', 'role_id' => 3],
['permission' => 'role_actionok', 'role_id' => 3],
['permission' => 'error_dialog', 'role_id' => 3],
['permission' => 'about', 'role_id' => 3],
['permission' => 'widget_online_info', 'role_id' => 3],
Expand Down Expand Up @@ -221,8 +219,6 @@ public function run(): void
['permission' => 'save_user', 'role_id' => 3],
['permission' => 'delete_user', 'role_id' => 3],
['permission' => 'logs', 'role_id' => 3],
['permission' => 'settings', 'role_id' => 3],
['permission' => 'bk_manager', 'role_id' => 3],
['permission' => 'remove_locks', 'role_id' => 3],
['permission' => 'display_locks', 'role_id' => 3],
['permission' => 'access_permissions', 'role_id' => 3],
Expand Down
29 changes: 27 additions & 2 deletions core/functions/actions/files.php
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,31 @@ function fileManagerDenied($reason = '', $path = null)
}
}

if(!function_exists('fileManagerRoot')) {
/**
* The folder the current manager's file manager works in. A manager's own filemanager_path
* (a user setting) may narrow the site-wide root, never widen it: it is used only when
* fileManagerCanonicalPath(), the rule every path below the root is held to, names it inside
* the site-wide root. Otherwise the site-wide root is used, and when that does not resolve
* either the answer is null: callers refuse rather than fall back to the site folder.
*
* @return string|null forward slashes, no trailing slash
*/
function fileManagerRoot()
{
$evo = evolutionCMS();
$system = $evo->configGlobal['filemanager_path'] ?? $evo->getConfig('filemanager_path');
$system = realpath(str_replace('[(base_path)]', EVO_BASE_PATH, (string) $system));
if ($system === false) {
return null;
}
$system = rtrim(str_replace('\\', '/', $system), '/');
$own = fileManagerCanonicalPath($evo->getConfig('filemanager_path'));

return $own !== false && FileManagerAccess::isWithin($system, $own) ? $own : $system;
}
}

if(!function_exists('fileManagerAclKey')) {
/**
* The file_groups key of a path given relative to the current manager's file manager root.
Expand All @@ -117,8 +142,8 @@ function fileManagerAclKey($relativePath)
{
static $roots = null;
if ($roots === null) {
$userRoot = fileManagerCanonicalPath(evolutionCMS()->getConfig('filemanager_path')) ?: realpath(EVO_BASE_PATH);
$roots = [FileManagerAccess::aclRoot(), rtrim(str_replace('\\', '/', $userRoot), '/')];
$aclRoot = FileManagerAccess::aclRoot();
$roots = [$aclRoot, fileManagerRoot() ?? $aclRoot];
}

return FileManagerAccess::aclKey($roots[0], $roots[1], $relativePath);
Expand Down
4 changes: 4 additions & 0 deletions core/lang/az/global.php
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@
$_lang["role_edit_plugin"] = 'Plaqin redaktə et';
$_lang["role_edit_role"] = 'Rol redaktə et';
$_lang["role_edit_settings"] = 'Sayt ayarlarını dəyiş';
$_lang["role_security_settings"] = 'Təhlükəsizlik ayarlarını dəyiş';
$_lang["role_edit_snippet"] = 'Snippet redaktə et';
$_lang["role_edit_template"] = 'Şablon redaktə et';
$_lang["role_edit_user"] = 'İstifadəçi redaktə et';
Expand All @@ -357,6 +358,7 @@
$_lang["role_help"] = 'Kömək səhifələrinə baxış';
$_lang["role_home"] = 'Menecerin giriş səhifəsinə keçid';
$_lang["role_import_static"] = 'HTML idxalı';
$_lang["role_in_use_message"] = 'Bu rol hələ də bir və ya bir neçə istifadəçiyə təyin edilib. Silməzdən əvvəl həmin istifadəçiləri başqa rola təyin edin.';
$_lang["role_widget_recent_info"] = 'Son redaktə olunan/yaradılan resurslar vidcetinə bax';
$_lang["role_list_module"] = 'Modulların siyahısı';
$_lang["role_manage_metatags"] = 'Saytın META teqlərini və açar sözlərini idarə et';
Expand Down Expand Up @@ -515,6 +517,7 @@
$_lang["access_permissions_user_toggle"] = 'Giriş icazələrini dəyiş';
$_lang["access_permissions_user_groups"] = 'İstifadəçi qrupları';
$_lang["access_permissions_user_message"] = 'Bu istifadəçinin aid olduğu istifadəçi qruplarını seçin:';
$_lang["access_permissions_user_group_locked"] = 'Boz rəngdə göstərilən qruplar sizin üzvü olmadığınız qruplardır. Onları yalnız administrator və ya "Sənəd və istifadəçi qruplarını idarə et" icazəsinə malik menecer dəyişə bilər, ona görə burada yalnız oxumaq üçündür.';
$_lang["access_permissions_users_in_group"] = 'Qrupdakı istifadəçilər:';
$_lang["access_permissions_users_tab"] = 'Mövcud istifadəçi qruplarını görün. Yeni qruplar yaradın, adlarını dəyişin, qrupları silin və hansı istifadəçilərin hansı qruplara aid olduğunu görün. İstifadəçini qrupa əlavə etmək və ya çıxarmaq üçün onu birbaşa redaktə edin. Administratorlar (ID-si 1 olan rol təyin edilmiş istifadəçilər) bütün resurslara avtomatik giriş əldə edirlər və onlara xüsusi qruplar təyin etməyə ehtiyac yoxdur.';

Expand Down Expand Up @@ -1075,6 +1078,7 @@
$_lang["preview"] = 'Önizləmə';
$_lang["preview_msg"] = 'Bu, son saxlanılan dəyişikliklərinizin önizləməsidir. Buraya klikləyin: <a href="javascript:;" onclick="saveRefreshPreview();">Saxla və Yenilə</a> cari dəyişikliklərinizi.';
$_lang["preview_resource"] = 'Resursun önizləməsi';
$_lang["preview_unsupported_url"] = 'Bu keçidə önizləmə mümkün deyil: idarəetmə panelindən yalnız http və https ünvanları açılır.';

$_lang["private"] = 'Şəxsi';
$_lang["public"] = 'İctimai';
Expand Down
4 changes: 4 additions & 0 deletions core/lang/be/global.php
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@
$_lang["role_edit_plugin"] = 'Рэдагаваць плагін';
$_lang["role_edit_role"] = 'Рэдагаваць ролі';
$_lang["role_edit_settings"] = 'Змяніць налады сайта';
$_lang["role_security_settings"] = 'Змяніць налады бяспекі';
$_lang["role_edit_snippet"] = 'Рэдагаваць сніпеты';
$_lang["role_edit_template"] = 'Рэдагаваць шаблоны сайтаў';
$_lang["role_edit_user"] = 'Рэдагаваць карыстальнікаў';
Expand All @@ -345,6 +346,7 @@
$_lang["role_help"] = 'Прагляд старонкі даведкі';
$_lang["role_home"] = 'Уводная старонка менеджэра запытаў';
$_lang["role_import_static"] = 'Імпарт HTML';
$_lang["role_in_use_message"] = 'Гэтая роля ўсё яшчэ прызначана аднаму ці некалькім карыстальнікам. Перш чым яе выдаліць, прызначце гэтым карыстальнікам іншую ролю.';
$_lang["role_widget_recent_info"] = 'Прагляд віджэта «Нядаўна рэдагаваныя/створаныя рэсурсы»';
$_lang["role_list_module"] = 'Модуль спісу';
$_lang["role_manage_metatags"] = 'Кіруйце мета-тэгамі і ключавымі словамі сайта';
Expand Down Expand Up @@ -503,6 +505,7 @@
$_lang["access_permissions_user_toggle"] = 'Пераключыць правы доступу карыстальніка';
$_lang["access_permissions_user_groups"] = 'Групы карыстальнікаў';
$_lang["access_permissions_user_message"] = 'Выберыце, да якіх груп карыстальнікаў павінен належаць гэты карыстальнік:';
$_lang["access_permissions_user_group_locked"] = 'Групы, паказаныя шэрым, знаходзяцца па-за вашым уласным сяброўствам. Змяніць іх можа толькі адміністратар або менеджэр з дазволам "Кіраванне дакументамі і групамі карыстальнікаў", таму тут яны даступныя толькі для чытання.';
$_lang["access_permissions_users_in_group"] = 'Карыстальнікі ў групе:';
$_lang["access_permissions_users_tab"] = 'Прагляд створаных груп карыстальнікаў. Таксама вы можаце ствараць новыя групы, змяняць іх назвы, выдаляць групы і бачыць, якія карыстальнікі ўваходзяць у розныя групы. Каб дадаць новага карыстальніка ў групу або выдаліць карыстальніка з групы, адрэдагуйце карыстальніка непасрэдна. Адміністратары (карыстальнікі з роляй ID 1) заўсёды маюць доступ да ўсіх рэсурсаў, таму іх не трэба дадаваць у якія-небудзь групы.';

Expand Down Expand Up @@ -1061,6 +1064,7 @@
$_lang["preview"] = 'Папярэдні прагляд';
$_lang["preview_msg"] = 'Гэта папярэдні прагляд вашых апошніх захаваных зменаў. <a href="javascript:;" onclick="saveRefreshPreview();">Націсніце тут</a>, каб захаваць і абнавіць бягучыя змены';
$_lang["preview_resource"] = 'Рэсурс для папярэдняга прагляду';
$_lang["preview_unsupported_url"] = 'Гэтую спасылку немагчыма папярэдне праглядзець: з мэнэджэра адкрываюцца толькі адрасы http і https.';

$_lang["private"] = 'Прыватны';
$_lang["public"] = 'Грамадскі';
Expand Down
4 changes: 4 additions & 0 deletions core/lang/bg/global.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
$_lang["access_permissions_resources_tab"] = 'Тук можете да видите коя Група Документи е настроена. Също така можете да създадете Нова Група, преименувате Групи, изтриете Групи и да видите кои Документи са в различните Групи (сложете мишката върху id на Документа, за да видите неговото име). За да добавите или махнете Документ от групата, редактирайте директно.';
$_lang["access_permissions_user_groups"] = 'Потребителски групи';
$_lang["access_permissions_user_message"] = 'Тук можете да изберете към кои Потребителски Групи принадлежи този Потребител:';
$_lang["access_permissions_user_group_locked"] = 'Групите, показани в сиво, са извън вашето собствено членство. Само администратор или мениджър с правото "Управление на групи документи и потребители" може да ги променя, затова тук са само за четене.';
$_lang["access_permissions_users_in_group"] = '<b>Потребители в група:</b> ';
$_lang["access_permissions_users_tab"] = 'Тук можете да видите коя Група Потребители е настроена. Можете също да създавате Нови Групи, да преименувате Групи, да изтривате Групи и да видите Потребителите в различните Групи. За да добавите или премахнете Нов Потребител в дадена Група, редактирайте Потребителя директно. Администраторите (потребители, които имам присвоена Роля с ID 1) винаги имат достъп до всички документи, така че не е необходимо те да бъдат добавяни в каквато и да е група.';
$_lang["account_email"] = 'Емейл на акаунта';
Expand Down Expand Up @@ -687,6 +688,7 @@
$_lang["preview"] = 'Преглед';
$_lang["preview_msg"] = 'Това е преглед на последно съхранените промени. Щракнете <a href="javascript:;" onclick="saveRefreshPreview();">Съхранение и Обновяване</a> на текущите промени';
$_lang["preview_resource"] = 'Преглед на документ';
$_lang["preview_unsupported_url"] = 'Тази връзка не може да бъде прегледана: от мениджъра се отварят само адреси с http и https.';
$_lang["private"] = 'Частен';
$_lang["public"] = 'Публичен';
$_lang["publish_date"] = 'Дата на публикуване';
Expand Down Expand Up @@ -801,6 +803,7 @@
$_lang["role_edit_plugin"] = 'Редактиране на плъгини';
$_lang["role_edit_role"] = 'Редактиране на роли';
$_lang["role_edit_settings"] = 'Промяна на настройките на сайта';
$_lang["role_security_settings"] = 'Промяна на настройките за сигурност';
$_lang["role_edit_snippet"] = 'Редактиране на снипети';
$_lang["role_edit_template"] = 'Редактиране на шаблоните на сайта';
$_lang["role_edit_user"] = 'Редактиране на потребители';
Expand All @@ -814,6 +817,7 @@
$_lang["role_help"] = 'Преглед на страниците Помощ';
$_lang["role_home"] = 'Викане на началната страница на мениджъра';
$_lang["role_import_static"] = 'Импорт на HTML';
$_lang["role_in_use_message"] = 'Тази роля все още е присвоена на един или повече потребители. Преди да я изтриете, преназначете тези потребители към друга роля.';
$_lang["role_widget_recent_info"] = 'Преглед на уиджета „Наскоро редактирани/създадени документи“';
$_lang["role_manage_metatags"] = 'Управление на META тагове и ключови думи на сайта';
$_lang["role_management_msg"] = 'Тук можете да изберете коя роля да редактирате.';
Expand Down
Loading