Select Git revision
nc-useradd.sh
nc-useradd.sh 1.92 KiB
#!/bin/bash
# Création d'utilisateur dans Nextcloud
#
# usage: nc-useradd.sh [OPTIONS] USERID DISPLAYNAME EMAIL [GROUPE...]
#
# OPTIONS
# -h, --help affiche ce message d'aide
#
# Créer un utilisateur dans l'instance Nextcloud via un appel à l'API
# par curl pour ne pas avoir à spécifier de mot de passe.
#
# Les variables d'environnement suivantes doivent être fixées :
#
# - NEXTCLOUD_HOST : le nom de l'instance Nextcloud
# - NEXTCLOUD_ADMIN_USER : l'id d'un utilisateur admin
# - NEXTCLOUD_ADMIN_PASSWORD : le mot de passe de l'utilisateur admin
#
# Penser à protéger les espaces avec des quotes si nécessaires
# (notamment pour DISPLAYNAME).
#
# Copyright (C) 2021 Bruno BEAUFILS <bruno@boulgour.com>
#
# This software comes with ABSOLUTELY NO WARRANTY.
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation in its version 2.
# See the README or COPYING file for details.
_doc () { sed -n '2,/^$/ { s/^ *#// ; s/^ //g ; t e ; d ; :e p }' <$0 ; }
_die () { echo "${0##*/}: error: $*" 1>&2 ; exit 1 ; }
test "x$1" = "x-h" -o "x$1" = "x--help" && _doc && exit
test -z $NEXTCLOUD_HOST && _die "NEXTCLOUD_HOST est vide"
test -z $NEXTCLOUD_ADMIN_USER && _die "NEXTCLOUD_ADMIN_USER est vide"
test -z $NEXTCLOUD_ADMIN_PASSWORD && _die "NEXTCLOUD_ADMIN_PASSWORD est vide"
test $# -lt 3 && _die "manque des paramètres. Essayer l'option -h"
which curl 1>/dev/null 2>&1 || _die "curl inacessible"
userid="$1"
displayName="$2"
email="$3"
shift 3
for g in "$@"
do
groups_args="$groups_args -d groups[]=\"$g\""
done
eval curl -X POST https://${NEXTCLOUD_ADMIN_USER}:${NEXTCLOUD_ADMIN_PASSWORD}@${NEXTCLOUD_HOST}/ocs/v1.php/cloud/users \
-d userid=\"$userid\" \
-d displayName=\"$displayName\" \
-d email=\"$email\" \
$groups_args \
-d language=\"fr\" \
--header \"OCS-APIRequest: true\"