Fix NETHOME detection issue for examusers, staff and parents
This commit is contained in:
parent
63dec2f8b7
commit
857b834232
3 changed files with 22 additions and 9 deletions
|
|
@ -16,11 +16,16 @@ fi
|
||||||
id="$(grep ID "$file" | sed -E "s|^.+ID>([[:digit:]]+)/([[:digit:]]+)</ID.+$|\1:\2|" \
|
id="$(grep ID "$file" | sed -E "s|^.+ID>([[:digit:]]+)/([[:digit:]]+)</ID.+$|\1:\2|" \
|
||||||
| sort -n -t: -k2 | tail -1 )"
|
| sort -n -t: -k2 | tail -1 )"
|
||||||
|
|
||||||
if id | grep -q teachers; then
|
for dir in teachers examusers staff parents; do
|
||||||
NETHOME=/srv/samba/schools/default-school/teachers/$USER
|
if [[ -d "/srv/samba/schools/default-school/${dir}/${USER}" ]]; then
|
||||||
else
|
NETHOME="/srv/samba/schools/default-school/${dir}/${USER}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ -z "${NETHOME+x}" ]]; then
|
||||||
NETHOME=(/srv/samba/schools/default-school/students/*/"$USER")
|
NETHOME=(/srv/samba/schools/default-school/students/*/"$USER")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -d $NETHOME ]] || exit 0
|
[[ -d $NETHOME ]] || exit 0
|
||||||
|
|
||||||
IDENTITY="${id%%:*}"
|
IDENTITY="${id%%:*}"
|
||||||
|
|
|
||||||
|
|
@ -346,11 +346,16 @@ if ! virsh --connect="${QEMU}" list | grep "${VM_NAME}-clone"; then
|
||||||
virsh --connect=qemu:///session undefine --nvram "${VM_NAME}-clone" || echo "${VM_NAME}-clone did not exist"
|
virsh --connect=qemu:///session undefine --nvram "${VM_NAME}-clone" || echo "${VM_NAME}-clone did not exist"
|
||||||
#trap exit_script SIGHUP SIGINT SIGTERM
|
#trap exit_script SIGHUP SIGINT SIGTERM
|
||||||
|
|
||||||
if id | grep -q teachers; then
|
for dir in teachers examusers staff parents; do
|
||||||
NETHOME=/srv/samba/schools/default-school/teachers/$USER
|
if [[ -d "/srv/samba/schools/default-school/${dir}/${USER}" ]]; then
|
||||||
else
|
NETHOME="/srv/samba/schools/default-school/${dir}/${USER}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ -z "${NETHOME+x}" ]]; then
|
||||||
NETHOME=(/srv/samba/schools/default-school/students/*/"$USER")
|
NETHOME=(/srv/samba/schools/default-school/students/*/"$USER")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${HOME}" != "${NETHOME}" ]]; then
|
if [[ "${HOME}" != "${NETHOME}" ]]; then
|
||||||
VMINFO_DIR="${HOME}"
|
VMINFO_DIR="${HOME}"
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -93,9 +93,12 @@ def main():
|
||||||
vminfo['User'] = environ.get('USER')
|
vminfo['User'] = environ.get('USER')
|
||||||
vminfo['Groups'] = get_groups(environ.get('USER'))
|
vminfo['Groups'] = get_groups(environ.get('USER'))
|
||||||
|
|
||||||
if 'teachers' in vminfo['Groups']:
|
for dir in ['teachers','examusers','staff','parents']:
|
||||||
nethome = f"/srv/samba/schools/default-school/teachers/{vminfo['User']}"
|
potential_path = f"/srv/samba/schools/default-school/{dir}/{vminfo['User']}"
|
||||||
else:
|
if path.isdir(potential_path):
|
||||||
|
nethome = potential_path
|
||||||
|
break
|
||||||
|
if not nethome:
|
||||||
result = subprocess.run(['find', '/srv/samba/schools/default-school/students/', '-name', vminfo['User'], '-maxdepth', '2', '-type', 'd'], capture_output=True, text=True, check=False)
|
result = subprocess.run(['find', '/srv/samba/schools/default-school/students/', '-name', vminfo['User'], '-maxdepth', '2', '-type', 'd'], capture_output=True, text=True, check=False)
|
||||||
nethome = result.stdout.splitlines()[0]
|
nethome = result.stdout.splitlines()[0]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue