#!/bin/bash set -eu source /usr/share/yunohost/helpers source _future.sh source _common.sh ynh_trap_on # Arguments from manifest export app=$YNH_APP_INSTANCE_NAME export domain=$YNH_APP_ARG_DOMAIN export odoo_version=$YNH_APP_ARG_VERSION export oca=$YNH_APP_ARG_OCA export admin_password=$YNH_APP_ARG_ADMIN_PASSWORD export lang=$YNH_APP_ARG_LANG export tz=$YNH_APP_ARG_TZ export is_public=0 #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THIS ARGS #================================================= ynh_check_var "$app" "app name not set" ynh_webpath_available "$domain" "/" check_odoo_version define_paths define_is_master define_port define_dbpass #================================================= # SETUP THE APP BY MODIFYING THE SYSTEM #================================================= function setup_files() { # Set admin password export database=${domain//./-} ynh_configure openerp-server.conf $conf_file chown odoo:odoo $conf_file # Autoinstall the LDAP auth module if [ $(echo "$odoo_version >= 10" | bc) -ne 0 ]; then ynh_replace_string "^{$" "{'auto_install': True," ${source_path}addons/auth_ldap/__manifest__.py else ynh_replace_string "'auto_install': False" "'auto_install': True" ${source_path}addons/auth_ldap/__openerp__.py fi # Fix peer authentification issue sed -i '/local\s*all\s*all\s*peer/i \ local all odoo password' /etc/postgresql/9.*/main/pg_hba.conf ynh_configure_nginx } function setup_database() { # Setup database: not working database=${domain//./-} if [ $(echo "$odoo_version <= 8" | bc) -ne 0 ]; then su -c "createdb -O $APPNAME $database" - postgres fi # Load translation sudo -u odoo $bin_file -c $conf_file --stop-after-init -i auth_ldap -d $database sudo -u odoo $bin_file -c $conf_file --stop-after-init -d $database --load-language $lang # Configure language, timezone and ldap sudo -u odoo $bin_file shell -c $conf_file -d $database <<< \ " self.env['res.users'].search([['login', '=', 'admin']])[0].write({'password': '$admin_password'}) self.env.cr.commit() self.write({'tz':'$tz','lang':'$lang'}) self.env.cr.commit() template=env['res.users'].create({ 'login':'template', 'password':'', 'name':'template', 'email':'template', 'sel_groups_9_10':9, 'tz':'$tz', 'lang':'$lang' }) self.env.cr.commit() self.company_id.ldaps.create({ 'ldap_server':'localhost', 'ldap_server_port':389, 'ldap_base':'ou=users, dc=yunohost,dc=org', 'ldap_filter':'uid=%s', 'user':template.id, 'company':self.company_id.id }) self.env.cr.commit() " } ynh_webpath_register "$app" "$domain" "/" ynh_save_args domain odoo_version oca lang tz is_master port install_dependencies setup_files create_general_db add_services setup_database ssowat_and_restart