Explorar o código

add photo from url

Fmstrat %!s(int64=2) %!d(string=hai) anos
pai
achega
fda13ac017
Modificáronse 2 ficheiros con 22 adicións e 2 borrados
  1. 1 0
      Dockerfile
  2. 21 2
      domain.sh

+ 1 - 0
Dockerfile

@@ -21,6 +21,7 @@ RUN \
         inetutils-ping \
         ldb-tools \
         vim \
+        curl \
         ntp &&\
     apt-get clean autoclean &&\
     apt-get autoremove --yes &&\

+ 21 - 2
domain.sh

@@ -26,7 +26,8 @@ Usage:
 	domain change-password <user>
 	domain edit <user or group>
 	domain set-user-ssh-key <user> <pubkey>
-	domain set-user-photo <user> <"$(base64 -w0 /path/to/img)>">
+	domain set-user-photo-from-file <user> <"$(base64 -w0 /path/to/img)>">
+	domain set-user-photo-from-url <user> <url>
 	domain add-user-to-group <user> <group>
 	domain remove-user-from-group <user> <group>
 	domain update-ip <domain> <controller> <oldip> <newip>
@@ -143,7 +144,7 @@ sshPublicKey: ${3}"
 			echo "${MOD}" | ldbmodify -H /var/lib/samba/private/sam.ldb
 		fi
 		;;
-	set-user-photo)
+	set-user-photo-from-file)
 		DN=$(ldbedit -H /var/lib/samba/private/sam.ldb -e cat "samaccountname=${2}" | grep ^dn: |sed 's/^dn: //g')
 		CURPHOTO=$(ldbedit -H /var/lib/samba/private/sam.ldb -e cat "samaccountname=${2}" | { grep ^jpegPhoto: || true; })
 		if [ -z "${CURPHOTO}" ]; then
@@ -160,6 +161,24 @@ jpegPhoto: ${3}"
 			echo "${MOD}" | ldbmodify -H /var/lib/samba/private/sam.ldb
 		fi
 		;;
+	set-user-photo-from-url)
+		DN=$(ldbedit -H /var/lib/samba/private/sam.ldb -e cat "samaccountname=${2}" | grep ^dn: |sed 's/^dn: //g')
+		CURPHOTO=$(ldbedit -H /var/lib/samba/private/sam.ldb -e cat "samaccountname=${2}" | { grep ^jpegPhoto: || true; })
+		B64=$(curl -s "${3}" |base64 -w0)
+		if [ -z "${CURPHOTO}" ]; then
+			MOD="dn: ${DN}
+changetype: modify
+add: jpegPhoto
+jpegPhoto: ${B64}"
+			echo "${MOD}" | ldbmodify -H /var/lib/samba/private/sam.ldb
+		else
+			MOD="dn: ${DN}
+changetype: modify
+replace: jpegPhoto
+jpegPhoto: ${B64}"
+			echo "${MOD}" | ldbmodify -H /var/lib/samba/private/sam.ldb
+		fi
+		;;
 	*)
 		usage;
 esac