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/INSTALL/INSTALL.ubuntu1604.md b/INSTALL/INSTALL.ubuntu1604.md new file mode 100644 index 0000000..5c7a3c4 --- /dev/null +++ b/INSTALL/INSTALL.ubuntu1604.md @@ -0,0 +1,187 @@ +Installation on Ubuntu 16.04 +============================ + +# 1. Install LAMP & dependencies + +## Install the dependencies + + sudo apt-get install vim zip unzip git gettext curl net-tools gsfonts curl + +Some might already be installed. + +## Install MariaDB + + sudo apt-get install mariadb-client mariadb-server + +# Secure the MariaDB installation + + sudo mysql_secure_installation + +Especially by setting a strong root password. + +## Install Apache2 + + 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 + + + DirectoryIndex index.php + AllowOverride All + Require all granted + + + SetEnv APPLICATION_ENV "development" + + + +## 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.service + + + +# 2. Installation of MONARC + +## MONARC code + +Clone the repository and invoke `composer` using the shipped `composer.phar`: + + 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 + php composer.phar install -o + +The `self-update` directive is to ensure you have an up-to-date `composer.phar` +available. + + +### 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. + + +### 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. + + +## Databases + +### Change SQL Mode in my.cnf + + [mysqld] + sql-mode = MYSQL40 + +### 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; + +* 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. + +### 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 the configuration file: + + sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php + +And configure the database connection: + + return array( + 'doctrine' => array( + 'connection' => array( + 'orm_default' => array( + 'params' => array( + 'host' => 'host', + 'user' => 'user', + 'password' => 'password', + 'dbname' => 'monarc_common', + ), + ), + 'orm_cli' => array( + 'params' => array( + 'host' => 'host', + 'user' => 'user', + 'password' => 'password', + 'dbname' => 'monarc_cli', + ), + ), + ), + ), + ); + + + +# Update MONARC + +## Install Grunt + + sudo apt-get install nodejs + sudo apt-get install npm + sudo npm install -g grunt-cli + sudo ln -s /usr/bin/nodejs /usr/bin/node + + +Update MONARC: + + ./scripts/update-all.sh + +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 + + php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php + + +The username is *admin@admin.test* and the password is *admin*. diff --git a/INSTALL/INSTALL.ubuntu1704.md b/INSTALL/INSTALL.ubuntu1704.md deleted file mode 100644 index 2127c90..0000000 --- a/INSTALL/INSTALL.ubuntu1704.md +++ /dev/null @@ -1,243 +0,0 @@ -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 - - - -PHP & MySQL ------------ - -Install PHP (version 7.0 recommended) with extensions : *xml*, *mbstring*, -*mysql*, *zip*, *unzip*, *mcrypt*, *intl*, *gettext* and *imagick*. - -In __php.ini__, set: - -* *upload_max_filesize* to 200M; -* *post_max_size* to 50M; -* *memory_limit* to 512M (snapshots of important risk analysis requires more - memory). - -Install Apache and enable mods: *rewrite*, *ssl* (with a2enmod) - -Install MariaDB. - - -Installation of MONARC ----------------------- - -Clone the repository and invoke `composer` using the shipped `composer.phar`: - - git clone https://github.com/monarc-project/MonarcAppFO.git ./monarc - 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.) - -![Arbo](pictures/arbo1.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: - - [mysqld] - sql-mode = MYSQL40 - -There are 2 databases: - -* 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: - - mysql -u user monarc_common < db-bootstrap/monarc_structure.sql - 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") - - -Interfaces ----------- - -Repository for Angular at the root of the project: - - 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`: - - return array( - 'doctrine' => array( - 'connection' => array( - 'orm_default' => array( - 'params' => array( - 'host' => 'host', - 'user' => 'user', - 'password' => 'password', - 'dbname' => 'monarc_common', - ), - ), - 'orm_cli' => array( - 'params' => array( - 'host' => 'host', - 'user' => 'user', - 'password' => 'password', - 'dbname' => 'monarc_cli', - ), - ), - ), - ), - ); - - -Configuration -------------- - -Create configuration file - - 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 -------------- - - sudo apt-get install nodejs - sudo apt-get install npm - sudo npm install -g grunt-cli - sudo ln -s /usr/bin/nodejs /usr/bin/node - - -Update MONARC -------------- - -Play script (mandatory from the root of the project): - - /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. - - -Create Initial User and Client ------------------------------- - -Create first user: - - php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php - - -The username is *admin@admin.test* and the password is *admin*. 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": { diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh index dff1823..3e074f6 100644 --- a/vagrant/bootstrap.sh +++ b/vagrant/bootstrap.sh @@ -44,11 +44,36 @@ echo -e "\n--- Install base packages… ---\n" 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-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip > /dev/null