Select Git revision
SimpleAnnotationServerV2Adapter.js
-
Robert Casties authoredRobert Casties authored
create_primtux_user.sh 2.04 KiB
#!/bin/bash
LEVELS="cycle_1 cycle_2 cycle_3 professeur direction"
declare -A SKELS
SKELS[cycle_1]="01-mini"
SKELS[cycle_2]="02-super"
SKELS[cycle_3]="03-maxi"
SKELS[professeur]="prof"
SKELS[direction]="direction"
abort(){
rm $TEMPF*
exit 1
}
usage(){
echo "Usage $0 username level"
echo "Transform an existing LDAP user into a Primtux LDAP user"
echo "Options"
echo "Level : {${LEVELS// /|}}"
}
if [ -z "$2" ]
then
usage
abort
fi
. /etc/slis/slis.conf
user="$1"
level="$2"
TEMPF="$$_temp"
DIST="`dirname $0`/dist"
set -x
# Check for LDAP group Primtux
if [ -z "ldapsearch -x cn=Primtux | grep numEntries" ]
then
# insert primtux group
sed -e "s/BASE/$LDAP_BASE_DN/" $DIST/primtux.ldiff > $TEMPF.ldiff
ldapadd -x -D "cn=$LDAP_ADMIN_RDN,$LDAP_BASE_DN" -w $LDAP_ADMIN_PW -f $TEMPF.ldiff
fi
ldapsearch -x -LLL uid=$user > $TEMPF.ldiff
if [ ! -s $TEMPF.ldiff ]
then
abort
fi
# Check for UID => 1000 and update if required
uid=`grep uidNumber $TEMPF.ldiff | cut -d ' ' -f 2`
if [ $uid -eq 1000 ]
then
# Change UID
newuid=$(( `slapcat | grep "uidNumber: 10.." | cut -d ' ' -f 2 | sort -nu | tail -n 1`+1))
# prepare ldiff file
grep "^dn" $TEMPF.ldiff > $TEMPF.1.ldiff
echo -e "changetype: modify\nreplace: uidNumber\nuidNumber: $newuid" >> $TEMPF.1.ldiff
# run ldapmodify
ldapmodify -x -D "cn=$LDAP_ADMIN_RDN,$LDAP_BASE_DN" -w $LDAP_ADMIN_PW -f $TEMPF.1.ldiff
uid=$newuid
fi
# Add Primtux to user group
echo -e "dn: cn=Primtux,ou=Groups,$LDAP_BASE_DN\nchangetype: modify\nadd: memberUid\nmemberUid: $user" > $TEMPF.1.ldiff
ldapmodify -x -D "cn=$LDAP_ADMIN_RDN,$LDAP_BASE_DN" -w $LDAP_ADMIN_PW -f $TEMPF.1.ldiff
# Retrieve files from skels
skel="$DIR/skels/${SKELS[$level]}"
home=`$TEMPF.ldiff | cut -d ' ' -f 2`
echo mv $home $home.bak
echo cp -r $skel $home
echo cp -r $home.bak/* $home/
echo rm -rf $home
# fix links
echo ln -sf $home/.wine/drive_c/users/01-mini/Bureau $home/Bureau
# fix Rights
echo chown -R $uid: $home
# fix samba passwd
# TODO: test me
smbpasswd -w $LDAP_ADMIN_PW -n $user
rm $$.ldif