Zarafa create user script for the DB plugin

From Zarafa wiki

(Difference between revisions)
Jump to: navigation, search
(updated version number after Robin's update)
(moved the root check to the beginning + some layout enhancements)
Line 19: Line 19:
# Script to create a user in Zarafa with the DB user plugin.
# Script to create a user in Zarafa with the DB user plugin.
-
# Version (date / time): 20110114-10:00
+
# Version (date / time): 20110114-12:00
#
#
# WARNING: DO NOT use this script when using the UNIX, LDAP or
# WARNING: DO NOT use this script when using the UNIX, LDAP or
# Active Directory plugin!
# Active Directory plugin!
-
echo 'This script will help you creating a new Zarafa user.'
 
-
echo 'DISCLAIMER: This script is only suitable for use with the DB plugin.'
 
-
echo 'Creating a new Zarafa user. Please enter the details of the user.'
 
# Check if the user is root (required to run the zarafa-admin tool).
# Check if the user is root (required to run the zarafa-admin tool).
Line 34: Line 31:
exit 0
exit 0
fi
fi
 +
 +
echo 'This script will help you creating a new Zarafa user.'
 +
echo 'DISCLAIMER: This script is only suitable for use with the DB plugin.'
 +
echo ' '
 +
echo 'Creating a new Zarafa user. Please enter the details of the user.'
#The user name. Input needed is the user name.
#The user name. Input needed is the user name.
echo
echo
while [ -z $username ] ;do  
while [ -z $username ] ;do  
-
echo -n 'User name of the new user:'
+
echo -n 'User name of the new user: '
read username
read username
done
done
Line 44: Line 46:
#The password.
#The password.
while [ -z $password ] ;do
while [ -z $password ] ;do
-
       echo -n 'Password (will not be visible on input):'
+
       echo -n 'Password (will not be visible on input): '
read -s password
read -s password
echo ' '
echo ' '
Line 51: Line 53:
#The full name. No " "  needed for full names with spaces
#The full name. No " "  needed for full names with spaces
while [ -z "$full" ] ;do
while [ -z "$full" ] ;do
-
         echo -n 'Full name of the new user (without quotes, can have spaces):'
+
         echo -n 'Full name of the new user (without quotes, can have spaces): '
         read full
         read full
done
done
Line 57: Line 59:
#The email address.  
#The email address.  
while [ -z $email ] ;do
while [ -z $email ] ;do
-
echo -n 'Email address of the new user:'
+
echo -n 'Email address of the new user: '
read email
read email
done
done
-
#The admin attribute 1 for admin or 0 for no admin role. 2 can also be given this will make it a system admin.
+
#The admin attribute 1 for admin or 0 for no admin role. 2 can also be given, this will make the user a system admin.
while [ -z $admin ] ;do
while [ -z $admin ] ;do
echo 'Should the user have administrator rights?'
echo 'Should the user have administrator rights?'
-
echo 'Enter 1 for yes, 0 for no (The default is no):'
+
echo 'Enter 1 for yes, 0 for no (The default is no): '
read admin
read admin
admin="${admin:-0}"
admin="${admin:-0}"
Line 73: Line 75:
while [ -z $non ] ;do
while [ -z $non ] ;do
echo 'Should the non active bit be set for this user? This is common for resources.'
echo 'Should the non active bit be set for this user? This is common for resources.'
-
echo 'Enter 1 for yes, 0 for no (The default is no):'
+
echo 'Enter 1 for yes, 0 for no (The default is no): '
read non
read non
non="${non:-0}"
non="${non:-0}"
Line 84: Line 86:
if [ $non == "1" -o $non == "1" ]; then
if [ $non == "1" -o $non == "1" ]; then
   echo  'This user is non active. Please set the resource attributes as well.'
   echo  'This user is non active. Please set the resource attributes as well.'
-
   echo  'Would you like to use this resource as a bookable room? Yes/No:'
+
   echo  'Would you like to use this resource as a bookable room? Yes/No: '
   read accept
   read accept
# If the resource is set to auto accept you might want to set these options aswell.
# If the resource is set to auto accept you might want to set these options aswell.
   if [ $accept == "yes" ]; then
   if [ $accept == "yes" ]; then
-
     echo -n 'Would you like to make the resource decline recurring appointments? Yes/No:'
+
     echo -n 'Would you like to make the resource decline recurring appointments? Yes/No: '
     read recurring
     read recurring
-
     echo -n 'Would you like to make the resource decline conflicting appointments? Yes/No:'
+
     echo -n 'Would you like to make the resource decline conflicting appointments? Yes/No: '
     read conflict
     read conflict
     zarafa-admin -u "$username" --mr-accept "$accept" --mr-decline-conflict "$conflict" --mr-decline-recurring "$recurring"  
     zarafa-admin -u "$username" --mr-accept "$accept" --mr-decline-conflict "$conflict" --mr-decline-recurring "$recurring"  
Line 101: Line 103:
-
#The details of the user will now be displayed:
+
#Show the details of the newly created user
echo 'User created with the following details:'
echo 'User created with the following details:'
zarafa-admin --details "$username"
zarafa-admin --details "$username"

Revision as of 11:12, 14 January 2011

The Zarafa create user script.

This is a script that can be used to create users in a more friendly way for people who are new to Linux or have trouble remembering the various zarafa-admin variables.

The script will ask what values you want to give to a user, like: User name, Password, full name, email address, administrator or not and if the user is non-active or active.

Also when a non-active user is created the resource attributes will be asked. (auto accept meeting request and declining recurring and/or conflicting).

To use the script, copy paste the text below into a new file, give the file executable rights (chmod +x). Then, run it as root (Zarafa-server needs to be running).

Feel free to improve the script.


The script:

#!/usr/bin/env bash

# Script to create a user in Zarafa with the DB user plugin.
# Version (date / time): 20110114-12:00
#
# WARNING: DO NOT use this script when using the UNIX, LDAP or
# Active Directory plugin!

# Check if the user is root (required to run the zarafa-admin tool).
if [ $USER != 'root' ]
then
echo
echo "You need root privileges to run this script. Exiting."
exit 0
fi

echo 'This script will help you creating a new Zarafa user.'
echo 'DISCLAIMER: This script is only suitable for use with the DB plugin.'
echo ' '
echo 'Creating a new Zarafa user. Please enter the details of the user.'

#The user name. Input needed is the user name.
echo
while [ -z $username ] ;do 
	echo -n 'User name of the new user: '
	read username
done

#The password.
while [ -z $password ] ;do
       	echo -n 'Password (will not be visible on input): '
	read -s password
	echo ' '
done

#The full name. No " "  needed for full names with spaces
while [ -z "$full" ] ;do
        echo -n 'Full name of the new user (without quotes, can have spaces): '
        read full
done

#The email address. 
while [ -z $email ] ;do
	echo -n 'Email address of the new user: '
	read email
done


#The admin attribute 1 for admin or 0 for no admin role. 2 can also be given, this will make the user a system admin.
while [ -z $admin ] ;do
	echo 'Should the user have administrator rights?'
	echo 'Enter 1 for yes, 0 for no (The default is no): '
	read admin
	admin="${admin:-0}"
done

#The non-active attribute for non-active users (resources) 
while [ -z $non ] ;do
	echo 'Should the non active bit be set for this user? This is common for resources.'
	echo 'Enter 1 for yes, 0 for no (The default is no): '
	read non
	non="${non:-0}"
done

#The zarafa-admin command to create the user with the input given by the user.
zarafa-admin -c "$username" -p "$password" -f "$full" -e "$email" -a "$admin" -n "'$non"

# Here we add the resource attributes if you want to.
if [ $non == "1" -o $non == "1" ]; then
  echo  'This user is non active. Please set the resource attributes as well.'
  echo  'Would you like to use this resource as a bookable room? Yes/No: '
  read accept

# If the resource is set to auto accept you might want to set these options aswell.
   if [ $accept == "yes" ]; then
     echo -n 'Would you like to make the resource decline recurring appointments? Yes/No: '
     read recurring
     echo -n 'Would you like to make the resource decline conflicting appointments? Yes/No: '
     read conflict
     zarafa-admin -u "$username" --mr-accept "$accept" --mr-decline-conflict "$conflict" --mr-decline-recurring "$recurring" 

  fi
  echo "done"

fi


#Show the details of the newly created user
echo 'User created with the following details:'
zarafa-admin --details "$username"

exit;
Personal tools