diff --git a/createlinks b/createlinks index b4dbe4cbe..6df87a112 100755 --- a/createlinks +++ b/createlinks @@ -19,6 +19,7 @@ event_templates('nethcti-server3-update', qw( /etc/nethcti/chat.json /etc/nethcti/phone_urls.json /etc/httpd/conf.d/nethcti-server.conf + /etc/sysconfig/subscription )); event_actions('nethcti-server3-update', qw( @@ -99,3 +100,15 @@ $event = "post-restore-data"; event_actions($event, 'nethcti-server-fix-rsync-perms' => '10', ); + +# +# nethserver-subscription-save +# +$event = "nethserver-subscription-save"; +event_templates($event, qw( + /etc/sysconfig/subscription +)); + +event_services($event, qw( + nethcti-server restart +)); diff --git a/root/etc/e-smith/templates/etc/sysconfig/subscription/10subscription b/root/etc/e-smith/templates/etc/sysconfig/subscription/10subscription new file mode 100644 index 000000000..b3e6446d3 --- /dev/null +++ b/root/etc/e-smith/templates/etc/sysconfig/subscription/10subscription @@ -0,0 +1,10 @@ +{ + # + # 10subscription + # + my $systemId = $subscription{'SystemId'} || ''; + my $secret = $subscription{'Secret'} || ''; + $enabled = ($systemId eq '' || $secret eq '') ? 0 : 1; + + $OUT = "SUBSCRIPTION_SYSTEMID=$systemId\nSUBSCRIPTION_SECRET=$secret\n"; +} diff --git a/root/usr/lib/node/nethcti-server/plugins/com_user_rest/plugins_rest/user.js b/root/usr/lib/node/nethcti-server/plugins/com_user_rest/plugins_rest/user.js index c47b0efb6..424445152 100644 --- a/root/usr/lib/node/nethcti-server/plugins/com_user_rest/plugins_rest/user.js +++ b/root/usr/lib/node/nethcti-server/plugins/com_user_rest/plugins_rest/user.js @@ -1,3 +1,5 @@ +var crypto = require('crypto'); + /** * Provides user functions through REST API. * @@ -705,6 +707,17 @@ function setCompUtil(comp) { logger.log.info(IDLOG, 'send user info to user "' + username + '"'); res.send(200, result); }); + + // get LK and secret hash + var subscription_systemid = process.env.SUBSCRIPTION_SYSTEMID; + var subscription_secret = process.env.SUBSCRIPTION_SECRET; + if (subscription_systemid && subscription_secret) { + var hash = crypto.createHash('sha256'); + hash.update(subscription_systemid + ":" + subscription_secret); + result.lkhash = hash.digest('hex'); + } else { + logger.log.info(IDLOG, "LK not enabled"); + } } else { var strerr = 'sending user info to user "' + username + '": wrong format'; logger.log.error(IDLOG, strerr); diff --git a/root/usr/lib/systemd/system/nethcti-server.service b/root/usr/lib/systemd/system/nethcti-server.service index 21844963a..d8298652d 100644 --- a/root/usr/lib/systemd/system/nethcti-server.service +++ b/root/usr/lib/systemd/system/nethcti-server.service @@ -5,6 +5,7 @@ After=asterisk.service [Service] Type=simple +EnvironmentFile=/etc/sysconfig/subscription WorkingDirectory=/usr/lib/node/nethcti-server User=asterisk Restart=always