[Server-devel] [PATCH] Utility function for the batch removal of XO users
Douglas Bagnall
douglas at paradise.net.nz
Mon Aug 11 19:26:35 EDT 2008
This removes the named XO users from both the SQL and system databases.
To remove all users, use something like
/home/idmgr/remove_user `sqlite3 /home/idmgr/identity.db \
"select serial from laptops"`
diff --git a/Makefile b/Makefile
index fad74be..1065310 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
NAME = idmgr
VERSION = 0.1.2
-RELEASE = 3
+RELEASE = 5
ARCH = noarch
# install root
@@ -16,6 +16,7 @@ CONF_SRC = conf.schoolserver
# Scripts
CREATE_USER = create_user
+REMOVE_USER = remove_user
CREATE_REGISTRATION = create_registration
LIST_REGISTRATION = list_registration
IDMGR_INIT = idmgr
@@ -27,10 +28,12 @@ SERVER = idmgr/
# All scripts
SRC_FILES = $(CONF_SRC)/$(CREATE_USER) $(CONF_SRC)/$(CREATE_REGISTRATION) \
$(CONF_SRC)/$(LIST_REGISTRATION) $(CONF_SRC)/$(IDMGR_INIT) \
- $(CONF_SRC)/$(IDMGR_CONFIG) $(CONF_SRC)/$(UPDATE_USERS_01)
+ $(CONF_SRC)/$(IDMGR_CONFIG) $(CONF_SRC)/$(UPDATE_USERS_01) \
+ $(CONF_SRC)/$(REMOVE_USER)
FILES = $(BIN_DST)/$(CREATE_USER) $(BIN_DST)/$(CREATE_REGISTRATION) \
$(BIN_DST)/$(LIST_REGISTRATION) $(INIT_DST)/$(IDMGR_INIT) \
- $(CONFIG_DST)/$(IDMGR_CONFIG) $(BIN_DST)/$(UPDATE_USERS_01)
+ $(CONFIG_DST)/$(IDMGR_CONFIG) $(BIN_DST)/$(UPDATE_USERS_01) \
+ $(BIN_DST)/$(REMOVE_USER)
# install rules
$(DESTDIR):
@@ -48,6 +51,9 @@ $(CONFIG_DST): $(DESTDIR)
$(BIN_DST)/$(CREATE_USER): $(CONF_SRC)/$(CREATE_USER) $(BIN_DST)
cp $(CONF_SRC)/$(CREATE_USER) $(BIN_DST)
+$(BIN_DST)/$(REMOVE_USER): $(CONF_SRC)/$(REMOVE_USER) $(BIN_DST)
+ cp $(CONF_SRC)/$(REMOVE_USER) $(BIN_DST)
+
$(BIN_DST)/$(UPDATE_USERS_01): $(CONF_SRC)/$(UPDATE_USERS_01) $(BIN_DST)
cp $(CONF_SRC)/$(UPDATE_USERS_01) $(BIN_DST)
diff --git a/conf.schoolserver/remove_user b/conf.schoolserver/remove_user
new file mode 100755
index 0000000..47926ae
--- /dev/null
+++ b/conf.schoolserver/remove_user
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for serial; do
+ echo "$serial" | grep -s -E '^[A-Z]{3}[A-F0-9]{8}$' || exit 1
+ sqlite3 /home/idmgr/identity.db "DELETE FROM laptops WHERE serial =
'$serial'" || exit 1
+ userdel $serial
+done
\ No newline at end of file
diff --git a/idmgr.spec b/idmgr.spec
index b405560..dd6f1f0 100644
--- a/idmgr.spec
+++ b/idmgr.spec
@@ -4,7 +4,7 @@
Summary: XS Registration Manager
Name: idmgr
Version: 0.1.2
-Release: 3
+Release: 5
License: GPL
Group: Base System/System Tools
URL: http://dev.laptop.org/git.do?p=projects/idmgr;a=summary
@@ -79,6 +79,7 @@ rm -rf $RPM_BUILD_ROOT
/etc/idmgr.conf
/home/idmgr/create_registration
/home/idmgr/create_user
+/home/idmgr/remove_user
/home/idmgr/update_users_0_to_1.py
/home/idmgr/update_users_0_to_1.pyo
/home/idmgr/update_users_0_to_1.pyc
More information about the Server-devel
mailing list