Browse Source

Adding a new user

Bob Mottram 8 years ago
parent
commit
164302b0c9

+ 25
- 183
src/freedombone-adduser View File

@@ -36,13 +36,23 @@ export TEXTDOMAINDIR="/usr/share/locale"
36 36
 
37 37
 CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
38 38
 
39
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
40
+for f in $UTILS_FILES
41
+do
42
+  source $f
43
+done
44
+
45
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
46
+for f in $APP_FILES
47
+do
48
+  source $f
49
+done
50
+
39 51
 MY_USERNAME=$1
40 52
 SSH_PUBLIC_KEY="$2"
41 53
 GPG_KEYSERVER='hkp://keys.gnupg.net'
42 54
 SSH_PORT=2222
43 55
 COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
44
-SIP_EXTENSION=
45
-FULLBLOG_DOMAIN_NAME=
46 56
 DEFAULT_DOMAIN_NAME=
47 57
 
48 58
 if [ ! $MY_USERNAME ]; then
@@ -199,173 +209,21 @@ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
199 209
 chown $MY_USERNAME:$MY_USERNAME $MY_GPG_PUBLIC_KEY
200 210
 chmod 600 /home/$MY_USERNAME/README
201 211
 
202
-if grep -q "install_xmpp" $COMPLETION_FILE; then
203
-    echo $"Adding an xmpp account for $MY_USERNAME"
204
-    ${PROJECT_NAME}-addxmpp -e "$MY_USERNAME@$HOSTNAME" -p "$NEW_USER_PASSWORD"
205
-    if [ ! "$?" = "0" ]; then
206
-        echo $"xmpp account not created"
207
-        userdel -r $MY_USERNAME
208
-        exit 8
209
-    fi
210
-fi
211
-
212
-if grep -q "install_xmpp_client" $COMPLETION_FILE; then
213
-    echo $"Adding xmpp client setup"
214
-    XMPP_CLIENT_DIR=/home/$MY_USERNAME/.local/share/profanity
215
-    XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
216
-    if [ ! -d $XMPP_CLIENT_DIR ]; then
217
-        mkdir -p $XMPP_CLIENT_DIR
218
-    fi
219
-    if [ ! -d /home/$MY_USERNAME/.config/profanity ]; then
220
-        mkdir -p /home/$MY_USERNAME/.config/profanity
221
-    fi
222
-    echo "[${MY_USERNAME}@${HOSTNAME}]" > $XMPP_CLIENT_ACCOUNTS
223
-    echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
224
-    echo "jid=${MY_USERNAME}@${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
225
-    echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
226
-    echo "muc.service=conference.${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
227
-    echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
228
-    echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
229
-    echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
230
-    echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
231
-    echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
232
-    echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
233
-    echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
234
-    echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
235
-
236
-    echo '[connection]' > /home/$MY_USERNAME/.config/profanity/profrc
237
-    echo "account=${MY_USERNAME}@${HOSTNAME}" >> /home/$MY_USERNAME/.config/profanity/profrc
238
-
239
-    chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.local
240
-    chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
241
-fi
242
-
243
-if grep -q "Blog domain" $COMPLETION_FILE; then
244
-    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
245
-    if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users ]; then
246
-        echo $'Blog users directory not found'
247
-        if grep -q "install_xmpp" $COMPLETION_FILE; then
248
-            ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
212
+echo $'Detecting installed apps...'
213
+detect_apps
214
+get_apps_installed_names
215
+for app_name in "${APPS_INSTALLED_NAMES[@]}"
216
+do
217
+    if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
218
+        echo $"Adding user to ${app_name}"
219
+        retval=$(add_user_${app_name} "$MY_USERNAME" "$NEW_USER_PASSWORD")
220
+        if [[ $retval != '0' ]]; then
221
+            echo $"Failed with error code ${retval}"
222
+            ${PROJECT_NAME}-rmuser $MY_USERNAME
223
+            exit 672392
249 224
         fi
250
-        userdel -r $MY_USERNAME
251
-        exit 9
252
-    fi
253
-    NEW_USER_PASSWORD_HASH=$(${PROJECT_NAME}-sec --bloghash "$NEW_USER_PASSWORD")
254
-    if [ ${#NEW_USER_PASSWORD_HASH} -lt 8 ]; then
255
-        echo $'Blog admin password could not be hashed'
256
-        exit 783528
257 225
     fi
258
-    echo ';Password' > /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
259
-    echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
260
-    echo 'encryption = password_hash' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
261
-    echo ';Role' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
262
-    echo 'role = admin' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
263
-    echo "$MY_USERNAME added as a blog user"
264
-fi
265
-
266
-if grep -q "install_sip" $COMPLETION_FILE; then
267
-    SIP_EXTENSION=$(${PROJECT_NAME}-sipfreeext)
268
-    ${PROJECT_NAME}-addsipuser -u $MY_USERNAME -e $SIP_EXTENSION -p "$NEW_USER_PASSWORD"
269
-    if [ ! "$?" = "0" ]; then
270
-        echo $'SIP user could not be added. Ensure that extension numbers are in order and do no exceed 299'
271
-        if grep -q "install_xmpp" $COMPLETION_FILE; then
272
-            ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
273
-        fi
274
-        if grep -q "Blog domain" $COMPLETION_FILE; then
275
-            if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
276
-                rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
277
-            fi
278
-        fi
279
-        userdel -r $MY_USERNAME
280
-        exit 10
281
-    fi
282
-fi
283
-
284
-if grep -q "install_gnusocial" $COMPLETION_FILE; then
285
-    MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | awk -F ':' '{print $2}')
286
-    if [ -d /var/www/$MICROBLOG_DOMAIN_NAME ]; then
287
-        cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
288
-        php scripts/registeruser.php -n $MY_USERNAME -w "$NEW_USER_PASSWORD" -e "$MY_USERNAME@$HOSTNAME"
289
-        ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$MICROBLOG_DOMAIN_NAME" -g gnusocial --public no
290
-        echo $'Created gnusocial user'
291
-    else
292
-        echo $"Unable to find gnusocial installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs"
293
-        userdel -r $MY_USERNAME
294
-        exit 11
295
-    fi
296
-fi
297
-
298
-if grep -q "install_irc_client" $COMPLETION_FILE; then
299
-    IRC_PORT=6697
300
-    if grep -q "IRC_PORT" $CONFIGURATION_FILE; then
301
-        IRC_PORT=$(grep "IRC_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
302
-    fi
303
-    IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
304
-    if [ ${#IRC_PASSWORD} -lt 2 ]; then
305
-        IRC_PASSWORD=
306
-    fi
307
-
308
-    if [ ! -d /home/$MY_USERNAME/.irssi ]; then
309
-        mkdir /home/$MY_USERNAME/.irssi
310
-    fi
311
-
312
-    echo 'servers = (' > /home/$MY_USERNAME/.irssi/config
313
-    echo '  {' >> /home/$MY_USERNAME/.irssi/config
314
-    echo '    address = "chat.freenode.net";' >> /home/$MY_USERNAME/.irssi/config
315
-    echo '    chatnet = "Freenode";' >> /home/$MY_USERNAME/.irssi/config
316
-    echo '    port = "6667";' >> /home/$MY_USERNAME/.irssi/config
317
-    echo '    autoconnect = "no";' >> /home/$MY_USERNAME/.irssi/config
318
-    echo '  },' >> /home/$MY_USERNAME/.irssi/config
319
-    echo '  {' >> /home/$MY_USERNAME/.irssi/config
320
-    echo '    address = "irc.oftc.net";' >> /home/$MY_USERNAME/.irssi/config
321
-    echo '    chatnet = "OFTC";' >> /home/$MY_USERNAME/.irssi/config
322
-    echo '    port = "6667";' >> /home/$MY_USERNAME/.irssi/config
323
-    echo '    autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
324
-    echo '  },' >> /home/$MY_USERNAME/.irssi/config
325
-    echo '  {' >> /home/$MY_USERNAME/.irssi/config
326
-    echo "    address = \"${HOSTNAME}\";" >> /home/$MY_USERNAME/.irssi/config
327
-    echo '    chatnet = "Freedombone";' >> /home/$MY_USERNAME/.irssi/config
328
-    echo "    port = \"${IRC_PORT}\";" >> /home/$MY_USERNAME/.irssi/config
329
-    echo '    use_ssl = "yes";' >> /home/$MY_USERNAME/.irssi/config
330
-    echo '    ssl_verify = "no";' >> /home/$MY_USERNAME/.irssi/config
331
-    echo '    autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
332
-
333
-    echo '  }' >> /home/$MY_USERNAME/.irssi/config
334
-    echo ');' >> /home/$MY_USERNAME/.irssi/config
335
-    echo '' >> /home/$MY_USERNAME/.irssi/config
336
-    echo 'chatnets = {' >> /home/$MY_USERNAME/.irssi/config
337
-    echo '  Freedombone = {' >> /home/$MY_USERNAME/.irssi/config
338
-    echo '    type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
339
-    echo '    max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
340
-    echo '    max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
341
-    echo '    max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
342
-    echo '  };' >> /home/$MY_USERNAME/.irssi/config
343
-    echo '  Freenode = {' >> /home/$MY_USERNAME/.irssi/config
344
-    echo '    type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
345
-    echo '    max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
346
-    echo '    max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
347
-    echo '    max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
348
-    echo '  };' >> /home/$MY_USERNAME/.irssi/config
349
-    echo '  OFTC = {' >> /home/$MY_USERNAME/.irssi/config
350
-    echo '    type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
351
-    echo '    max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
352
-    echo '    max_msgs = "1";' >> /home/$MY_USERNAME/.irssi/config
353
-    echo '    max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
354
-    echo '  };' >> /home/$MY_USERNAME/.irssi/config
355
-    echo '};' >> /home/$MY_USERNAME/.irssi/config
356
-    echo '' >> /home/$MY_USERNAME/.irssi/config
357
-    echo 'channels = (' >> /home/$MY_USERNAME/.irssi/config
358
-    echo '  { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/$MY_USERNAME/.irssi/config
359
-    echo ');' >> /home/$MY_USERNAME/.irssi/config
360
-    echo '' >> /home/$MY_USERNAME/.irssi/config
361
-    echo 'settings = {' >> /home/$MY_USERNAME/.irssi/config
362
-    echo "  core = { real_name = \"$MY_NAME\"; user_name = \"$MY_USERNAME\"; nick = \"$MY_USERNAME\"; };" >> /home/$MY_USERNAME/.irssi/config
363
-    echo '  "fe-text" = { actlist_sort = "refnum"; };' >> /home/$MY_USERNAME/.irssi/config
364
-    echo '};' >> /home/$MY_USERNAME/.irssi/config
365
-    echo 'ignores = ( { level = "CTCPS"; } );' >> /home/$MY_USERNAME/.irssi/config
366
-
367
-    chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.irssi
368
-fi
226
+done
369 227
 
370 228
 if [ -f /etc/nginx/.htpasswd ]; then
371 229
     if ! grep "${MY_USERNAME}:" /etc/nginx/.htpasswd; then
@@ -373,19 +231,6 @@ if [ -f /etc/nginx/.htpasswd ]; then
373 231
     fi
374 232
 fi
375 233
 
376
-# add user to the sipwitch group
377
-if [ -f /etc/sipwitch.conf ]; then
378
-    usermod -aG sipwitch $MY_USERNAME
379
-fi
380
-
381
-# add user for SIP STUN/TURN
382
-if [ -d /etc/turnserver ]; then
383
-    if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
384
-        DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
385
-        echo "${MY_USERNAME}:${NEW_USER_PASSWORD}:${DEFAULT_DOMAIN_NAME}:authorized" >> /etc/turnserver/turnusers.txt
386
-    fi
387
-fi
388
-
389 234
 # add user menu on ssh login
390 235
 if ! grep -q 'control' /home/$MY_USERNAME/.bashrc; then
391 236
     echo 'control' >> /home/$MY_USERNAME/.bashrc
@@ -393,9 +238,6 @@ fi
393 238
 
394 239
 clear
395 240
 echo $"New user $MY_USERNAME was created"
396
-if [ $SIP_EXTENSION ]; then
397
-    echo $"Their SIP phone extension is $SIP_EXTENSION"
398
-fi
399 241
 echo $"Their login password is $NEW_USER_PASSWORD"
400 242
 echo ''
401 243
 echo $'IMPORTANT: Make a note of the password, because it will not be saved'

+ 27
- 0
src/freedombone-app-blog View File

@@ -38,6 +38,33 @@ FULLBLOG_COMMIT='bf5fe9486160be4da86d8987d3e5c977e1dc6d32'
38 38
 MY_BLOG_TITLE="My Blog"
39 39
 MY_BLOG_SUBTITLE="Another ${PROJECT_NAME} Blog"
40 40
 
41
+function add_user_blog {
42
+    if [[ $(app_is_installed blog) == "0" ]]; then
43
+        echo '1'
44
+        return
45
+    fi
46
+
47
+    new_username="$1"
48
+    new_user_password="$2"
49
+
50
+    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "blog domain" | head -n 1 | awk -F ':' '{print $2}')
51
+    if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users ]; then
52
+        echo '2'
53
+        return
54
+    fi
55
+    NEW_USER_PASSWORD_HASH=$(${PROJECT_NAME}-sec --bloghash "$new_user_password")
56
+    if [ ${#NEW_USER_PASSWORD_HASH} -lt 8 ]; then
57
+        echo '3'
58
+        return
59
+    fi
60
+    echo ';Password' > /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$new_username.ini
61
+    echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$new_username.ini
62
+    echo 'encryption = password_hash' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$new_username.ini
63
+    echo ';Role' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$new_username.ini
64
+    echo 'role = admin' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$new_username.ini
65
+    echo '0'
66
+}
67
+
41 68
 function configure_interactive_blog {
42 69
     data=$(tempfile 2>/dev/null)
43 70
     trap "rm -f $data" 0 1 2 5 15

+ 20
- 0
src/freedombone-app-gnusocial View File

@@ -56,6 +56,26 @@ GNUSOCIAL_NSFW_COMMIT='a096bbe0cfae9a9b177682920ffb58d32a48e136'
56 56
 # script which causes old posts to expire
57 57
 gnusocial_expire_script=/usr/bin/gnusocial-expire
58 58
 
59
+function add_user_gnusocial {
60
+    if [[ $(app_is_installed gnusocial) == "0" ]]; then
61
+        echo '1'
62
+        return
63
+    fi
64
+
65
+    new_username="$1"
66
+    new_user_password="$2"
67
+
68
+    MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
69
+    if [ -d /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs ]; then
70
+        cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
71
+        php scripts/registeruser.php -n $new_username -w "$new_user_password" -e "$new_username@$HOSTNAME"
72
+        ${PROJECT_NAME}-addemail -u $new_username -e "noreply@$MICROBLOG_DOMAIN_NAME" -g gnusocial --public no
73
+        echo '0'
74
+    else
75
+        echo '2'
76
+    fi
77
+}
78
+
59 79
 function install_interactive_gnusocial {
60 80
     if [ ! $ONION_ONLY ]; then
61 81
         ONION_ONLY='no'

+ 81
- 0
src/freedombone-app-irc View File

@@ -36,6 +36,87 @@ IRC_ONION_PORT=6697
36 36
 # An optional password to log into IRC. This applies to all users
37 37
 IRC_PASSWORD=
38 38
 
39
+function add_user_irc {
40
+    if [[ $(app_is_installed irc) == "0" ]]; then
41
+        echo '1'
42
+        return
43
+    fi
44
+
45
+    new_username="$1"
46
+    new_user_password="$2"
47
+
48
+    if grep -q "IRC_PORT" $CONFIGURATION_FILE; then
49
+        IRC_PORT=$(grep "IRC_PORT" $CONFIGURATION_FILE | head -n 1 | awk -F '=' '{print $2}')
50
+    fi
51
+    IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
52
+    if [ ${#IRC_PASSWORD} -lt 2 ]; then
53
+        IRC_PASSWORD=
54
+    fi
55
+
56
+    if [ ! -d /home/$new_username/.irssi ]; then
57
+        mkdir /home/$new_username/.irssi
58
+    fi
59
+
60
+    echo 'servers = (' > /home/$new_username/.irssi/config
61
+    echo '  {' >> /home/$new_username/.irssi/config
62
+    echo '    address = "chat.freenode.net";' >> /home/$new_username/.irssi/config
63
+    echo '    chatnet = "Freenode";' >> /home/$new_username/.irssi/config
64
+    echo '    port = "6667";' >> /home/$new_username/.irssi/config
65
+    echo '    autoconnect = "no";' >> /home/$new_username/.irssi/config
66
+    echo '  },' >> /home/$new_username/.irssi/config
67
+    echo '  {' >> /home/$new_username/.irssi/config
68
+    echo '    address = "irc.oftc.net";' >> /home/$new_username/.irssi/config
69
+    echo '    chatnet = "OFTC";' >> /home/$new_username/.irssi/config
70
+    echo '    port = "6667";' >> /home/$new_username/.irssi/config
71
+    echo '    autoconnect = "yes";' >> /home/$new_username/.irssi/config
72
+    echo '  },' >> /home/$new_username/.irssi/config
73
+    echo '  {' >> /home/$new_username/.irssi/config
74
+    echo "    address = \"${HOSTNAME}\";" >> /home/$new_username/.irssi/config
75
+    echo '    chatnet = "Freedombone";' >> /home/$new_username/.irssi/config
76
+    echo "    port = \"${IRC_PORT}\";" >> /home/$new_username/.irssi/config
77
+    echo '    use_ssl = "yes";' >> /home/$new_username/.irssi/config
78
+    echo '    ssl_verify = "no";' >> /home/$new_username/.irssi/config
79
+    echo '    autoconnect = "yes";' >> /home/$new_username/.irssi/config
80
+
81
+    echo '  }' >> /home/$new_username/.irssi/config
82
+    echo ');' >> /home/$new_username/.irssi/config
83
+    echo '' >> /home/$new_username/.irssi/config
84
+    echo 'chatnets = {' >> /home/$new_username/.irssi/config
85
+    echo '  Freedombone = {' >> /home/$new_username/.irssi/config
86
+    echo '    type = "IRC";' >> /home/$new_username/.irssi/config
87
+    echo '    max_kicks = "1";' >> /home/$new_username/.irssi/config
88
+    echo '    max_msgs = "4";' >> /home/$new_username/.irssi/config
89
+    echo '    max_whois = "1";' >> /home/$new_username/.irssi/config
90
+    echo '  };' >> /home/$new_username/.irssi/config
91
+    echo '  Freenode = {' >> /home/$new_username/.irssi/config
92
+    echo '    type = "IRC";' >> /home/$new_username/.irssi/config
93
+    echo '    max_kicks = "1";' >> /home/$new_username/.irssi/config
94
+    echo '    max_msgs = "4";' >> /home/$new_username/.irssi/config
95
+    echo '    max_whois = "1";' >> /home/$new_username/.irssi/config
96
+    echo '  };' >> /home/$new_username/.irssi/config
97
+    echo '  OFTC = {' >> /home/$new_username/.irssi/config
98
+    echo '    type = "IRC";' >> /home/$new_username/.irssi/config
99
+    echo '    max_kicks = "1";' >> /home/$new_username/.irssi/config
100
+    echo '    max_msgs = "1";' >> /home/$new_username/.irssi/config
101
+    echo '    max_whois = "1";' >> /home/$new_username/.irssi/config
102
+    echo '  };' >> /home/$new_username/.irssi/config
103
+    echo '};' >> /home/$new_username/.irssi/config
104
+    echo '' >> /home/$new_username/.irssi/config
105
+    echo 'channels = (' >> /home/$new_username/.irssi/config
106
+    echo '  { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/$new_username/.irssi/config
107
+    echo ');' >> /home/$new_username/.irssi/config
108
+    echo '' >> /home/$new_username/.irssi/config
109
+    echo 'settings = {' >> /home/$new_username/.irssi/config
110
+    echo "  core = { real_name = \"$MY_NAME\"; user_name = \"$new_username\"; nick = \"$new_username\"; };" >> /home/$new_username/.irssi/config
111
+    echo '  "fe-text" = { actlist_sort = "refnum"; };' >> /home/$new_username/.irssi/config
112
+    echo '};' >> /home/$new_username/.irssi/config
113
+    echo 'ignores = ( { level = "CTCPS"; } );' >> /home/$new_username/.irssi/config
114
+
115
+    chown -R $new_username:$new_username /home/$new_username/.irssi
116
+
117
+    echo '0'
118
+}
119
+
39 120
 function run_client_irc {
40 121
     irssi
41 122
 }

+ 32
- 0
src/freedombone-app-sip View File

@@ -37,6 +37,38 @@ TURN_PORT=3478
37 37
 TURN_TLS_PORT=5349
38 38
 TURN_NONCE=
39 39
 
40
+function add_user_sip {
41
+    if [[ $(app_is_installed sip) == "0" ]]; then
42
+        echo '1'
43
+        return
44
+    fi
45
+
46
+    new_username="$1"
47
+    new_user_password="$2"
48
+
49
+    SIP_EXTENSION=$(${PROJECT_NAME}-sipfreeext)
50
+    ${PROJECT_NAME}-addsipuser -u $new_username -e $SIP_EXTENSION -p "$new_user_password"
51
+    if [ ! "$?" = "0" ]; then
52
+        echo '2'
53
+        return
54
+    fi
55
+
56
+    # add user to the sipwitch group
57
+    if [ -f /etc/sipwitch.conf ]; then
58
+        usermod -aG sipwitch $new_username
59
+    fi
60
+
61
+    # add user for SIP STUN/TURN
62
+    if [ -d /etc/turnserver ]; then
63
+        if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
64
+            DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | head -n 1 | awk -F '=' '{print $2}')
65
+            echo "${new_username}:${new_user_password}:${DEFAULT_DOMAIN_NAME}:authorized" >> /etc/turnserver/turnusers.txt
66
+        fi
67
+    fi
68
+
69
+    echo '0'
70
+}
71
+
40 72
 function install_interactive_sip {
41 73
     echo -n ''
42 74
 }

+ 45
- 0
src/freedombone-app-xmpp View File

@@ -37,6 +37,51 @@ XMPP_PASSWORD=
37 37
 XMPP_CIPHERS='"EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"'
38 38
 XMPP_ECC_CURVE='"secp384r1"'
39 39
 
40
+function add_user_xmpp {
41
+    if [[ $(app_is_installed xmpp) == "0" ]]; then
42
+        echo '1'
43
+        return
44
+    fi
45
+
46
+    new_username="$1"
47
+    new_user_password="$2"
48
+
49
+    ${PROJECT_NAME}-addxmpp -e "$new_username@$HOSTNAME" -p "$new_user_password"
50
+    if [ ! "$?" = "0" ]; then
51
+        echo '2'
52
+        return
53
+    fi
54
+
55
+    XMPP_CLIENT_DIR=/home/$new_username/.local/share/profanity
56
+    XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
57
+    if [ ! -d $XMPP_CLIENT_DIR ]; then
58
+        mkdir -p $XMPP_CLIENT_DIR
59
+    fi
60
+    if [ ! -d /home/$new_username/.config/profanity ]; then
61
+        mkdir -p /home/$new_username/.config/profanity
62
+    fi
63
+    echo "[${new_username}@${HOSTNAME}]" > $XMPP_CLIENT_ACCOUNTS
64
+    echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
65
+    echo "jid=${new_username}@${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
66
+    echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
67
+    echo "muc.service=conference.${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
68
+    echo "muc.nick=${new_username}" >> $XMPP_CLIENT_ACCOUNTS
69
+    echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
70
+    echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
71
+    echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
72
+    echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
73
+    echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
74
+    echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
75
+    echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
76
+
77
+    echo '[connection]' > /home/$new_username/.config/profanity/profrc
78
+    echo "account=${new_username}@${HOSTNAME}" >> /home/$new_username/.config/profanity/profrc
79
+
80
+    chown -R $new_username:$new_username /home/$new_username/.local
81
+    chown -R $new_username:$new_username /home/$new_username/.config
82
+    echo '0'
83
+}
84
+
40 85
 function run_client_xmpp {
41 86
     torify profanity
42 87
 }