├── .gitignore ├── 3rd-Party.txt ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build └── install │ └── docker │ ├── Dockerfile │ ├── Dockerfile.ami │ ├── README.md │ ├── config │ └── supervisor │ │ └── supervisord.conf │ └── run-controlpanel.sh ├── licenses ├── 3rd-Party.license ├── javascript plugins │ ├── async.license │ ├── clipboard.license │ ├── jquery-1.8.2.license │ ├── jquery-ui-1.9.0.license │ ├── jquery.blockUI.license │ ├── jquery.cookies.license │ ├── jquery.cron.license │ ├── jquery.fileupload.license │ ├── jquery.json.license │ ├── jquery.scrollTo.license │ ├── jquery.tmpl.license │ ├── moment.license │ ├── socket.io.license │ └── toastr.license └── npm packages │ ├── body-parser.license │ ├── co.license │ ├── cookie-parser.license │ ├── etag.license │ ├── express-session.license │ ├── express.license │ ├── formidable.license │ ├── gulp-append-prepend.license │ ├── gulp-just-replace.license │ ├── gulp.license │ ├── image-size.license │ ├── less-middleware.license │ ├── less.license │ ├── memorystore.license │ ├── moment.license │ ├── morgan.license │ ├── nconf.license │ ├── plugin-error.license │ ├── public-ip.license │ ├── pug.license │ ├── request.license │ ├── semver.license │ ├── serve-favicon.license │ ├── uglify-js.license │ ├── url.license │ ├── uuid.license │ ├── winston-daily-rotate-file.license │ ├── winston.license │ ├── x509.js.license │ └── yargs.license └── web └── www ├── ASC.ControlPanel.njsproj ├── app.js ├── app ├── apiRequestManager.js ├── bundle.js ├── controllers │ ├── activate.js │ ├── audittrail.js │ ├── backup.js │ ├── base.js │ ├── gift.js │ ├── https.js │ ├── httpsWin.js │ ├── index.js │ ├── ldap.js │ ├── loginHistory.js │ ├── migration.js │ ├── multiPortals.js │ ├── privacyRoom.js │ ├── rebranding.js │ ├── resource.js │ ├── restore.js │ ├── search.js │ ├── sso.js │ ├── storage.js │ ├── update.js │ └── whitelabel.js ├── dnsChecker.js ├── executeHelper.js ├── fileManager.js ├── log.js ├── middleware │ ├── auth.js │ ├── enableTariffPage.js │ ├── fullAccess.js │ ├── notCustomMode.js │ ├── payment.js │ ├── quota.js │ ├── resource.js │ └── tenantExtra.js ├── model │ ├── backup.js │ ├── base.js │ ├── ldap.js │ ├── rebranding.js │ ├── sso.js │ ├── update.js │ ├── updateAction.js │ └── updateActionType.js ├── portalManager.js └── quota.js ├── config ├── config.json ├── index.js └── production.json ├── executables ├── run-community-server.sh ├── run-control-panel.sh ├── run-document-server.sh ├── run-mail-server.sh └── tools │ ├── apply-certificate.sh │ ├── check-bindings.sh │ ├── check-docker.sh │ ├── check-image.sh │ ├── check-vsyscall.sh │ ├── compare-certs.sh │ ├── createpfx.sh │ ├── download-image.sh │ ├── get-available-version.sh │ ├── get-current-version.sh │ ├── get-machinekey.sh │ ├── get.sh │ ├── letsencrypt.sh │ ├── move.sh │ ├── openssl.sh │ ├── remove-certificate.sh │ ├── remove-container.sh │ └── wait-for-it.sh ├── package-lock.json ├── package.json ├── public ├── javascripts │ ├── asc.socketio.js │ ├── common.js │ ├── plugins │ │ ├── countries.js │ │ ├── jquery.dropdownToggle.js │ │ ├── jquery.helper.js │ │ ├── jquery.tlcombobox.js │ │ └── phonecontroller.js │ ├── third-party │ │ ├── async.js │ │ ├── clipboard.js │ │ ├── jquery-1.8.2.min.js │ │ ├── jquery-ui-1.9.0.min.js │ │ ├── jquery.blockUI.min.js │ │ ├── jquery.cookies.js │ │ ├── jquery.cron.js │ │ ├── jquery.fileupload.js │ │ ├── jquery.json.js │ │ ├── jquery.scrollTo.js │ │ ├── jquery.tmpl.js │ │ ├── moment.js │ │ ├── socket.io.js │ │ └── toastr.min.js │ ├── upload.js │ └── views │ │ ├── activate.js │ │ ├── audittrail.js │ │ ├── backup.js │ │ ├── consumersettings.js │ │ ├── gift.js │ │ ├── home.js │ │ ├── https.js │ │ ├── ldapsettings.js │ │ ├── login.js │ │ ├── loginhistory.js │ │ ├── migration.js │ │ ├── multiportals.js │ │ ├── privacyroom.js │ │ ├── rebranding.js │ │ ├── restore.js │ │ ├── search.js │ │ ├── ssosettings.js │ │ ├── storage.js │ │ ├── update.js │ │ └── whitelabel.js ├── resources │ ├── CPCountriesResource.json │ ├── CPLdapResource.json │ ├── CPMultiPortalsResource.json │ ├── CPSsoResource.json │ ├── CPWhiteLabelResource.json │ └── ControlPanelResource.json └── stylesheets │ ├── action-menu.less │ ├── activate.less │ ├── audittrail.less │ ├── backup.less │ ├── button.less │ ├── common.less │ ├── common_style.less │ ├── forms.less │ ├── gift.less │ ├── header.less │ ├── images │ ├── arrow-next.svg │ ├── arrow-right.svg │ ├── audit_trail_empty_screen.jpg │ ├── audittrail.svg │ ├── backup.svg │ ├── banner-license.svg │ ├── banner-mobile.svg │ ├── banner-pro.svg │ ├── banner-scalability.svg │ ├── banner-security.svg │ ├── banner-support.svg │ ├── bnt-onoff.png │ ├── calendar.png │ ├── close.png │ ├── combo_gray.png │ ├── common.png │ ├── corner_top.gif │ ├── encryption.svg │ ├── exit-hover.svg │ ├── exit.svg │ ├── expl_16.png │ ├── favicon.ico │ ├── flags.gif │ ├── gift-white.svg │ ├── gift.svg │ ├── helper-corner-down.png │ ├── helper-corner.png │ ├── https.svg │ ├── icon_payments.png │ ├── ldap.svg │ ├── loader.gif │ ├── login_history_empty_screen.jpg │ ├── loginhistory.svg │ ├── logo.svg │ ├── migration.svg │ ├── module-calendar.svg │ ├── module-document.svg │ ├── module-mail.svg │ ├── module-people.svg │ ├── multiportals.svg │ ├── name_action.png │ ├── pencil.svg │ ├── privacyroom.svg │ ├── question_small.png │ ├── rebranding.svg │ ├── rebranding_about.png │ ├── rebranding_navigation.png │ ├── rebranding_samples.png │ ├── remove_16.png │ ├── restore.svg │ ├── search.svg │ ├── slider_btn.png │ ├── social.png │ ├── socials_sprite.png │ ├── sprite_big.png │ ├── sso-sprite.png │ ├── sso.svg │ ├── storage.svg │ ├── tlcombobox-button.gif │ ├── toast_icon01.png │ ├── toast_icon02.png │ ├── toast_icon03.png │ ├── trash_16.png │ ├── ui-icons │ │ ├── animated-overlay.gif │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_2e83ff_256x240.png │ │ ├── ui-icons_454545_256x240.png │ │ ├── ui-icons_888888_256x240.png │ │ └── ui-icons_cd0a0a_256x240.png │ ├── update.svg │ └── upgrade.svg │ ├── jqCron.less │ ├── layout.less │ ├── ldapsettings.less │ ├── link.less │ ├── login.less │ ├── loginhistory.less │ ├── migration.less │ ├── multiportals.less │ ├── paragraph.less │ ├── phonecontroller.less │ ├── privacyroom.less │ ├── rebranding.less │ ├── restore.less │ ├── search.less │ ├── site.less │ ├── ssosettings.less │ ├── storage.less │ ├── tl-combobox.less │ ├── toastr.less │ ├── update.less │ ├── vars.less │ └── whitelabel.less ├── server.js ├── typings.json └── views ├── Shared ├── error.pug ├── footer.pug ├── homeLayout.pug ├── layout.pug ├── leftSide.pug └── topButtons.pug ├── activate.pug ├── audittrail.pug ├── backup.pug ├── consumerSettingsPartial.pug ├── dateTimeSelector.pug ├── gift.pug ├── https.pug ├── httpsInfo.pug ├── httpsWin.pug ├── index.pug ├── ldap.pug ├── loginHistory.pug ├── migration.pug ├── multiPortals.pug ├── privacyRoom.pug ├── rebranding.pug ├── rebrandingPartial.pug ├── restore.pug ├── search.pug ├── sso.pug ├── storage.pug ├── update.pug ├── whitelabel.pug └── whitelabelPartial.pug /.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules/ 2 | **/obj/ 3 | **/bin/ 4 | **/logs/ 5 | **/log/ 6 | **/iisnode/ 7 | **/.vscode/ 8 | **/.vs/ 9 | *.sln 10 | *.suo 11 | *.user 12 | web/www/public/stylesheets/*.css 13 | web/www/public/stylesheets/combined.less -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | 3 | Control Panel includes tools to quickly configure and administrate ONLYOFFICE Workspace deployed on your server. 4 | 5 | ## Functionality 6 | 7 | Control Panel is distributed as a part of [ONLYOFFICE Groups (Community Server)](https://github.com/ONLYOFFICE/CommunityServer) on terms of Apache license. It can be used to: 8 | 9 | * automate backups and update process, 10 | * easily update ONLYOFFICE, 11 | * centralize access with SSO and LDAP, 12 | * track user actions, 13 | * add your logo, company info, etc to use ONLYOFFICE platform under your own brand, 14 | * create separate web-offices for different company branches with multitenancy. 15 | 16 | ## Documentation 17 | 18 | User documentation for Control Panel is available in [ONLYOFFICE Help Center](https://helpcenter.onlyoffice.com/server/controlpanel/enterprise/index.aspx) 19 | 20 | ## Project information 21 | 22 | Official website: [https://www.onlyoffice.com](https://www.onlyoffice.com?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCP "https://www.onlyoffice.com?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCP") 23 | 24 | Code repository: [https://github.com/ONLYOFFICE/CommunityServer](https://github.com/ONLYOFFICE/CommunityServer "https://github.com/ONLYOFFICE/CommunityServer") 25 | 26 | License: [Apache](https://www.apache.org/licenses/LICENSE-2.0) 27 | 28 | SaaS version: [https://www.onlyoffice.com/cloud-office.aspx](https://www.onlyoffice.com/cloud-office.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCP "https://www.onlyoffice.com/cloud-office.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCP") 29 | 30 | ONLYOFFICE Workspace (on-premise installation): [link] 31 | 32 | ## User Feedback and Support 33 | 34 | If you have any problems with or questions about ONLYOFFICE, please visit our official forum: [dev.onlyoffice.org][1] or ask and answer ONLYOFFICE development questions on [Stack Overflow][2]. 35 | 36 | [1]: http://dev.onlyoffice.org 37 | [2]: http://stackoverflow.com/questions/tagged/onlyoffice 38 | -------------------------------------------------------------------------------- /build/install/docker/Dockerfile.ami: -------------------------------------------------------------------------------- 1 | FROM onlyoffice/controlpanel:latest 2 | 3 | RUN cd /var/www/onlyoffice/controlpanel/www/config/ && \ 4 | sed -i 's/\("ami":\).*/\1 true,/' config.json && \ 5 | sed -i 's/\("ami":\).*/\1 true,/' production.json 6 | -------------------------------------------------------------------------------- /build/install/docker/config/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | user=root 4 | 5 | [program:www] 6 | environment=NODE_ENV=production,NODE_TLS_REJECT_UNAUTHORIZED=0,NODE_OPTIONS="--dns-result-order=ipv4first" 7 | directory=/var/www/onlyoffice/controlpanel/www/ 8 | command=node server.js 9 | autostart=true 10 | autorestart=true 11 | -------------------------------------------------------------------------------- /build/install/docker/run-controlpanel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; 4 | 5 | cd ${DIR} 6 | 7 | sed 's/http:\/\/onlyoffice-community-server/http:\/\/'${ONLYOFFICE_COMMUNITYSERVER_HOST}'/' -i www/config/production.json; 8 | 9 | APP_PRIVATE_DATA_DIR="/app/$(jq -r '.product.name' www/config/production.json)/CommunityServer/data/.private" 10 | if [ ! -e "${APP_PRIVATE_DATA_DIR}/machinekey" ]; then 11 | mkdir -p ${APP_PRIVATE_DATA_DIR}; 12 | APP_CORE_MACHINEKEY=${ONLYOFFICE_CORE_MACHINEKEY:-${APP_CORE_MACHINEKEY:-$(jq -r '."core.machinekey"' www/config/production.json)}}; 13 | echo "${APP_CORE_MACHINEKEY}" > ${APP_PRIVATE_DATA_DIR}/machinekey 14 | else 15 | APP_CORE_MACHINEKEY=$(head -n 1 ${APP_PRIVATE_DATA_DIR}/machinekey) 16 | fi 17 | 18 | find "www/config" -type f -name "*.json" -exec sed -i "s_\(\"core.machinekey\":\).*,_\1 \"${APP_CORE_MACHINEKEY}\",_" {} \; 19 | 20 | if [[ ${HIDDEN_COMPONENTS} ]]; then 21 | sed "/hiddenControllers/s/\"hiddenControllers\".*/\"hiddenControllers\":\[${HIDDEN_COMPONENTS}\],/" -i www/config/production.json; 22 | else 23 | sed '/hiddenControllers/s/"hiddenControllers".*/"hiddenControllers":\[\],/' -i www/config/production.json; 24 | fi 25 | 26 | exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 27 | -------------------------------------------------------------------------------- /licenses/javascript plugins/async.license: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2018 Caolan McMahon 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/javascript plugins/clipboard.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/licenses/javascript plugins/clipboard.license -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery-1.8.2.license: -------------------------------------------------------------------------------- 1 | 2 | 3 | The MIT License (MIT) 4 | 5 | Copyright (c) 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery-ui-1.9.0.license: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery-ui 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | Copyright and related rights for sample code are waived via CC0. Sample 34 | code is defined as all source code contained within the demos directory. 35 | 36 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 37 | 38 | ==== 39 | 40 | All files located in the node_modules and external directories are 41 | externally maintained libraries used by this software which have their 42 | own licenses; we recommend you read them, as their terms may differ from 43 | the terms above. -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.blockUI.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/licenses/javascript plugins/jquery.blockUI.license -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.cookies.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2005-2015 Jim Auldridge 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.cron.license: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2010-2019 Arnaud Buathier http://arnapou.net/ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.fileupload.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/licenses/javascript plugins/jquery.fileupload.license -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.json.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/licenses/javascript plugins/jquery.json.license -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.scrollTo.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2007 Ariel Flesler 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/javascript plugins/jquery.tmpl.license: -------------------------------------------------------------------------------- 1 | 2 | 3 | The MIT License (MIT) 4 | 5 | Copyright (c) 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | -------------------------------------------------------------------------------- /licenses/javascript plugins/moment.license: -------------------------------------------------------------------------------- 1 | Copyright (c) JS Foundation and other contributors 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/javascript plugins/socket.io.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Guillermo Rauch 4 | 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/javascript plugins/toastr.license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Toastr Maintainers 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/body-parser.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 Jonathan Ong 4 | Copyright (c) 2014-2015 Douglas Christopher Wilson 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files (the 8 | 'Software'), to deal in the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 21 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/co.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/cookie-parser.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 TJ Holowaychuk 4 | Copyright (c) 2015 Douglas Christopher Wilson 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files (the 8 | 'Software'), to deal in the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 21 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/etag.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2016 Douglas Christopher Wilson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/express-session.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2010 Sencha Inc. 4 | Copyright (c) 2011 TJ Holowaychuk 5 | Copyright (c) 2014-2015 Douglas Christopher Wilson 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining 8 | a copy of this software and associated documentation files (the 9 | 'Software'), to deal in the Software without restriction, including 10 | without limitation the rights to use, copy, modify, merge, publish, 11 | distribute, sublicense, and/or sell copies of the Software, and to 12 | permit persons to whom the Software is furnished to do so, subject to 13 | the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be 16 | included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/express.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2009-2014 TJ Holowaychuk 4 | Copyright (c) 2013-2014 Roman Shtylman 5 | Copyright (c) 2014-2015 Douglas Christopher Wilson 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining 8 | a copy of this software and associated documentation files (the 9 | 'Software'), to deal in the Software without restriction, including 10 | without limitation the rights to use, copy, modify, merge, publish, 11 | distribute, sublicense, and/or sell copies of the Software, and to 12 | permit persons to whom the Software is furnished to do so, subject to 13 | the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be 16 | included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/formidable.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-present Felix Geisendörfer, and contributors. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/gulp-append-prepend.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 James Hemery 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/gulp-just-replace.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Cai Guanhao (Choi Goon-ho) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/gulp.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2018 Blaine Bublitz , Eric Schoffstall and other contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/image-size.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/licenses/npm packages/image-size.license -------------------------------------------------------------------------------- /licenses/npm packages/less-middleware.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2013 Randy Merrill 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/memorystore.license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Rocco Musolino 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/moment.license: -------------------------------------------------------------------------------- 1 | Copyright (c) JS Foundation and other contributors 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/morgan.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 Jonathan Ong 4 | Copyright (c) 2014-2017 Douglas Christopher Wilson 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files (the 8 | 'Software'), to deal in the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 21 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/nconf.license: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 Charlie Robbins and the Contributors. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/plugin-error.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Blaine Bublitz , Eric Schoffstall and other contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/public-ip.license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /licenses/npm packages/pug.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2009-2014 TJ Holowaychuk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/semver.license: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/serve-favicon.license: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2010 Sencha Inc. 4 | Copyright (c) 2011 LearnBoost 5 | Copyright (c) 2011 TJ Holowaychuk 6 | Copyright (c) 2014-2017 Douglas Christopher Wilson 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining 9 | a copy of this software and associated documentation files (the 10 | 'Software'), to deal in the Software without restriction, including 11 | without limitation the rights to use, copy, modify, merge, publish, 12 | distribute, sublicense, and/or sell copies of the Software, and to 13 | permit persons to whom the Software is furnished to do so, subject to 14 | the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be 17 | included in all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 20 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 22 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 23 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 24 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 25 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/uglify-js.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/licenses/npm packages/uglify-js.license -------------------------------------------------------------------------------- /licenses/npm packages/url.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2014 Joyent, Inc. and other Node contributors. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/uuid.license: -------------------------------------------------------------------------------- 1 | 2 | 3 | The MIT License (MIT) 4 | 5 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | -------------------------------------------------------------------------------- /licenses/npm packages/winston-daily-rotate-file.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 winstonjs 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/winston.license: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010 Charlie Robbins 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/x509.js.license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Code Charm 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/npm packages/yargs.license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /web/www/app/controllers/audittrail.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const baseController = require('./base.js'), 19 | router = require('express').Router(), 20 | Model = require('../model/base.js'), 21 | pug = require('pug'), 22 | path = require('path'), 23 | auditCompiled = pug.compileFile(path.join(__dirname, '..', '..', 'views', 'audittrail.pug')); 24 | 25 | router 26 | .get("/", function (req, res) { 27 | res.setHeader('content-type', 'text/html'); 28 | res.end(auditCompiled(new Model(req, req.resources.controlPanelResource.AuditTrail))); 29 | }) 30 | .get("/getEvents", baseController.get.bind(baseController, 'security/audit/events/last.json')) 31 | .post("/createReport", baseController.post.bind(baseController, 'security/audit/events/report.json')); 32 | 33 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/gift.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const router = require('express').Router(), 19 | Model = require('../model/rebranding.js'), 20 | pug = require('pug'), 21 | path = require('path'), 22 | giftCompiled = pug.compileFile(path.join(__dirname, '..', '..', 'views', 'gift.pug')), 23 | fullAccess = require('../middleware/fullAccess.js'), 24 | tenantExtra = require('../middleware/tenantExtra.js'), 25 | apiManager = require('../apiRequestManager.js').apiManager, 26 | additionalSettingsApiUrl = "settings/rebranding/additional.json", 27 | mailSettingsApiUrl = "settings/rebranding/mail.json"; 28 | 29 | router 30 | .use(fullAccess()) 31 | .use(tenantExtra()) 32 | .get("/", (req, res) => { 33 | if (req.session.tenantExtra.enterprise) { 34 | res.status(403); 35 | res.end(); 36 | return; 37 | } 38 | 39 | res.setHeader('content-type', 'text/html'); 40 | 41 | const data = new Model(req, req.resources.controlPanelResource.Gift); 42 | const additionalSettingsPromise = apiManager.get(additionalSettingsApiUrl, req); 43 | const mailSettingsPromise = apiManager.get(mailSettingsApiUrl, req); 44 | 45 | Promise.all([additionalSettingsPromise, mailSettingsPromise]) 46 | .then((result) => { 47 | Object.assign(data, { 48 | additionalSettings: result[0], 49 | mailSettings: result[1] 50 | }); 51 | res.end(giftCompiled(data)); 52 | }) 53 | .catch((error) => { 54 | data.errorMessage = error.message; 55 | res.end(giftCompiled(data)); 56 | }); 57 | }); 58 | 59 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/httpsWin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const formidable = require('formidable'); 19 | const router = require('express').Router(); 20 | const path = require('path'); 21 | const httpsCompiled = require('pug').compileFile(path.join(__dirname, '..', '..', 'views', 'httpsWin.pug')); 22 | const Model = require('../model/base.js'); 23 | const baseController = require('./base.js'); 24 | const fullAccess = require('../middleware/fullAccess.js'); 25 | const fileManager = require('../fileManager'); 26 | 27 | function upload(req, res, ext) { 28 | const form = new formidable.IncomingForm(); 29 | 30 | form.parse(req, function (err, fields, files) { 31 | res.status(200); 32 | const uploaded = files["files[]"]; 33 | 34 | if (err || !uploaded) { 35 | res.send({ success: false }); 36 | res.end(); 37 | return; 38 | } 39 | 40 | if (!uploaded.originalFilename.endsWith(ext)) { 41 | fileManager.deleteFile(uploaded.filepath); 42 | res.send({ success: false }); 43 | res.end(); 44 | return; 45 | } 46 | 47 | res.send({ success: true, file: uploaded.filepath }); 48 | res.end(); 49 | }); 50 | } 51 | 52 | router 53 | .use(fullAccess()) 54 | .get("/", (req, res) => { 55 | const data = new Model(req, req.resources.controlPanelResource.Https); 56 | res.setHeader('content-type', 'text/html'); 57 | res.end(httpsCompiled(data)); 58 | }) 59 | .post("/processUpload", (req, res) => { upload(req, res, ".pfx"); }) 60 | .get("/checkAttachment", baseController.get.bind(baseController, 'settings/https/check.json')) 61 | .post("/uploadCertificate", baseController.put.bind(baseController, 'settings/https/upload.json')); 62 | 63 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const 19 | router = require('express').Router(), 20 | portalManager = require('../portalManager.js'), 21 | apiRequestManager = require('../apiRequestManager.js').apiManager, 22 | BaseModel = require('../model/base.js'), 23 | pug = require('pug'), 24 | path = require('path'), 25 | co = require('co'); 26 | 27 | const indexCompiled = pug.compileFile(path.join(__dirname, '..', '..', 'views', 'index.pug')); 28 | 29 | function setPortalUrl(req, res) { 30 | const body = req.body; 31 | co(function* () { 32 | yield portalManager.setPortalUrl(body); 33 | const response = yield apiRequestManager.post('authentication.json', req); 34 | const expires = new Date(); 35 | expires.setFullYear(expires.getFullYear() + 1); 36 | res.cookie('asc_auth_key', response.token, { expires: expires }); 37 | res.status(200); 38 | res.send({ success: typeof response.token === "string" && response.token.length }); 39 | res.end(); 40 | }).catch((error) => { 41 | res.status(200); 42 | res.send({ success: false, message: error }); 43 | }); 44 | } 45 | 46 | router 47 | .get('/', (req, res) => { 48 | res.setHeader('content-type', 'text/html'); 49 | res.end(indexCompiled(new BaseModel(req, req.resources.controlPanelResource.AuthTitle))); 50 | }) 51 | .post('/', setPortalUrl); 52 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/loginHistory.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const baseController = require('./base.js'), 19 | router = require('express').Router(), 20 | Model = require('../model/base.js'), 21 | pug = require('pug'), 22 | path = require('path'), 23 | loginHistory = pug.compileFile(path.join(__dirname, '..', '..', 'views', 'loginHistory.pug')); 24 | 25 | router 26 | .get("/", (req, res) => { 27 | res.setHeader('content-type', 'text/html'); 28 | res.end(loginHistory(new Model(req, req.resources.controlPanelResource.LoginHistory))); 29 | }) 30 | .get("/getEvents", baseController.get.bind(baseController, 'security/audit/login/last.json')) 31 | .post("/createReport", baseController.post.bind(baseController, 'security/audit/login/report.json')) 32 | .get("/getSettings", baseController.get.bind(baseController, 'security/audit/settings/lifetime.json')) 33 | .get("/getUserInfo", baseController.get.bind(baseController, 'people.json')) 34 | .get("/getSocketConfig", baseController.get.bind(baseController, 'settings/socket')) 35 | .post("/saveSettings", baseController.post.bind(baseController, 'security/audit/settings/lifetime.json')); 36 | 37 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/privacyRoom.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const baseController = require('./base.js'), 19 | router = require('express').Router(), 20 | Model = require('../model/base.js'), 21 | pug = require('pug'), 22 | path = require('path'), 23 | privacyRoomCompiled = pug.compileFile(path.join(__dirname, '..', '..', 'views', 'privacyRoom.pug')), 24 | tenantExtra = require('../middleware/tenantExtra.js'), 25 | notCustomMode = require('../middleware/notCustomMode.js'); 26 | 27 | router 28 | .use(tenantExtra()) 29 | .use(notCustomMode()) 30 | .get("/", (req, res) => { 31 | res.setHeader('content-type', 'text/html'); 32 | res.end(privacyRoomCompiled(new Model(req, req.resources.controlPanelResource.PrivacyRoom))); 33 | }) 34 | .get("/getEncryptionStatus", baseController.get.bind(baseController, 'privacyroom.json')) 35 | .put("/setEncryptionStatus", baseController.put.bind(baseController, 'privacyroom.json')); 36 | 37 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/resource.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const router = require('express').Router(); 19 | const etag = require('etag'); 20 | 21 | router.get("/", (req, res) => { 22 | const resources = req.resources; 23 | const data = [ 24 | resources.controlPanelResource, 25 | resources.cpCountriesResource, 26 | resources.cpMultiPortalsResource, 27 | resources.cpLdapResource 28 | ].reduce(function(previousValue, currentValue) { 29 | return previousValue.toString() + currentValue.toString(); 30 | }); 31 | 32 | res.setHeader('ETag', etag(data)); 33 | res.set('Content-Type', 'application/x-javascript; charset=utf-8'); 34 | res.send(data); 35 | }); 36 | 37 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/controllers/search.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const baseController = require('./base.js'), 19 | router = require('express').Router(), 20 | Model = require('../model/base.js'), 21 | pug = require('pug'), 22 | path = require('path'), 23 | searchCompiled = pug.compileFile(path.join(__dirname, '..', '..', 'views', 'search.pug')), 24 | fullAccess = require('../middleware/fullAccess.js'); 25 | 26 | router 27 | .use(fullAccess()) 28 | .get("/", function (req, res) { 29 | res.setHeader('content-type', 'text/html'); 30 | res.end(searchCompiled(new Model(req, req.resources.controlPanelResource.Search))); 31 | }) 32 | .get("/setting", baseController.get.bind(baseController, 'portal/search.json')) 33 | .get("/state", baseController.get.bind(baseController, 'portal/search/state.json')) 34 | .post("/setting", baseController.post.bind(baseController, 'portal/search.json')) 35 | .post("/reindex", baseController.post.bind(baseController, 'portal/search/reindex.json')); 36 | 37 | module.exports = router; -------------------------------------------------------------------------------- /web/www/app/dnsChecker.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const co = require("co"), 19 | dns = require('dns'), 20 | url = require('url'), 21 | publicIp = require('public-ip'), 22 | config = require('../config'); 23 | 24 | function checkDomainName(domainName, controlPanelResource) { 25 | if (!domainName) 26 | throw new Error(controlPanelResource.ErrorDomainNameEmpty); 27 | 28 | if (domainName.length > 255) 29 | throw new Error(controlPanelResource.ErrorDomainNameTooLong); 30 | 31 | if (!domainName.match(config.regxMailDomain)) 32 | throw new Error(controlPanelResource.ErrorDomainNameIncorrect); 33 | } 34 | 35 | function getIpsByDomain(domainName) { 36 | return new Promise((resolve, reject) => { 37 | dns.resolve4(domainName, (error, addresses) => { 38 | if (error) { 39 | reject(error); 40 | return; 41 | } 42 | 43 | resolve(addresses); 44 | }); 45 | }); 46 | } 47 | 48 | function getHostIp(rewriteUrl) { 49 | if(rewriteUrl) { 50 | const hostname = url.parse(rewriteUrl).hostname; 51 | 52 | if (hostname != "localhost" && hostname != "127.0.0.1") { 53 | 54 | const ipRegEx = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; 55 | 56 | if (ipRegEx.test(hostname)) { 57 | return new Promise((resolve, reject) => { 58 | resolve(hostname); 59 | }); 60 | } 61 | 62 | return getIpsByDomain(hostname); 63 | } 64 | } 65 | 66 | return co(function* () { 67 | return publicIp.v4(); 68 | }); 69 | } 70 | 71 | module.exports = { checkDomainName, getIpsByDomain, getHostIp }; 72 | -------------------------------------------------------------------------------- /web/www/app/executeHelper.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const execFile = require('child_process').execFile; 19 | const path = require('path'); 20 | const log = require('./log.js'); 21 | 22 | function executeOneClickinstallScript(script, ...args) { 23 | return new Promise((resolve, reject) => { 24 | const scriptPath = path.join(__dirname, '..', 'executables', script); 25 | execFile(scriptPath, 26 | args.filter(item => item !== ""), 27 | (error, stdout, stderr) => { 28 | if (error) { 29 | log.error("executeOneClickinstallScript err", script, args, error); 30 | reject(error); 31 | return; 32 | } 33 | if (stderr) { 34 | log.error("executeOneClickinstallScript stderr", script, args, error); 35 | reject(stderr); 36 | return; 37 | } 38 | 39 | resolve(stdout ? stdout.replace(/\n$/, '') : stdout); 40 | }); 41 | }); 42 | } 43 | 44 | module.exports = executeOneClickinstallScript; -------------------------------------------------------------------------------- /web/www/app/log.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const winston = require('winston'); 19 | const { format } = require('winston'); 20 | require('winston-daily-rotate-file'); 21 | 22 | const path = require('path'); 23 | const config = require('../config'); 24 | const fs = require('fs'); 25 | const dirName = config.getProductDir("logDir") || path.join(__dirname, "..", "..", "Logs"); 26 | const fileName = path.join(dirName , "web.controlpanel.%DATE%.log"); 27 | const dateFormat = 'MM-DD'; 28 | 29 | if (!fs.existsSync(dirName)) { 30 | fs.mkdirSync(dirName); 31 | } 32 | 33 | const fileTransport = new (winston.transports.DailyRotateFile)( 34 | { 35 | filename: fileName, 36 | datePattern: dateFormat, 37 | handleExceptions: true, 38 | humanReadableUnhandledException: true, 39 | zippedArchive: true, 40 | maxSize: '50m', 41 | maxFiles: '30d' 42 | }); 43 | 44 | const transports = [ 45 | new (winston.transports.Console)(), 46 | fileTransport 47 | ]; 48 | 49 | winston.exceptions.handle(fileTransport); 50 | 51 | module.exports = winston.createLogger({ 52 | transports: transports, 53 | exitOnError: false, 54 | format: format.combine( 55 | format.timestamp({ 56 | format: 'YYYY-MM-DD HH:mm:ss' 57 | }), 58 | format.printf(info => `${info.timestamp} - ${info.level}: ${info.message}`) 59 | )}); 60 | -------------------------------------------------------------------------------- /web/www/app/middleware/enableTariffPage.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | module.exports = function () { 19 | return (req, res, next) => { 20 | if(!req.session.tenantExtra.enableTariffPage){ 21 | res.status(403); 22 | res.end(); 23 | return; 24 | } 25 | next(); 26 | } 27 | } -------------------------------------------------------------------------------- /web/www/app/middleware/fullAccess.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | module.exports = function () { 19 | return (req, res, next) => { 20 | if (req.session.controlPanelSettings.limitedAccess) { 21 | res.status(403); 22 | res.end(); 23 | return; 24 | } 25 | next(); 26 | } 27 | } -------------------------------------------------------------------------------- /web/www/app/middleware/notCustomMode.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | module.exports = function () { 19 | return (req, res, next) => { 20 | if(req.session.tenantExtra.customMode){ 21 | res.status(403); 22 | res.end(); 23 | return; 24 | } 25 | next(); 26 | } 27 | } -------------------------------------------------------------------------------- /web/www/app/middleware/quota.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const quota = require('../quota.js'); 19 | 20 | module.exports = function (feature) { 21 | return (req, res, next) => { 22 | if (!quota(req.session.quota)[feature]) { 23 | res.status(403); 24 | res.end(); 25 | return; 26 | } 27 | next(); 28 | } 29 | } -------------------------------------------------------------------------------- /web/www/app/middleware/resource.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const basePath = '../../public/resources/'; 19 | 20 | class Resource { 21 | constructor(jsKey, name, lang) { 22 | this.jsKey = jsKey; 23 | 24 | let resource; 25 | try { 26 | resource = require(`${basePath}/${name}.${lang && lang !== 'en' ? lang + '.' : ''}json`); 27 | } catch (e) { 28 | resource = require(`${basePath}/${name}.json`); 29 | } 30 | resource.lang = lang; 31 | 32 | Object.assign(this, resource); 33 | } 34 | toString() { 35 | return this.jsKey + "=" + JSON.stringify(this) + ";"; 36 | } 37 | format(key, ...params) { 38 | let result = this[key]; 39 | 40 | if (!result) return result; 41 | 42 | for (let i = 0; i < params.length; i++) { 43 | const reg = new RegExp(`\\{${i}\\}`, "gm"); 44 | result = result.replace(reg, params[i]); 45 | } 46 | return result; 47 | } 48 | } 49 | 50 | 51 | module.exports = function(req, res, next) { 52 | let lang = 'en'; 53 | if (req.session && req.session.user && req.session.user.cultureName) { 54 | lang = req.session.user.cultureName.substring(0, 2); 55 | } 56 | req.resources = { 57 | controlPanelResource: new Resource("Resource", "ControlPanelResource", lang), 58 | cpCountriesResource: new Resource("CountriesResource", "CPCountriesResource", lang), 59 | cpMultiPortalsResource: new Resource("MultiPortalsResource", "CPMultiPortalsResource", lang), 60 | cpLdapResource: new Resource("LdapResource", "CPLdapResource", lang), 61 | cpSsoResource: new Resource("CPSsoResource", "CPSsoResource", lang), 62 | cpWhiteLabelResource: new Resource("CPWhiteLabelResource", "CPWhiteLabelResource", lang) 63 | }; 64 | next(); 65 | } -------------------------------------------------------------------------------- /web/www/app/middleware/tenantExtra.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | module.exports = function () { 19 | return (req, res, next) => { 20 | if (!req.session.tenantExtra) { 21 | res.status(403); 22 | res.end(); 23 | return; 24 | } 25 | next(); 26 | } 27 | } -------------------------------------------------------------------------------- /web/www/app/model/backup.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const BaseModel = require('./base.js'); 19 | 20 | class backupModel extends BaseModel { 21 | constructor(req, title) { 22 | super(req, title); 23 | 24 | this.days = [ 25 | { name: "Monday", index: 1 }, 26 | { name: "Tuesday", index: 2 }, 27 | { name: "Wednesday", index: 3 }, 28 | { name: "Thursday", index: 4 }, 29 | { name: "Friday", index: 5 }, 30 | { name: "Saturday", index: 6 }, 31 | { name: "Sunday", index: 0 } 32 | ]; 33 | } 34 | } 35 | 36 | module.exports = backupModel; -------------------------------------------------------------------------------- /web/www/app/model/base.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const bundle = require('../bundle.js'); 19 | const config = require('../../config'); 20 | const portalManager = require('../portalManager.js'); 21 | const quota = require('../quota.js'); 22 | 23 | class baseModel 24 | { 25 | constructor(req, title) { 26 | this.links = bundle.links; 27 | this.scripts = bundle.scripts; 28 | this.config = config; 29 | this.portalUrl = portalManager.getExternalPortalUrl(req); 30 | this.title = title; 31 | 32 | if (req.session) { 33 | if (req.session.quota) { 34 | this.quota = quota(req.session.quota); 35 | } 36 | if (req.session.tariff) { 37 | this.tariff = req.session.tariff; 38 | } 39 | if (req.session.tenantExtra) { 40 | this.tenantExtra = req.session.tenantExtra; 41 | } 42 | if (req.session.whiteLabelSettings) { 43 | this.whiteLabelSettings = req.session.whiteLabelSettings; 44 | } 45 | if (req.session.controlPanelSettings) { 46 | this.controlPanelSettings = req.session.controlPanelSettings; 47 | } 48 | if (req.session.user) { 49 | this.cultureName = req.session.user.cultureName; 50 | } 51 | } 52 | 53 | Object.assign(this, req.resources); 54 | this.multiPortals = this.cpMultiPortalsResource.MultiPortals; 55 | 56 | } 57 | } 58 | 59 | module.exports = baseModel; -------------------------------------------------------------------------------- /web/www/app/model/rebranding.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | (function () { 19 | const BaseModel = require('./base.js'); 20 | 21 | class rebrandingModel extends BaseModel { 22 | constructor(req, title) { 23 | super(req, title); 24 | 25 | this.companySettings = null; 26 | this.additionalSettings = null; 27 | this.mailSettings = null; 28 | this.errorMessage = null; 29 | } 30 | } 31 | 32 | module.exports = rebrandingModel; 33 | })(); -------------------------------------------------------------------------------- /web/www/app/model/sso.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | (function () { 19 | const BaseModel = require('./base.js'); 20 | 21 | class ssoModel extends BaseModel { 22 | constructor(req, title) { 23 | super(req, title); 24 | 25 | this.currentSettings = null; 26 | this.defaultSettings = null; 27 | this.constats = null; 28 | this.metadata = null; 29 | this.errorMessage = null; 30 | } 31 | } 32 | 33 | module.exports = ssoModel; 34 | })(); -------------------------------------------------------------------------------- /web/www/app/model/updateActionType.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | module.exports = { 19 | None: 0, 20 | Update: 1, 21 | Download: 2, 22 | Install: 3, 23 | Restart: 4, 24 | Refresh: 5 25 | } -------------------------------------------------------------------------------- /web/www/app/portalManager.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const config = require('../config'), 19 | app = require('express')(), 20 | request = require('request'); 21 | 22 | let portalUrl = ''; 23 | 24 | function setPortalUrl({portal}) { 25 | return new Promise(function (resolve, reject) { 26 | 27 | if (app.get('env') !== 'development') { 28 | resolve(); 29 | return; 30 | } 31 | 32 | if (typeof portal !== "string" || portal.length === 0) { 33 | return; 34 | } 35 | portal = portal.toLowerCase().trim(); 36 | if (portal.indexOf("https") === 0) { 37 | portalUrl = portal; 38 | resolve(); 39 | return; 40 | } 41 | 42 | request(portal, 43 | function(error, response, body) { 44 | if (!error) { 45 | portalUrl = response.req._headers.referer; 46 | resolve(); 47 | } else { 48 | reject(); 49 | } 50 | }); 51 | }); 52 | } 53 | 54 | function getExternalPortalUrl(req) { 55 | if (portalUrl) { 56 | return portalUrl; 57 | } 58 | 59 | const xRewriterUrlHeader = 'x-rewriter-url'; 60 | if (req.headers && req.headers[xRewriterUrlHeader]) { 61 | return req.headers[xRewriterUrlHeader]; 62 | } 63 | 64 | return getInternalPortalUrl(); 65 | } 66 | 67 | function getInternalPortalUrl() { 68 | if (portalUrl) { 69 | return portalUrl; 70 | } 71 | 72 | const portal = config.get('web:portal'); 73 | if (portal) { 74 | return portal; 75 | } 76 | 77 | return ""; 78 | } 79 | 80 | function getAbsolutePortalUrl(relativeUrl) { 81 | return getInternalPortalUrl().replace(/\/$/g, '') + '/' + relativeUrl.replace(/^\//g, ''); 82 | } 83 | 84 | module.exports = { setPortalUrl, getExternalPortalUrl, getInternalPortalUrl, getAbsolutePortalUrl }; -------------------------------------------------------------------------------- /web/www/app/quota.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | module.exports = (quota) => { 19 | return new Proxy(quota, 20 | { 21 | get: function(target, property) { 22 | if (property in target) { 23 | return target[property]; 24 | } 25 | 26 | if (target.features) { 27 | const features = target.features.toLowerCase().split(','), 28 | prop = property.toLowerCase(); 29 | 30 | if (features.indexOf(prop) > -1) { 31 | return true; 32 | }; 33 | 34 | return undefined; 35 | } 36 | 37 | return undefined; 38 | } 39 | }); 40 | } -------------------------------------------------------------------------------- /web/www/executables/tools/apply-certificate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | CONTAINER_NAME=$1 16 | shift 17 | PRODUCT=$1 18 | shift 19 | FROM=$1 20 | shift 21 | TO=$1 22 | shift 23 | 24 | SCRIPT_PATH="/var/www/$PRODUCT/Tools/default-$PRODUCT-ssl.sh" 25 | 26 | docker cp ${FROM} ${CONTAINER_NAME}:${TO} 27 | 28 | if [[ -n $(docker exec $CONTAINER_NAME ls $SCRIPT_PATH 2>/dev/null) ]]; then 29 | docker exec $CONTAINER_NAME bash $SCRIPT_PATH &>/dev/null 30 | exit 0; 31 | fi 32 | 33 | docker exec $CONTAINER_NAME /app/$PRODUCT/run-community-server.sh 34 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/check-bindings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | if [[ -z "$1" ]]; then 16 | echo "container id is empty"; 17 | exit 0; 18 | fi 19 | 20 | binds=$(docker inspect --format='{{range $p,$conf:=.HostConfig.Binds}}{{$conf}};{{end}}' $1) 21 | volumes=$(docker inspect --format='{{range $p,$conf:=.Config.Volumes}}{{$p}};{{end}}' $1) 22 | arrBinds=$(echo $binds | tr ";" "\n") 23 | arrVolumes=$(echo $volumes | tr ";" "\n") 24 | bindsCorrect=1 25 | 26 | if [[ -n "$2" ]]; then 27 | exceptions=$(echo $2 | tr "," "\n") 28 | for ex in ${exceptions[@]} 29 | do 30 | arrVolumes=(${arrVolumes[@]/$ex}) 31 | done 32 | fi 33 | 34 | for volume in $arrVolumes 35 | do 36 | bindExist=0 37 | for bind in $arrBinds 38 | do 39 | bind=($(echo $bind | tr ":" " ")) 40 | if [ "${bind[1]}" == "${volume}" ]; then 41 | bindExist=1 42 | fi 43 | done 44 | if [ "$bindExist" = "0" ]; then 45 | bindsCorrect=0 46 | echo "${volume} not binded" 47 | fi 48 | done 49 | 50 | if [ "$bindsCorrect" = "0" ]; then 51 | exit 0; 52 | fi 53 | 54 | exit 0; 55 | -------------------------------------------------------------------------------- /web/www/executables/tools/check-docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | check_file () { 16 | if [ -f /.dockerenv ]; then 17 | return 0; 18 | else 19 | return 1; 20 | fi 21 | } 22 | 23 | if check_file; then 24 | echo true; 25 | else 26 | echo false; 27 | fi 28 | 29 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/check-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | echo $(docker images | grep $1 | grep $2) 16 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/check-vsyscall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | KERNEL=$(uname -r); 16 | MIN_NUM_ARR=(4 18 0); 17 | CUR_NUM_ARR=(); 18 | 19 | CUR_STR_ARR=$(echo $KERNEL | grep -Po "[0-9]+\.[0-9]+\.[0-9]+" | tr "." " "); 20 | for CUR_STR_ITEM in $CUR_STR_ARR 21 | do 22 | CUR_NUM_ARR=(${CUR_NUM_ARR[@]} $CUR_STR_ITEM); 23 | done 24 | 25 | INDEX=0; 26 | NEED_VSYSCALL_CHECK="true"; 27 | 28 | while [[ $INDEX -lt 3 ]]; do 29 | if [ ${CUR_NUM_ARR[INDEX]} -lt ${MIN_NUM_ARR[INDEX]} ]; then 30 | NEED_VSYSCALL_CHECK="false"; 31 | INDEX=3; 32 | elif [ ${CUR_NUM_ARR[INDEX]} -gt ${MIN_NUM_ARR[INDEX]} ]; then 33 | INDEX=3; 34 | fi 35 | (( INDEX++ )) 36 | done 37 | 38 | if [ "$NEED_VSYSCALL_CHECK" == "true" ]; then 39 | VSYSCALL_ENABLED=$(cat /proc/self/maps | egrep 'vsyscall'); 40 | if [ -z "$VSYSCALL_ENABLED" ]; then 41 | echo false; 42 | else 43 | echo true; 44 | fi 45 | else 46 | echo true; 47 | fi 48 | 49 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/compare-certs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | function trimStart(){ 16 | data=$(sed '/[BEGIN,END]/s/^[ \t]*//' < $1) 17 | echo "$data" > $1 18 | } 19 | 20 | trimStart $1 21 | trimStart $2 22 | 23 | CRTHASH=$(openssl x509 -in $1 -modulus -noout | openssl md5) 24 | KEYHASH=$(openssl rsa -in $2 -modulus -noout | openssl md5) 25 | 26 | if [[ "$CRTHASH" = "$KEYHASH" ]]; then 27 | echo true; 28 | exit 0; 29 | fi 30 | echo false; 31 | exit 0; 32 | -------------------------------------------------------------------------------- /web/www/executables/tools/createpfx.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | while [ "$1" != "" ]; do 16 | case $1 in 17 | -k | --key ) 18 | KEY=$2 19 | shift 20 | ;; 21 | 22 | -c | --certificate ) 23 | CERTIFICATE=$2 24 | shift 25 | ;; 26 | 27 | -pfx | --pfx ) 28 | PFX=$2 29 | shift 30 | ;; 31 | 32 | -p | --password ) 33 | PASS=$2 34 | shift 35 | ;; 36 | 37 | -? | -h | --help ) 38 | echo " Usage $0 [PARAMETER] [[PARAMETER], ...]" 39 | echo " Parameters:" 40 | echo " -k, --key key file name" 41 | echo " -c, --certificate certificate file name" 42 | echo " -p, --password password" 43 | echo " -pfx, --pfx pfx file name" 44 | echo " -?, -h, --help this help" 45 | echo 46 | exit 0 47 | ;; 48 | 49 | * ) 50 | echo "Unknown parameter $1" 1>&2 51 | exit 1 52 | ;; 53 | esac 54 | shift 55 | done 56 | 57 | openssl pkcs12 -export -out $PFX -inkey $KEY -in $CERTIFICATE -password pass:$PASS 58 | 59 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/get-current-version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | containerExistence=$(docker ps -q -f name=$1) 16 | if [ "${containerExistence}" ]; then 17 | image=$(docker inspect --format='{{.Config.Image}}' $1) 18 | imageNameVersion=($(echo $image | tr ":" "\n")) 19 | echo ${imageNameVersion[1]} 20 | else 21 | echo "Unknown"; 22 | fi 23 | 24 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/get.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | while [ "$1" != "" ]; do 16 | case $1 in 17 | -f | --from ) 18 | if [ "$2" != "" ]; then 19 | FROM=$2 20 | shift 21 | fi 22 | ;; 23 | 24 | -t | --to ) 25 | if [ "$2" != "" ]; then 26 | TO=$2 27 | shift 28 | fi 29 | ;; 30 | 31 | -cc | --communtycontainer ) 32 | if [ "$2" != "" ]; then 33 | COMMUNITY_CONTAINER_NAME=$2 34 | shift 35 | fi 36 | ;; 37 | 38 | * ) 39 | echo "Unknown parameter $1" 1>&2 40 | exit 1 41 | ;; 42 | esac 43 | shift 44 | done 45 | 46 | if [ -n $(docker exec $COMMUNITY_CONTAINER_NAME ls $FROM 2>/dev/null) ]; then 47 | docker cp ${COMMUNITY_CONTAINER_NAME}:${FROM} ${TO} 48 | exit 0; 49 | fi -------------------------------------------------------------------------------- /web/www/executables/tools/letsencrypt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | CONTAINER_NAME=$1 16 | shift 17 | PRODUCT=$1 18 | shift 19 | FROM=$1 20 | shift 21 | TO=$1 22 | shift 23 | 24 | SCRIPT_PATH="/var/www/$PRODUCT/Tools/letsencrypt.sh" 25 | 26 | if [[ -z $(docker exec $CONTAINER_NAME ls $SCRIPT_PATH 2>/dev/null) ]]; then 27 | SCRIPT_PATH="/app/$PRODUCT/assets/tools/letsencrypt.sh" 28 | fi 29 | 30 | docker exec $CONTAINER_NAME bash $SCRIPT_PATH "$@" &>/dev/null 31 | 32 | docker cp ${CONTAINER_NAME}:${FROM} ${TO} 33 | 34 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/move.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | while [ "$1" != "" ]; do 16 | case $1 in 17 | -f | --from ) 18 | if [ "$2" != "" ]; then 19 | FROM=$2 20 | shift 21 | fi 22 | ;; 23 | 24 | -t | --to ) 25 | if [ "$2" != "" ]; then 26 | TO=$2 27 | shift 28 | fi 29 | ;; 30 | 31 | -cc | --communtycontainer ) 32 | if [ "$2" != "" ]; then 33 | COMMUNITY_CONTAINER_NAME=$2 34 | shift 35 | fi 36 | ;; 37 | 38 | * ) 39 | echo "Unknown parameter $1" 1>&2 40 | exit 1 41 | ;; 42 | esac 43 | shift 44 | done 45 | 46 | docker cp "${FROM}" ${COMMUNITY_CONTAINER_NAME}:"${TO}" 47 | rm -rf "${FROM}" 48 | -------------------------------------------------------------------------------- /web/www/executables/tools/openssl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | while [ "$1" != "" ]; do 16 | case $1 in 17 | -k | --key ) 18 | KEY=$2 19 | shift 20 | ;; 21 | 22 | -c | --certificate ) 23 | CERTIFICATE=$2 24 | shift 25 | ;; 26 | 27 | -r | --request ) 28 | REQUEST=$2 29 | shift 30 | ;; 31 | 32 | -? | -h | --help ) 33 | echo " Usage $0 [PARAMETER] [[PARAMETER], ...]" 34 | echo " Parameters:" 35 | echo " -k, --key key file name" 36 | echo " -c, --certificate certificate file name" 37 | echo " -r, --request request file name" 38 | echo " -?, -h, --help this help" 39 | echo 40 | exit 0 41 | ;; 42 | 43 | * ) 44 | echo "Unknown parameter $1" 1>&2 45 | exit 1 46 | ;; 47 | esac 48 | shift 49 | done 50 | 51 | openssl genrsa -out $KEY 2048 &>/dev/null 52 | openssl req -new -subj '/' -key $KEY -out $REQUEST &>/dev/null 53 | openssl x509 -req -days 365 -in $REQUEST -signkey $KEY -out $CERTIFICATE &>/dev/null 54 | 55 | exit 0; -------------------------------------------------------------------------------- /web/www/executables/tools/remove-certificate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | CONTAINER_NAME=$1 16 | shift 17 | PRODUCT=$1 18 | shift 19 | CRT_PATH=$1 20 | shift 21 | 22 | docker exec $CONTAINER_NAME rm -rf $CRT_PATH 2>/dev/null 23 | 24 | SCRIPT_PATH="/var/www/$PRODUCT/Tools/default-$PRODUCT.sh" 25 | 26 | if [[ -n $(docker exec $CONTAINER_NAME ls $SCRIPT_PATH 2>/dev/null) ]]; then 27 | docker exec $CONTAINER_NAME bash $SCRIPT_PATH &>/dev/null 28 | exit 0; 29 | fi 30 | 31 | docker exec $CONTAINER_NAME /app/$PRODUCT/run-community-server.sh 32 | exit 0; 33 | -------------------------------------------------------------------------------- /web/www/executables/tools/remove-container.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # (c) Copyright Ascensio System Limited 2010-2021 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | 14 | 15 | CONTAINER_NAME=$1; 16 | FAST_REMOVE=$2; 17 | 18 | if [[ -z ${CONTAINER_NAME} ]]; then 19 | echo "Empty container name" 20 | exit 0; 21 | fi 22 | 23 | if [ "$FAST_REMOVE" == "true" ]; then 24 | echo "fast remove container:" 25 | docker rm -f ${CONTAINER_NAME}; 26 | else 27 | echo "stop container:" 28 | docker stop ${CONTAINER_NAME}; 29 | echo "remove container:" 30 | docker rm ${CONTAINER_NAME}; 31 | fi 32 | 33 | sleep 10 #Hack for SuSe: exception "Error response from daemon: devmapper: Unknown device xxx" 34 | 35 | echo "check removed container:" 36 | CONTAINER_ID=$(docker ps -aqf "name=$CONTAINER_NAME"); 37 | 38 | if [[ -n ${CONTAINER_ID} ]]; then 39 | echo "try again remove ${CONTAINER_NAME}" 40 | remove_container ${CONTAINER_NAME} 41 | fi 42 | 43 | exit 0; 44 | -------------------------------------------------------------------------------- /web/www/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "controlpanel", 3 | "version": "3.5.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./server.js" 7 | }, 8 | "description": "Control Panel", 9 | "author": { 10 | "name": "ONLYOFFICE Team" 11 | }, 12 | "dependencies": { 13 | "body-parser": "^1.20.1", 14 | "co": "^4.6.0", 15 | "cookie-parser": "^1.4.6", 16 | "etag": "^1.8.1", 17 | "express": "^4.18.2", 18 | "express-session": "^1.17.3", 19 | "formidable": "^2.1.1", 20 | "image-size": "^1.0.2", 21 | "less": "^4.1.3", 22 | "less-middleware": "^3.1.0", 23 | "memorystore": "^1.6.7", 24 | "moment": "^2.29.4", 25 | "morgan": "^1.10.0", 26 | "nconf": "^0.12.0", 27 | "public-ip": "^4.0.4", 28 | "pug": "^3.0.2", 29 | "request": "^2.88.2", 30 | "semver": "^7.3.8", 31 | "serve-favicon": "^2.5.0", 32 | "uglify-js": "^3.17.4", 33 | "url": "^0.11.0", 34 | "uuid": "^9.0.0", 35 | "winston": "^3.8.2", 36 | "winston-daily-rotate-file": "^4.7.1", 37 | "x509.js": "^1.0.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /web/www/public/javascripts/third-party/jquery.json.js: -------------------------------------------------------------------------------- 1 | /*! jQuery JSON plugin v2.5.1 | github.com/Krinkle/jquery-json */ 2 | !function($){"use strict";var escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},hasOwn=Object.prototype.hasOwnProperty;$.toJSON="object"==typeof JSON&&JSON.stringify?JSON.stringify:function(a){if(null===a)return"null";var b,c,d,e,f=$.type(a);if("undefined"===f)return void 0;if("number"===f||"boolean"===f)return String(a);if("string"===f)return $.quoteString(a);if("function"==typeof a.toJSON)return $.toJSON(a.toJSON());if("date"===f){var g=a.getUTCMonth()+1,h=a.getUTCDate(),i=a.getUTCFullYear(),j=a.getUTCHours(),k=a.getUTCMinutes(),l=a.getUTCSeconds(),m=a.getUTCMilliseconds();return 10>g&&(g="0"+g),10>h&&(h="0"+h),10>j&&(j="0"+j),10>k&&(k="0"+k),10>l&&(l="0"+l),100>m&&(m="0"+m),10>m&&(m="0"+m),'"'+i+"-"+g+"-"+h+"T"+j+":"+k+":"+l+"."+m+'Z"'}if(b=[],$.isArray(a)){for(c=0;c 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/audit_trail_empty_screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/audit_trail_empty_screen.jpg -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/audittrail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/backup.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/banner-mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/banner-pro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/banner-scalability.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 16 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/banner-security.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 11 | 13 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/banner-support.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/bnt-onoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/bnt-onoff.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/calendar.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/close.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/combo_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/combo_gray.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/common.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/common.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/corner_top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/corner_top.gif -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/encryption.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/exit-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/exit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/expl_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/expl_16.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/favicon.ico -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/flags.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/flags.gif -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/gift-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 20 | 21 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/gift.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/helper-corner-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/helper-corner-down.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/helper-corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/helper-corner.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/https.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/icon_payments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/icon_payments.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ldap.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/loader.gif -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/login_history_empty_screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/login_history_empty_screen.jpg -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/migration.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/module-calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/module-document.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/module-mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/module-people.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/name_action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/name_action.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/privacyroom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/question_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/question_small.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/rebranding_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/rebranding_about.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/rebranding_navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/rebranding_navigation.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/rebranding_samples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/rebranding_samples.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/remove_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/remove_16.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/restore.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/slider_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/slider_btn.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/social.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/socials_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/socials_sprite.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/sprite_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/sprite_big.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/sso-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/sso-sprite.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/sso.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/storage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/tlcombobox-button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/tlcombobox-button.gif -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/toast_icon01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/toast_icon01.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/toast_icon02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/toast_icon02.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/toast_icon03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/toast_icon03.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/trash_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/trash_16.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/animated-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/animated-overlay.gif -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/ui-icons/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONLYOFFICE/ControlPanel/0125d594c17c18994f124c06f8cdef310f0fe112/web/www/public/stylesheets/images/ui-icons/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/update.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/images/upgrade.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /web/www/public/stylesheets/login.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | @import "vars"; 19 | 20 | #loginView { 21 | width: 370px; 22 | margin: 0 auto; 23 | margin-top: 70px; 24 | 25 | #loginForm { 26 | #loginPortal, #loginEmail, #loginPassword { 27 | display: block; 28 | } 29 | 30 | #loginEmail, #loginPassword { 31 | margin-top: 10px; 32 | } 33 | 34 | #loginBtn { 35 | margin-top: 30px; 36 | } 37 | 38 | .login-toast { 39 | display: none; 40 | position: fixed; 41 | width: auto; 42 | z-index: 99999; 43 | 44 | > div { 45 | width: 300px; 46 | } 47 | 48 | .toast-message { 49 | float: left; 50 | } 51 | 52 | .login-toast-close { 53 | background: rgba(0, 0, 0, 0) url("images/common.png") no-repeat scroll 0 -83px; 54 | cursor: pointer; 55 | height: 14px; 56 | position: fixed; 57 | right: 20px; 58 | width: 24px; 59 | } 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /web/www/public/stylesheets/multiportals.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | @import "vars"; 19 | 20 | #multiPortalsView { 21 | .container-with-border > table { 22 | text-align: center; 23 | 24 | .currentDomain { 25 | padding: 30px 10px; 26 | } 27 | 28 | 29 | .btnContainer { 30 | padding: 30px 30px 30px 0; 31 | 32 | >div { 33 | float: right; 34 | } 35 | } 36 | } 37 | 38 | .quotaTable { 39 | width: 100%; 40 | 41 | .td-quota-padding { 42 | padding-left: 30px; 43 | } 44 | } 45 | 46 | #newPortalBtn { 47 | float: right; 48 | } 49 | 50 | .status { 51 | display: block; 52 | height: 10px; 53 | width: 10px; 54 | background-color: #999; 55 | .borderRadius(10px); 56 | 57 | &.green { 58 | background-color: #66bb6a; 59 | } 60 | } 61 | } 62 | 63 | #newPortalPanel .popup-content table { 64 | border-collapse: collapse; 65 | vertical-align: middle; 66 | width: 100%; 67 | } 68 | 69 | #visitPoralCheckbox { 70 | display: block; 71 | margin-top: 24px; 72 | line-height: 22px; 73 | } 74 | 75 | #limitedControlPanelCheckbox { 76 | display: block; 77 | margin-top: 24px; 78 | line-height: 22px; 79 | } 80 | 81 | #changeBaseDomainPanel { 82 | .attention-header { 83 | margin-top: 0; 84 | } 85 | } -------------------------------------------------------------------------------- /web/www/public/stylesheets/paragraph.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | @import "vars"; 19 | 20 | p 21 | { 22 | padding: 0; 23 | margin: 24px 0; 24 | } -------------------------------------------------------------------------------- /web/www/public/stylesheets/privacyroom.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | @import "vars"; 19 | 20 | #privacyRoomSettingsSwitch { 21 | .text { 22 | line-height: 22px; 23 | } 24 | } -------------------------------------------------------------------------------- /web/www/public/stylesheets/rebranding.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | @import "vars"; 19 | 20 | .tab-container { 21 | margin-top: 36px; 22 | 23 | .tab-switcher { 24 | display: block; 25 | 26 | .tab-item-link { 27 | display: inline-block; 28 | min-width: 68px; 29 | font-size: 13px; 30 | line-height: 18px; 31 | text-decoration: none; 32 | text-transform: uppercase; 33 | color: #999999; 34 | padding-bottom: 15px; 35 | border-bottom: 1px solid #E7E7E7; 36 | 37 | &.selected { 38 | color: #5697E4; 39 | border-bottom: 1px solid #5697E4 40 | } 41 | } 42 | } 43 | 44 | .tab-item-content { 45 | display: none; 46 | 47 | &.selected { 48 | display: block; 49 | } 50 | } 51 | } 52 | 53 | #rebrandingMainContainer { 54 | 55 | .spoiler-title { 56 | display: inline; 57 | } 58 | 59 | .spoiler-link { 60 | display: inline; 61 | margin-left: 16px; 62 | } 63 | 64 | .settings-block { 65 | margin: 20px 0 0 0; 66 | } 67 | 68 | .left-column { 69 | float: left; 70 | margin: 0 20px 0 0; 71 | width: 300px; 72 | } 73 | 74 | .right-column { 75 | float: left; 76 | width: 300px; 77 | } 78 | } 79 | 80 | .img-popup { 81 | display: none; 82 | } -------------------------------------------------------------------------------- /web/www/public/stylesheets/search.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | @import "vars"; 19 | 20 | #searchView { 21 | .checkBox { 22 | display: block; 23 | margin-bottom: 14px; 24 | } 25 | } 26 | 27 | #searchTable { 28 | margin-top: 30px; 29 | 30 | thead { 31 | .index, .docsCount, .storeSize { 32 | text-align: left; 33 | } 34 | } 35 | 36 | .index { 37 | span { 38 | .limitedSingleText(300px); 39 | margin-left: 10px; 40 | } 41 | } 42 | 43 | .docsCount { 44 | width: 100px; 45 | span { 46 | .limitedSingleText(90px); 47 | } 48 | } 49 | 50 | .storeSize { 51 | width: 100px; 52 | span { 53 | .limitedSingleText(90px); 54 | } 55 | } 56 | 57 | .reindex { 58 | width: 100px; 59 | button { 60 | text-transform: uppercase; 61 | font-size: 12px; 62 | font-weight: bold; 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /web/www/public/stylesheets/update.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | #formContentUpdate { 19 | .container-with-border > table { 20 | text-align: center; 21 | 22 | .currentVer{ 23 | padding: 30px 0 30px 30px; 24 | } 25 | .availableVer{ 26 | padding: 30px 10px; 27 | } 28 | .btnContainer { 29 | padding: 30px 30px 30px 0; 30 | } 31 | 32 | } 33 | } 34 | #updateResult { 35 | display: inline-block; 36 | } 37 | 38 | #confirmationInstallOrUpdateDialog .popup-content p:first-child { 39 | margin-top: 0; 40 | } 41 | #updatesOrInstallationsList { 42 | .popup_helper { 43 | z-index: 1005; 44 | } 45 | } -------------------------------------------------------------------------------- /web/www/server.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * (c) Copyright Ascensio System Limited 2010-2021 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * 15 | */ 16 | 17 | 18 | const log = require('./app/log.js'); 19 | const app = require('./app'); 20 | const config = require('./config'); 21 | 22 | app.set('port', config.get('port') || 3000); 23 | 24 | const server = app.listen(app.get('port'), function () { 25 | log.info('Express server listening on port ' + server.address().port); 26 | }); -------------------------------------------------------------------------------- /web/www/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "globalDependencies": { 3 | "body-parser": "registry:dt/body-parser#0.0.0+20160317120654", 4 | "cookie-parser": "registry:dt/cookie-parser#1.3.4+20160316155526", 5 | "debug": "registry:dt/debug#0.0.0+20160317120654", 6 | "express": "registry:dt/express#4.0.0+20160317120654", 7 | "express-serve-static-core": "registry:dt/express-serve-static-core#0.0.0+20160602151406", 8 | "jade": "registry:dt/jade#0.0.0+20160316155526", 9 | "mime": "registry:dt/mime#0.0.0+20160316155526", 10 | "morgan": "registry:dt/morgan#1.7.0+20160524142355", 11 | "serve-favicon": "registry:dt/serve-favicon#0.0.0+20160316155526", 12 | "serve-static": "registry:dt/serve-static#0.0.0+20160606155157", 13 | "stylus": "registry:dt/stylus#0.0.0+20160317120654" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /web/www/views/Shared/error.pug: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1= error.status + " " + error.message 5 | //- h1= error.message 6 | //- h2= error.status 7 | //- pre= error.stack -------------------------------------------------------------------------------- /web/www/views/Shared/homeLayout.pug: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block loginarea 4 | include topButtons 5 | 6 | block content 7 | div.layoutLeftSide 8 | include leftSide 9 | div.layoutRightSide 10 | block rightSide 11 | 12 | script#errorBlockTmpl(type="text/x-jquery-tmpl") 13 | div.toast-container 14 | div.toast.toast-error(style="display: block;") 15 | div.toast-message {{if typeof(content) != "undefined" && content}}${content}{{/if}}{{if typeof(htmlcontent) != "undefined" && htmlcontent}}{{html htmlcontent}}{{/if}} 16 | 17 | block footercontent 18 | include footer 19 | 20 | block bodyscripts 21 | script(type="text/javascript"). 22 | $(function () { 23 | window.HomeView.init(); 24 | setTimeout(window.versionManager.isUpdatesAvailable, 3000); 25 | }); -------------------------------------------------------------------------------- /web/www/views/Shared/layout.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | meta(charset="utf-8") 5 | meta(name="viewport", content="width=device-width") 6 | meta(name="keywords", content=controlPanelResource.MetaKeywords) 7 | meta(name="description", content=controlPanelResource.MetaDescription) 8 | title= title + " - " + controlPanelResource.ControlPanel 9 | link(type="text/css", rel="stylesheet", href="/skins/default/opensansoffline/opensansoffline.css") 10 | link(type="text/css", rel='stylesheet', href= config.makePath('/stylesheets/jquery-ui-1.10.4.custom.css')) 11 | each link in links 12 | link(type="text/css", rel='stylesheet', href=link) 13 | body 14 | div.layoutWrapper 15 | div.layoutHeader.layoutContent 16 | a.logo(tabindex="-1", href=config.makePath()) 17 | img(src=config.makePath("/stylesheets/images/logo.svg")) 18 | 19 | block loginarea 20 | 21 | div.layoutBody.layoutContent.clear-fix 22 | block content 23 | 24 | div#connectionErrorPop.popup 25 | div.popup-caption 26 | =controlPanelResource.ConnectionErrorHdr 27 | div.popup-body 28 | div.popup-content 29 | div 30 | =controlPanelResource.ConnectionErrorText_1 31 | br 32 | =controlPanelResource.ConnectionErrorText_2 33 | a.button.black.cancelbtn 34 | =controlPanelResource.Ok 35 | div.layoutFooter.display-none 36 | block footercontent 37 | script(src=config.makePath("resource")) 38 | 39 | each script in scripts 40 | script(src=script) 41 | 42 | script(type="text/javascript"). 43 | Common.basePath = "#{config.makePath()}"; 44 | Common.offlineMode = #{config.isOfflineMode}; 45 | Common.windowsMode = #{!config.isMono}; 46 | 47 | block bodyscripts -------------------------------------------------------------------------------- /web/www/views/audittrail.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | h1.blue-text 5 | span.header-icon.audittrail 6 | = controlPanelResource.AuditTrail 7 | 8 | div#audittrail-view.display-none 9 | 10 | div#lifetime-period 11 | p= controlPanelResource.AuditLatestText 12 | div.header-base-small= controlPanelResource.StoragePeriod + ":" 13 | div.audit-settings-block 14 | input#lifetime-input.textBox(type="text" disabled=true value="" maxlength="3") 15 | button#save-settings-btn.button.black(type="button" class="disabled")= controlPanelResource.SaveButton 16 | 17 | p#download-report-text= controlPanelResource.AuditDownloadText 18 | 19 | table#events-table.table-list.height32 20 | thead 21 | tr 22 | th.user 23 | span= controlPanelResource.UserCol 24 | th.date 25 | span= controlPanelResource.DateCol 26 | th.action 27 | span= controlPanelResource.ActionCol 28 | tbody 29 | 30 | div#events-table-dscr.gray-text= controlPanelResource.TotalAuditItems + ":" 31 | span 32 | 33 | a#download-report-btn.button.green.uppercase(href="#generate" target="_blank")= controlPanelResource.DownloadReportBtn 34 | span#generate-text.display-none= controlPanelResource.GenerateText 35 | 36 | div#empty-screen.empty-screen.clear-fix 37 | div.empty-screen-image 38 | div.empty-screen-title= controlPanelResource.NoAuditEventsTitle 39 | div.empty-screen-description= controlPanelResource.NoAuditEventsDescription 40 | 41 | script#auditEventTmpl(type="text/x-jquery-tmpl") 42 | tr 43 | td.user 44 | span ${user} 45 | td.date 46 | span ${displayDate} 47 | td.action 48 | span ${action} 49 | 50 | append bodyscripts 51 | script(type="text/javascript"). 52 | $(function() { 53 | window.AuditTrailView.init(); 54 | }); -------------------------------------------------------------------------------- /web/www/views/dateTimeSelector.pug: -------------------------------------------------------------------------------- 1 | div.datetimeSelectorBox 2 | div.selectBox.typeSelector(data-value="0") 3 | div.selectBoxValue= controlPanelResource.EveryDay 4 | div.selectBoxSwitch 5 | 6 | div.selectOptionsBox 7 | div.selectOptionsInnerBox 8 | div.option.selected(data-value="0")= controlPanelResource.EveryDay 9 | div.option(data-value="1")= controlPanelResource.EveryWeek 10 | div.option(data-value="2")= controlPanelResource.EveryMonth 11 | 12 | div.selectBox.daysSelector(data-value="1") 13 | div.selectBoxValue 1 14 | div.selectBoxSwitch 15 | div.selectOptionsBox 16 | div.selectOptionsInnerBox 17 | div.option.selected(data-value="1") 1 18 | - for (var i = 2; i < 32; i++) { 19 | div.option(data-value=i)= i 20 | - } 21 | div.selectBox.daysweekSelector(data-value=days[0].index % 7 + 1) 22 | div.selectBoxValue= days[0].name 23 | div.selectBoxSwitch 24 | div.selectOptionsBox 25 | div.selectOptionsInnerBox 26 | div.option.selected(data-value=days[0].index % 7 + 1)= days[0].name 27 | - for (var i = 1; i < days.length; i++) { 28 | div.option(data-value=days[i].index + 1)= days[i].name 29 | - } 30 | div.selectBox.hoursSelector(data-value="12") 31 | div.selectBoxValue 12:00 32 | div.selectBoxSwitch 33 | div.selectOptionsBox 34 | div.selectOptionsInnerBox 35 | - for (var i = 0; i < 24; i++) { 36 | - if (i == 12) { 37 | div.option.selected(data-value="12") 12:00 38 | - } else { 39 | - if (i < 10) { 40 | div.option(data-value=i)= '0' + i + ':00' 41 | -} else { 42 | div.option(data-value=i)= i + ':00' 43 | -} 44 | - } 45 | - } 46 | -------------------------------------------------------------------------------- /web/www/views/https.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | div#https-view 5 | h1.blue-text 6 | span.header-icon.https 7 | = controlPanelResource.Https 8 | 9 | p= controlPanelResource.HttpsDscr 10 | 11 | div#formHttps.top-indent-big.view 12 | div.container-base 13 | div.table-header= controlPanelResource.GeneratedDomain 14 | div#currentDomain.content-block 15 | button#deleteDomainBtn.button.black(type="button" tabindex="4")= controlPanelResource.ButtonDelete 16 | 17 | div#formHttpsCreate.top-indent-big.view 18 | div.container-base 19 | div.table-header= controlPanelResource.GeneratingSelfSignedCertificateHeader 20 | p.describe-block= controlPanelResource.GeneratingSelfSignedCertificateText 21 | div.middle-button-container 22 | button#generate-self-signed-certificate-btn.button.black(type="button" tabindex="5")= controlPanelResource.GenerateSelfSignedCertificateBtn 23 | 24 | div.container-base 25 | div.table-header= controlPanelResource.SRTCertificate 26 | span.helpCenterSwitcher(onclick=" $(this).helper({ BlockHelperID: 'SRTCertificateHelper' }); ") 27 | div#SRTCertificateHelper.popup_helper 28 | p!= controlPanelResource.SRTCertificateHelpDscr 29 | div.inputWithBtn.withPlusBtn 30 | input#certificateInput.textBox(type="text" readonly="readonly" placeholder=controlPanelResource.UploadHttpsCertificatePlaceholder) 31 | div.button.black 32 | input#certificateUploader(type="file") 33 | |+ 34 | 35 | div.container-base 36 | div.table-header= controlPanelResource.HttpsKey 37 | span.helpCenterSwitcher(onclick=" $(this).helper({ BlockHelperID: 'HttpsKeyHelper' }); ") 38 | div#HttpsKeyHelper.popup_helper 39 | p!= controlPanelResource.HttpsKeyHelpDscr 40 | div.inputWithBtn.withPlusBtn 41 | input#keyInput.textBox(type="text" readonly="readonly" placeholder=controlPanelResource.UploadHttpsKeyPlaceholder) 42 | div.button.black 43 | input#keyUploader(type="file") 44 | |+ 45 | 46 | div.container-base 47 | button#apply-certificate-btn.button.green.disabled(type="button" tabindex="6")= controlPanelResource.ApplyCertificateBtn 48 | 49 | append bodyscripts 50 | script(type="text/javascript"). 51 | $(function() { 52 | window.HttpsView.init() 53 | }); -------------------------------------------------------------------------------- /web/www/views/httpsInfo.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | div#https-view 5 | h1.blue-text 6 | span.header-icon.https 7 | = controlPanelResource.Https 8 | 9 | p!= controlPanelResource.format("HttpsInfo1", "", "") 10 | 11 | - var helpcenter = (config.get("helpcenter") || "") 12 | - var type = (config.isMono ? "Linux" : "Windows" ) 13 | - var customGenerateCertUrl = config.get("customMode:HttpsGenerateCert" + type + "Url"); 14 | - var customOwnCertUrl = config.get("customMode:HttpsOwnCert" + type + "Url"); 15 | - var httpsInfo2Url = (typeof customGenerateCertUrl !== "undefined" ? (customGenerateCertUrl || "") : controlPanelResource.format("HttpsInfo2Url", helpcenter, type.toLowerCase())); 16 | - var httpsInfo3Url = (typeof customOwnCertUrl !== "undefined" ? (customOwnCertUrl || "") : controlPanelResource.format("HttpsInfo3Url", helpcenter, type.toLowerCase())); 17 | 18 | -if(helpcenter){ 19 | p!= controlPanelResource.format("HttpsInfo2", "", "") 20 | p!= controlPanelResource.format('HttpsInfo3', "", "") 21 | -}else{ 22 | p!= controlPanelResource.HttpsInfo4 23 | -} 24 | 25 | append bodyscripts 26 | script(type="text/javascript"). 27 | $(function() { 28 | $(window).trigger("rightSideReady", null); 29 | }); -------------------------------------------------------------------------------- /web/www/views/httpsWin.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | div#win-https-view 5 | h1.blue-text 6 | span.header-icon.https 7 | = controlPanelResource.Https 8 | 9 | p= controlPanelResource.HttpsDscr 10 | 11 | div.top-indent-big 12 | div.container-base 13 | div.table-header= controlPanelResource.HttpsPassword 14 | span.helpCenterSwitcher(onclick="$(this).helper({ BlockHelperID: 'HttpsPasswordHelper' }); ") 15 | div#HttpsPasswordHelper.popup_helper 16 | p!= controlPanelResource.HttpsPasswordHelpDscr 17 | div 18 | input#certificatePassword(type="password") 19 | 20 | div.container-base 21 | div.table-header= controlPanelResource.HttpsCertificate 22 | span.helpCenterSwitcher(onclick=" $(this).helper({ BlockHelperID: 'HttpsCertificateHelper' }); ") 23 | div#HttpsCertificateHelper.popup_helper 24 | p!= controlPanelResource.HttpsCertificateHelpDscr 25 | div.inputWithBtn.withPlusBtn 26 | input#certificateInput.textBox(type="text" readonly="readonly" placeholder=controlPanelResource.UploadWinHttpsCertificatePlaceholder) 27 | div.button.black 28 | input#certificateUploader(type="file") 29 | |+ 30 | 31 | div.container-base 32 | a#saveWinCertificate.button.green.disabled= controlPanelResource.ApplyCertificateBtn 33 | 34 | div#checkAttachmentDialog.popup 35 | div.popup-caption 36 | = controlPanelResource.HttpsCertificateAttachmentHeader 37 | div.popup-close × 38 | div.popup-body 39 | div.popup-content 40 | = ControlPanelResource.HttpsCertificateAttachmentBody 41 | div.big-button-container 42 | a.button.green.okbtn= controlPanelResource.Ok 43 | span.splitter-buttons 44 | a.button.black.cancelbtn= controlPanelResource.Cancel 45 | 46 | append bodyscripts 47 | script(type="text/javascript"). 48 | $(function() { 49 | window.WinHttpsView.init(); 50 | }); -------------------------------------------------------------------------------- /web/www/views/index.pug: -------------------------------------------------------------------------------- 1 | extends Shared/layout 2 | 3 | block loginarea 4 | 5 | block content 6 | div#loginView 7 | div#loginForm 8 | h1.blue-text 9 | =controlPanelResource.ControlPanelHeader 10 | input#loginPortal.textBox(type="text", placeholder=controlPanelResource.YourRegistrationPortal, tabindex="1") 11 | input#loginEmail.textBox(type="text", placeholder=controlPanelResource.YourRegistrationEmail, tabindex="2") 12 | input#loginPassword.textBox(type="password", placeholder=controlPanelResource.Password, tabindex="3") 13 | button#loginBtn.button.green(tabindex="4") 14 | =controlPanelResource.LoginBtn 15 | div#loginError.login-toast.toast-container.toast-top-right 16 | div.toast.toast-error.clear-fix 17 | div.toast-message 18 | span#incorrectLoginCombinationError 19 | =controlPanelResource.IncorrectLoginCombinationError 20 | span#incorrectAccessRightsError 21 | =controlPanelResource.IncorrectAccessRightsError 22 | div.login-toast-close 23 | 24 | block bodyscripts 25 | script(type="text/javascript"). 26 | $(function () { 27 | window.LoginView.init(); 28 | }); -------------------------------------------------------------------------------- /web/www/views/loginHistory.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | h1.blue-text 5 | span.header-icon.loginhistory 6 | = controlPanelResource.LoginHistory 7 | 8 | div#loginhistory-view.display-none 9 | 10 | div#lifetime-period 11 | p= controlPanelResource.LoginLatestText 12 | div.header-base-small= controlPanelResource.StoragePeriod + ":" 13 | div.audit-settings-block 14 | input#lifetime-input.textBox(type="text" disabled=true value="" maxlength="3") 15 | button#save-settings-btn.button.black(type="button" class="disabled")= controlPanelResource.SaveButton 16 | 17 | p#download-report-text= controlPanelResource.LoginDownloadText 18 | 19 | table#events-table.table-list.height32 20 | thead 21 | tr 22 | th.user 23 | span= controlPanelResource.UserCol 24 | th.date 25 | span= controlPanelResource.DateCol 26 | th.action 27 | span= controlPanelResource.ActionCol 28 | tbody 29 | 30 | div#events-table-dscr.gray-text= controlPanelResource.TotalAuditItems + ":" 31 | span 32 | 33 | a#download-report-btn.button.green.uppercase(href="#generate" target="_blank")= controlPanelResource.DownloadReportBtn 34 | span#generate-text.display-none= controlPanelResource.GenerateText 35 | 36 | div#empty-screen.empty-screen.clear-fix 37 | div.empty-screen-image 38 | div.empty-screen-title= controlPanelResource.NoLoginEventsTitle 39 | div.empty-screen-description= controlPanelResource.NoLoginEventsDescription 40 | 41 | div#online-users-box.display-none 42 | div.header-base= controlPanelResource.OnlineUsers 43 | div#online-users-list 44 | 45 | script#loginEventTmpl(type="text/x-jquery-tmpl") 46 | tr 47 | td.user 48 | span ${user} 49 | td.date 50 | span ${displayDate} 51 | td.action 52 | span ${action} 53 | 54 | script#online-user-tmpl(type="text/x-jquery-tmpl") 55 | div.online-user(data-userid="${id}") 56 | div.online-user-name 57 | a(href="${link}" target="_blank") ${displayName} 58 | div.online-user-duration ${presenceDuration} 59 | 60 | append bodyscripts 61 | script(type="text/javascript"). 62 | $(function() { 63 | window.LoginHistoryView.init(); 64 | }); -------------------------------------------------------------------------------- /web/www/views/privacyRoom.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | h1.blue-text 5 | span.header-icon.privacyroom 6 | =controlPanelResource.PrivacyRoom 7 | 8 | p= controlPanelResource.PrivacyRoomDescription1 9 | 10 | p!= controlPanelResource.format("PrivacyRoomDescription2", "", "", "", "") 11 | 12 | h2.attention-header 13 | span.attention-icon 14 | = controlPanelResource.AttentionBlockHeader 15 | p.attention-text= controlPanelResource.PrivacyRoomWarningMsg 16 | 17 | div#privacyRoomSettingsView.display-none 18 | a#privacyRoomSettingsSwitch.on-off-button 19 | span.text 20 | 21 | div.middle-button-container 22 | button#privacyRoomSettingsBtn.button.green= controlPanelResource.SaveButton 23 | 24 | append bodyscripts 25 | script(type="text/javascript"). 26 | $(function() { 27 | window.PrivacyRoom.init(); 28 | }); -------------------------------------------------------------------------------- /web/www/views/rebranding.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | 5 | h1.blue-text 6 | span.header-icon.whitelabel 7 | = controlPanelResource.WhiteLabel 8 | 9 | p= cpWhiteLabelResource.RebrandingWarningMessage 10 | 11 | div#tabContainer.tab-container 12 | div.tab-switcher 13 | a.tab-item-link.selected= cpWhiteLabelResource.RebrandingTabHeaderBasic 14 | a.tab-item-link= cpWhiteLabelResource.RebrandingTabHeaderAdvanced 15 | 16 | div.tab-item-content.selected 17 | include whitelabelPartial 18 | 19 | div.tab-item-content 20 | include rebrandingPartial 21 | 22 | append bodyscripts 23 | script(type="text/javascript"). 24 | $(function() { 25 | window.WhiteLabelManager.init("#{cpWhiteLabelResource.SuccessfullySaveWhiteLabelSettingsMessage}", true) 26 | window.RebrandingManager.init( 27 | "#{cpWhiteLabelResource.RebrandingSettingsSuccessfullySavedMessage}", 28 | !{JSON.stringify(companySettings || null).replace(/<\//g, '<\\/')}, 29 | !{JSON.stringify(additionalSettings || null).replace(/<\//g, '<\\/')}, 30 | !{JSON.stringify(mailSettings || null).replace(/<\//g, '<\\/')}, 31 | !{JSON.stringify(errorMessage || null).replace(/<\//g, '<\\/')} 32 | ); 33 | }); -------------------------------------------------------------------------------- /web/www/views/search.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | h1.blue-text 5 | span.header-icon.search 6 | =controlPanelResource.Search 7 | p=controlPanelResource.SearchText 8 | div#searchView.display-none 9 | 10 | div.middle-button-container 11 | button.button.green= controlPanelResource.SaveButton 12 | 13 | div#searchTableView.display-none 14 | h2.blue-text.top-indent-big=controlPanelResource.ReindexHeader 15 | p!= controlPanelResource.format("ReindexDescription", "
") 16 | 17 | div.middle-button-container 18 | button.button.green= controlPanelResource.ReindexAll 19 | 20 | table#searchTable.table-list.height32.display-none 21 | thead 22 | tr 23 | th.index 24 | span= controlPanelResource.IndexCol 25 | th.docsCount 26 | span= controlPanelResource.DocsCountCol 27 | th.storeSize 28 | span= controlPanelResource.StoreSizeCol 29 | th.reindex 30 | tbody 31 | 32 | append bodyscripts 33 | script#searchTmpl(type="text/x-jquery-tmpl"). 34 |
35 | 36 | ${title} 37 | 38 | 41 |
42 | script#searchDataTmpl(type="text/x-jquery-tmpl") 43 | tr(data-id="${index}") 44 | td.index 45 | span ${index} 46 | td.docsCount 47 | span ${docsCount} 48 | td.storeSize 49 | span ${storeSize} 50 | td.reindex 51 | |{{if started}} 52 | |{{if parseInt(docsCount*100/count)<50}} 53 | button.button.black.middle(style="width:100%;background:linear-gradient(270deg, #bcbcbc ${parseInt(100-parseInt(docsCount*100/count))}%, #4c4c4c ${parseInt(docsCount*100/count)}%)") ${parseInt(docsCount*100/count)}% 54 | |{{else}} 55 | button.button.black.middle(style="width:100%;background:linear-gradient(90deg, #4c4c4c ${parseInt(docsCount*100/count)}%, #bcbcbc ${parseInt(100-parseInt(docsCount*100/count))}%)") ${parseInt(docsCount*100/count)}% 56 | |{{/if}} 57 | |{{else}} 58 | button.button.black.middle ${Resource.Reindex} 59 | |{{/if}} 60 | 61 | script(type="text/javascript"). 62 | $(function() { 63 | window.SearchView.init(); 64 | }); -------------------------------------------------------------------------------- /web/www/views/whitelabel.pug: -------------------------------------------------------------------------------- 1 | extends Shared/homeLayout 2 | 3 | block rightSide 4 | h1.blue-text 5 | span.header-icon.whitelabel 6 | = controlPanelResource.WhiteLabel 7 | 8 | p= cpWhiteLabelResource.WhiteLabelWarningMessage 9 | 10 | include whitelabelPartial 11 | 12 | append bodyscripts 13 | script(type="text/javascript"). 14 | $(function() { 15 | window.WhiteLabelManager.init("#{cpWhiteLabelResource.SuccessfullySaveWhiteLabelSettingsMessage}", false) 16 | }); --------------------------------------------------------------------------------