From cdd470fab4681b3b710e2020ff95282306ae3daa Mon Sep 17 00:00:00 2001 From: Paolo Vecchi Date: Tue, 4 Sep 2018 14:57:12 +0200 Subject: [PATCH 01/10] Update INSTALL.ubuntu1704.md Just adding basic commands --- INSTALL/INSTALL.ubuntu1704.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/INSTALL/INSTALL.ubuntu1704.md b/INSTALL/INSTALL.ubuntu1704.md index 2127c90..048ae53 100644 --- a/INSTALL/INSTALL.ubuntu1704.md +++ b/INSTALL/INSTALL.ubuntu1704.md @@ -10,7 +10,8 @@ can use the provided script: $ ./scripts/update-all.sh $ sudo systemctl restart apache2 - +# Install the dependencies: (some might already be installed) +sudo apt-get install curl git openssl sudo zip PHP & MySQL ----------- @@ -18,6 +19,9 @@ PHP & MySQL Install PHP (version 7.0 recommended) with extensions : *xml*, *mbstring*, *mysql*, *zip*, *unzip*, *mcrypt*, *intl*, *gettext* and *imagick*. +# Install PHP and dependencies +sudo apt-get install libapache2-mod-php php php-cli php-zip php-json php-mysql php-mbstring php-imagick php-xml php-mcrypt php-intl + In __php.ini__, set: * *upload_max_filesize* to 200M; @@ -29,10 +33,16 @@ Install Apache and enable mods: *rewrite*, *ssl* (with a2enmod) Install MariaDB. +sudo service mysql stop && sudo apt-get install mariadb-client mariadb-server +# Secure the MariaDB installation (especially by setting a strong root password) if it hasn't been asked during the setup process. +sudo mysql_secure_installation Installation of MONARC ---------------------- +# Go to your www directory eg: /var/www/html + + Clone the repository and invoke `composer` using the shipped `composer.phar`: git clone https://github.com/monarc-project/MonarcAppFO.git ./monarc From 4b66e25ed3fda86c5d867a956d373c231663eac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 5 Sep 2018 14:30:35 +0200 Subject: [PATCH 02/10] Secure the MariaDB installation --- vagrant/bootstrap.sh | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh index ee0d695..7653b9d 100644 --- a/vagrant/bootstrap.sh +++ b/vagrant/bootstrap.sh @@ -41,14 +41,39 @@ echo -e "\n--- Updating packages list… ---\n" apt-get update echo -e "\n--- Install base packages… ---\n" -apt-get -y install vim zip unzip git gettext > /dev/null +apt-get -y install vim zip unzip git gettext curl > /dev/null echo -e "\n--- Install MariaDB specific packages and settings… ---\n" -echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections -echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections +# echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections +# echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections apt-get -y install mariadb-server mariadb-client > /dev/null +# Secure the MariaDB installation (especially by setting a strong root password) systemctl restart mariadb.service > /dev/null sleep 5 +apt-get -y install expect > /dev/null +## do we need to spawn mysql_secure_install with sudo in future? +expect -f - <<-EOF + set timeout 10 + spawn mysql_secure_installation + expect "Enter current password for root (enter for none):" + send -- "\r" + expect "Set root password?" + send -- "y\r" + expect "New password:" + send -- "${DBPASSWORD_ADMIN}\r" + expect "Re-enter new password:" + send -- "${DBPASSWORD_ADMIN}\r" + expect "Remove anonymous users?" + send -- "y\r" + expect "Disallow root login remotely?" + send -- "y\r" + expect "Remove test database and access to it?" + send -- "y\r" + expect "Reload privilege tables now?" + send -- "y\r" + expect eof +EOF +sudo apt-get purge -y expect > /dev/null 2>&1 echo -e "\n--- Installing PHP-specific packages… ---\n" apt-get -y install php apache2 libapache2-mod-php php-curl php-gd php-mcrypt php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip > /dev/null From 5a1f8bea15decfee435b609e72fd01f20d1fc543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 5 Sep 2018 22:42:07 +0200 Subject: [PATCH 03/10] Updated install instructions. --- INSTALL/INSTALL.ubuntu1704.md | 257 ++++++++++++++-------------------- 1 file changed, 106 insertions(+), 151 deletions(-) diff --git a/INSTALL/INSTALL.ubuntu1704.md b/INSTALL/INSTALL.ubuntu1704.md index 048ae53..467597f 100644 --- a/INSTALL/INSTALL.ubuntu1704.md +++ b/INSTALL/INSTALL.ubuntu1704.md @@ -1,75 +1,138 @@ +============================ Installation on Ubuntu 17.04 ============================ The master branch should always be working and it is recommended to install the project using this one. -If you have already installed MONARC and want to upgrade to a later version, you -can use the provided script: - $ ./scripts/update-all.sh - $ sudo systemctl restart apache2 -# Install the dependencies: (some might already be installed) -sudo apt-get install curl git openssl sudo zip +# 1. Install LAMP & dependencies -PHP & MySQL ------------ +## Install the dependencies -Install PHP (version 7.0 recommended) with extensions : *xml*, *mbstring*, -*mysql*, *zip*, *unzip*, *mcrypt*, *intl*, *gettext* and *imagick*. + sudo apt-get install vim zip unzip git gettext curl net-tools gsfonts curl -# Install PHP and dependencies -sudo apt-get install libapache2-mod-php php php-cli php-zip php-json php-mysql php-mbstring php-imagick php-xml php-mcrypt php-intl +Some might already be installed. -In __php.ini__, set: +## Install MariaDB (a MySQL fork/alternative) -* *upload_max_filesize* to 200M; -* *post_max_size* to 50M; -* *memory_limit* to 512M (snapshots of important risk analysis requires more - memory). + sudo apt-get install mariadb-client mariadb-server -Install Apache and enable mods: *rewrite*, *ssl* (with a2enmod) +# Secure the MariaDB installation -Install MariaDB. + sudo mysql_secure_installation -sudo service mysql stop && sudo apt-get install mariadb-client mariadb-server -# Secure the MariaDB installation (especially by setting a strong root password) if it hasn't been asked during the setup process. -sudo mysql_secure_installation +Especially by setting a strong root password. -Installation of MONARC ----------------------- +## Install Apache2 -# Go to your www directory eg: /var/www/html + sudo apt-get install apache2 apache2-doc apache2-utils +## Enable modules, settings, and default of SSL in Apache + + sudo a2dismod status + sudo a2enmod ssl + sudo a2enmod rewrite + sudo a2enmod headers + +## Apache Virtual Host + + + ServerName monarc.localhost + DocumentRoot /var/lib/monarc/fo/public + SetEnv APPLICATION_ENV "development" + + DirectoryIndex index.php + AllowOverride All + Require all granted + + + + +## Install PHP and dependencies + + sudo apt-get install php apache2 libapache2-mod-php php-curl php-gd php-mcrypt php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip + +## Apply all changes + + sudo systemctl restart apache2 + + + +# 2. Installation of MONARC + +## MONARC code Clone the repository and invoke `composer` using the shipped `composer.phar`: - git clone https://github.com/monarc-project/MonarcAppFO.git ./monarc + cd /var/lib/monarc/fo + git clone https://github.com/monarc-project/MonarcAppFO.git cd monarc/ chown -R www-data data chmod -R g+w data php composer.phar self-update php composer.phar install -o -(The `self-update` directive is to ensure you have an up-to-date `composer.phar` -available.) +The `self-update` directive is to ensure you have an up-to-date `composer.phar` +available. ![Arbo](pictures/arbo1.png "Arbo") -Databases ---------- -Create 2 databases: +### Backend + +The backend is not directly modules of the project but libraries. +You must create modules with symbolic links to libraries. + +Create two symbolic links: + + mkdir module + cd module/ + ln -s ./../vendor/monarc/core MonarcCore + ln -s ./../vendor/monarc/frontoffice MonarcFO + +There are 2 parts: + +* MonarcFO is only for front office; +* MonarcCore is common to the front office and to the back office. + + +![Arbo](pictures/arbo2.png "Arbo") + + +### Frontend + +The frontend is an AngularJS application. + + mkdir node_modules + cd node_modules + git clone https://github.com/monarc-project/ng-client.git ng_client + git clone https://github.com/monarc-project/ng-anr.git ng_anr + +There are 2 parts: + +* one only for front office: ng_client; +* one common for front office and back office: ng_anr. + + +![Arbo](pictures/arbo3.png "Arbo") + + +## Databases + +### Create 2 databases CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; -Change SQL Mode in my.cnf: +### Change SQL Mode in my.cnf [mysqld] sql-mode = MYSQL40 +### Initializes the databases + There are 2 databases: * monarc_common contains models and data created by CASES; @@ -82,88 +145,14 @@ Populate the monarc_common database: mysql -u user monarc_common < db-bootstrap/monarc_data.sql -API ---- - -The project is composed of 2 parts: - -* an API in charge of retrieving data; -* an interface which displays data. - -The API is not directly modules of the project but libraries. -You must create modules with symbolic links to libraries. -Create 2 symbolic links in the root of project directory: - - mkdir module - cd module/ - ln -s ./../vendor/monarc/core MonarcCore - ln -s ./../vendor/monarc/frontoffice MonarcFO - -There are 2 parts: - -* one only for front office; -* one common for front office and back office (private project). - -It is developed with Zend framework 2. - -![Arbo](pictures/arbo2.png "Arbo") +### Database connection -Interfaces ----------- +Create configuration file: -Repository for Angular at the root of the project: + sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php - mkdir node_modules - cd node_modules - git clone https://github.com/monarc-project/ng-client.git ng_client - git clone https://github.com/monarc-project/ng-anr.git ng_anr - -There are 2 parts: -* one only for front office: ng_client; -* one common for front office and back office: ng_anr. - -It is developed with Angular framework version 1. - -![Arbo](pictures/arbo3.png "Arbo") - - -Web Server Setup ----------------- - -### PHP CLI Server - -The simplest way to get started if you are using PHP 5.4 or above is to start -the internal PHP cli-server in the root directory: - - php -S 0.0.0.0:8080 -t public/ public/index.php - -This will start the cli-server on port 8080, and bind it to all network -interfaces. - -Note: The built-in CLI server is **for development only**. - -### Apache Setup - -To setup Apache, setup a virtual host to point to the public/ directory of the -project and you should be ready to go! It should look something like below: - - - ServerName monarc.localhost - DocumentRoot /path/to/monarc/public - SetEnv APPLICATION_ENV "development" - - DirectoryIndex index.php - AllowOverride All - Require all granted - - - - -Database connection -------------------- - -Create file `config/autoload/local.php`: +And configure the database connection: return array( 'doctrine' => array( @@ -189,21 +178,10 @@ Create file `config/autoload/local.php`: ); -Configuration -------------- -Create configuration file +# Update MONARC - sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php - -Update connection information to *local.php* and *global.php*. - -Configuration files are stored in cache. -If your changes have not been considered, empty cache by deleting file in -/data/cache - -Install Grunt -------------- +## Install Grunt sudo apt-get install nodejs sudo apt-get install npm @@ -212,38 +190,15 @@ Install Grunt Update MONARC -------------- -Play script (mandatory from the root of the project): + ./scripts/update-all.sh - /bin/bash ./scripts/update-all.sh - -This script will retrieve the updates from the last stable release of MONARC. - -It uses others shell scripts. You may need to change the access rights of those -scripts. - -Before updating MONARC it is advised to configure database backup. For that you -just need to create a file _data/backup/credentialsmysql.cnf_: - - [client] - host = localhost - user = sql-monarc-user - password = your-password - socket = /var/run/mysqld/mysqld.sock - [mysql_upgrade] - host = localhost - user = sql-monarc-user - password = your-password - socket = /var/run/mysqld/mysqld.sock - basedir = /usr - -If this file is not present, a warning message will be displayed during the -upgrade. +This script will retrieve the updates from the last stable release of MONARC, +execute the database migration scripts and compile the translations. -Create Initial User and Client ------------------------------- +# Create initial user + Create first user: From af328f18be169984815a73424d0944742af1cfa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 5 Sep 2018 22:43:56 +0200 Subject: [PATCH 04/10] typo --- INSTALL/INSTALL.ubuntu1704.md | 1 - 1 file changed, 1 deletion(-) diff --git a/INSTALL/INSTALL.ubuntu1704.md b/INSTALL/INSTALL.ubuntu1704.md index 467597f..3f4e702 100644 --- a/INSTALL/INSTALL.ubuntu1704.md +++ b/INSTALL/INSTALL.ubuntu1704.md @@ -1,4 +1,3 @@ -============================ Installation on Ubuntu 17.04 ============================ From 0f4fcc20dd7c2e49946ea248a4b483a56f7a8c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 5 Sep 2018 22:46:16 +0200 Subject: [PATCH 05/10] Uses LTS for the instructions. --- INSTALL/{INSTALL.ubuntu1704.md => INSTALL.ubuntu1604.md} | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) rename INSTALL/{INSTALL.ubuntu1704.md => INSTALL.ubuntu1604.md} (98%) diff --git a/INSTALL/INSTALL.ubuntu1704.md b/INSTALL/INSTALL.ubuntu1604.md similarity index 98% rename from INSTALL/INSTALL.ubuntu1704.md rename to INSTALL/INSTALL.ubuntu1604.md index 3f4e702..ea1efac 100644 --- a/INSTALL/INSTALL.ubuntu1704.md +++ b/INSTALL/INSTALL.ubuntu1604.md @@ -1,4 +1,4 @@ -Installation on Ubuntu 17.04 +Installation on Ubuntu 16.04 ============================ The master branch should always be working and it is recommended to install the @@ -188,7 +188,7 @@ And configure the database connection: sudo ln -s /usr/bin/nodejs /usr/bin/node -Update MONARC +Update MONARC: ./scripts/update-all.sh @@ -198,9 +198,6 @@ execute the database migration scripts and compile the translations. # Create initial user - -Create first user: - php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php From 2f49fc354b91c087665628e9e6b0b7324d412da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Thu, 6 Sep 2018 07:58:36 +0200 Subject: [PATCH 06/10] Various minor improvements in the installation instructions. --- INSTALL/INSTALL.ubuntu1604.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/INSTALL/INSTALL.ubuntu1604.md b/INSTALL/INSTALL.ubuntu1604.md index ea1efac..3c6c4ef 100644 --- a/INSTALL/INSTALL.ubuntu1604.md +++ b/INSTALL/INSTALL.ubuntu1604.md @@ -14,7 +14,7 @@ project using this one. Some might already be installed. -## Install MariaDB (a MySQL fork/alternative) +## Install MariaDB sudo apt-get install mariadb-client mariadb-server @@ -120,34 +120,28 @@ There are 2 parts: ## Databases -### Create 2 databases - - CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; - CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; - ### Change SQL Mode in my.cnf [mysqld] sql-mode = MYSQL40 -### Initializes the databases +### Create 2 databases -There are 2 databases: + CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; + CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; * monarc_common contains models and data created by CASES; * monarc_cli contains all client risk analyses. Each analysis is based on CASES model of monarc_common. -Populate the monarc_common database: +### Initializes the database mysql -u user monarc_common < db-bootstrap/monarc_structure.sql mysql -u user monarc_common < db-bootstrap/monarc_data.sql - ### Database connection - -Create configuration file: +Create the configuration file: sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php From 40622f45ba5ea3414314e3e68c56a49aa4cba298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Thu, 6 Sep 2018 08:04:40 +0200 Subject: [PATCH 07/10] Various minor improvements in the installation instructions. --- INSTALL/INSTALL.ubuntu1604.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/INSTALL/INSTALL.ubuntu1604.md b/INSTALL/INSTALL.ubuntu1604.md index 3c6c4ef..6943954 100644 --- a/INSTALL/INSTALL.ubuntu1604.md +++ b/INSTALL/INSTALL.ubuntu1604.md @@ -1,11 +1,6 @@ Installation on Ubuntu 16.04 ============================ -The master branch should always be working and it is recommended to install the -project using this one. - - - # 1. Install LAMP & dependencies ## Install the dependencies @@ -37,15 +32,17 @@ Especially by setting a strong root password. ## Apache Virtual Host - + ServerName monarc.localhost DocumentRoot /var/lib/monarc/fo/public - SetEnv APPLICATION_ENV "development" - + + DirectoryIndex index.php AllowOverride All Require all granted + + SetEnv APPLICATION_ENV "development" @@ -55,7 +52,7 @@ Especially by setting a strong root password. ## Apply all changes - sudo systemctl restart apache2 + sudo systemctl restart apache2.service From 65dadd0ea975fd9fe651ddb399747887da1b6b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Thu, 6 Sep 2018 08:08:04 +0200 Subject: [PATCH 08/10] Various minor improvements in the installation instructions. --- INSTALL/INSTALL.ubuntu1604.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/INSTALL/INSTALL.ubuntu1604.md b/INSTALL/INSTALL.ubuntu1604.md index 6943954..1cb40e5 100644 --- a/INSTALL/INSTALL.ubuntu1604.md +++ b/INSTALL/INSTALL.ubuntu1604.md @@ -62,9 +62,9 @@ Especially by setting a strong root password. Clone the repository and invoke `composer` using the shipped `composer.phar`: - cd /var/lib/monarc/fo - git clone https://github.com/monarc-project/MonarcAppFO.git - cd monarc/ + cd /var/lib/monarc/ + git clone https://github.com/monarc-project/MonarcAppFO.git fo + cd fo/ chown -R www-data data chmod -R g+w data php composer.phar self-update From 36f770a2720267f6e85aca9d3203e4b01146bf7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Thu, 6 Sep 2018 08:09:41 +0200 Subject: [PATCH 09/10] Removed pictures. --- INSTALL/INSTALL.ubuntu1604.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/INSTALL/INSTALL.ubuntu1604.md b/INSTALL/INSTALL.ubuntu1604.md index 1cb40e5..5c7a3c4 100644 --- a/INSTALL/INSTALL.ubuntu1604.md +++ b/INSTALL/INSTALL.ubuntu1604.md @@ -73,8 +73,6 @@ Clone the repository and invoke `composer` using the shipped `composer.phar`: The `self-update` directive is to ensure you have an up-to-date `composer.phar` available. -![Arbo](pictures/arbo1.png "Arbo") - ### Backend @@ -94,9 +92,6 @@ There are 2 parts: * MonarcCore is common to the front office and to the back office. -![Arbo](pictures/arbo2.png "Arbo") - - ### Frontend The frontend is an AngularJS application. @@ -112,9 +107,6 @@ There are 2 parts: * one common for front office and back office: ng_anr. -![Arbo](pictures/arbo3.png "Arbo") - - ## Databases ### Change SQL Mode in my.cnf From ce7f260c08b2f1561403dbb762af7ce6c8b9602d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Fri, 7 Sep 2018 13:56:36 +0200 Subject: [PATCH 10/10] Bump version number. --- CHANGELOG.md | 15 +++++++++++++++ VERSION.json | 2 +- package.json | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b12dfae..eae9f48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ MONARC Changelog ================ +## 2.7.1 (2018-09-07) + +### Enhancement + +- inform user which rights he has on each risk analysis (#131); +- display read/write access of the currently connected user on the home page (list of analysis) (#130); +- improvements to the statement of applicability (SOA) module (speed improvements); +- minor improvements to the home page. + +### Fix + +- impossible to download a report when user has no wright access (#133); +- name of columns of the evaluation scales are not displayed when a user has not write access (#132). + + ## 2.7.0 (2018-08-22) ### New diff --git a/VERSION.json b/VERSION.json index d336f74..664a28f 100644 --- a/VERSION.json +++ b/VERSION.json @@ -1 +1 @@ -{"major":2, "minor":7, "hotfix":0} +{"major":2, "minor":7, "hotfix":1} diff --git a/package.json b/package.json index a8e008c..734e981 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "MONARC", - "version": "2.7.0", + "version": "2.7.1", "description": "MONARC Frontoffice App", "private": true, "repository": {