|
@@ -45,6 +45,10 @@ REMOVED_APPS_FILE=/root/removed
|
45
|
45
|
|
46
|
46
|
INSTALLED_APPS_LIST=/usr/share/${PROJECT_NAME}/installed.txt
|
47
|
47
|
|
|
48
|
+# keep a list of which users have been added to which apps
|
|
49
|
+# so that when a new app is added existing users can be added
|
|
50
|
+APP_USERS_FILE=$HOME/app_users.txt
|
|
51
|
+
|
48
|
52
|
if [ ! $COMPLETION_FILE ]; then
|
49
|
53
|
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
|
50
|
54
|
fi
|
|
@@ -385,6 +389,11 @@ function remove_apps {
|
385
|
389
|
do
|
386
|
390
|
if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
|
387
|
391
|
if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
|
|
392
|
+ echo $"Removing users for application: ${a}"
|
|
393
|
+
|
|
394
|
+ function_check remove_users_for_app
|
|
395
|
+ remove_users_for_app ${a}
|
|
396
|
+
|
388
|
397
|
echo $"Removing application: ${a}"
|
389
|
398
|
|
390
|
399
|
function_check app_load_variables
|
|
@@ -423,6 +432,76 @@ function install_apps_interactive {
|
423
|
432
|
echo $"Interactive settings complete"
|
424
|
433
|
}
|
425
|
434
|
|
|
435
|
+function user_added_to_app {
|
|
436
|
+ user_name="$1"
|
|
437
|
+ app_name="$2"
|
|
438
|
+
|
|
439
|
+ if [[ $(is_valid_user "$user_name") == "1" ]]; then
|
|
440
|
+ if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
|
|
441
|
+ if grep -Fxq "${app_name}_${user_name}" $APP_USERS_FILE; then
|
|
442
|
+ echo "1"
|
|
443
|
+ return
|
|
444
|
+ fi
|
|
445
|
+ fi
|
|
446
|
+ fi
|
|
447
|
+ echo "0"
|
|
448
|
+}
|
|
449
|
+
|
|
450
|
+function add_users_after_install {
|
|
451
|
+ app_name="$1"
|
|
452
|
+
|
|
453
|
+ read_config_param MY_USERNAME
|
|
454
|
+
|
|
455
|
+ # ensure a minimum password length
|
|
456
|
+ if [ ! $MINIMUM_PASSWORD_LENGTH ]; then
|
|
457
|
+ MINIMUM_PASSWORD_LENGTH=20
|
|
458
|
+ fi
|
|
459
|
+ if [ ${#MINIMUM_PASSWORD_LENGTH} -lt 20 ]; then
|
|
460
|
+ MINIMUM_PASSWORD_LENGTH=20
|
|
461
|
+ fi
|
|
462
|
+
|
|
463
|
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
|
|
464
|
+ if [ ! $ADMIN_USERNAME ]; then
|
|
465
|
+ ADMIN_USERNAME=$MY_USERNAME
|
|
466
|
+ fi
|
|
467
|
+
|
|
468
|
+ for d in /home/*/ ; do
|
|
469
|
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
|
|
470
|
+ if [[ "$USERNAME" != "$ADMIN_USERNAME" ]]; then
|
|
471
|
+ if [[ $(user_added_to_app "${USERNAME}" "${app_name}") == "0" ]]; then
|
|
472
|
+ valstr=$"Login for user ${USERNAME}="
|
|
473
|
+ if grep -q "${valstr}" /home/${ADMIN_USERNAME}/README; then
|
|
474
|
+ app_password=$(cat /home/${ADMIN_USERNAME}/README | grep "${valstr}" | head -n 1 | awk -F '=' '{print $2}')
|
|
475
|
+ else
|
|
476
|
+ app_password="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
|
|
477
|
+ echo "${valstr}${app_password}" >> /home/${ADMIN_USERNAME}/README
|
|
478
|
+ fi
|
|
479
|
+ add_user_${app_name} "${USERNAME}" "${app_password}"
|
|
480
|
+ echo "${app_name}_${USERNAME}" >> $APP_USERS_FILE
|
|
481
|
+ chown ${ADMIN_USERNAME}:${ADMIN_USERNAME} /home/${ADMIN_USERNAME}/README
|
|
482
|
+ fi
|
|
483
|
+ fi
|
|
484
|
+ done
|
|
485
|
+}
|
|
486
|
+
|
|
487
|
+function remove_users_for_app {
|
|
488
|
+ app_name="$1"
|
|
489
|
+
|
|
490
|
+ read_config_param MY_USERNAME
|
|
491
|
+
|
|
492
|
+ for d in /home/*/ ; do
|
|
493
|
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
|
|
494
|
+ if [[ "$USERNAME" != "$MY_USERNAME" ]]; then
|
|
495
|
+ if [[ $(user_added_to_app "${USERNAME}" "${app_name}") == "1" ]]; then
|
|
496
|
+ if [[ $(function_exists remove_user_${app_name}) == "1" ]]; then
|
|
497
|
+ remove_user_${app_name} "${USERNAME}"
|
|
498
|
+ fi
|
|
499
|
+ sed -i "/${app_name}_${USERNAME}/d" $APP_USERS_FILE
|
|
500
|
+ fi
|
|
501
|
+ fi
|
|
502
|
+ done
|
|
503
|
+}
|
|
504
|
+
|
426
|
505
|
function install_apps {
|
427
|
506
|
is_interactive=$1
|
428
|
507
|
|
|
@@ -459,6 +538,9 @@ function install_apps {
|
459
|
538
|
function_check app_save_variables
|
460
|
539
|
app_save_variables ${a}
|
461
|
540
|
|
|
541
|
+ function_check add_users_after_install
|
|
542
|
+ add_users_after_install ${a}
|
|
543
|
+
|
462
|
544
|
function_check install_completed
|
463
|
545
|
install_completed ${a}
|
464
|
546
|
echo $"${a} was installed from interactive"
|
|
@@ -485,6 +567,9 @@ function install_apps {
|
485
|
567
|
function_check app_save_variables
|
486
|
568
|
app_save_variables ${a}
|
487
|
569
|
|
|
570
|
+ function_check add_users_after_install
|
|
571
|
+ add_users_after_install ${a}
|
|
572
|
+
|
488
|
573
|
function_check install_completed
|
489
|
574
|
install_completed ${a}
|
490
|
575
|
echo $"${a} was installed"
|