feat: Add del and add user scripts

This commit is contained in:
2025-10-29 08:56:58 +01:00
parent 8f5be0c091
commit 8346812c51
3 changed files with 52 additions and 30 deletions

View File

@@ -9,30 +9,31 @@ case $1 in
esac esac
done done
IFS=',' read user group <<< "$1" IFS=',' read -r user group <<< "$1"
file=${2:-""} file=${2:-""}
if [ -n "$file" ]; then if [ -n "$file" ]; then
grep -q $user $file if rg -q "$user" "$file"; then
if [ $? = 0 ]; then
echo "user $user already exists" echo "user $user already exists"
exit 1 exit 1
fi fi
echo "" >> $file {
echo "user,$user,registered,user,$user,," >> $file echo ""
echo "user,$user,active,user,$user,," >> $file echo "user,\"$user\",registered,user,$user,,"
echo "user,$user,member,group,$group,," >> $file echo "user,\"$user\",active,user,$user,,"
echo "user,\"$user\",member,group,$group,,"
} >> "$file"
fga tuple write user:$user registered user:$user fga tuple write user:"$user" registered user:"$user"
fga tuple write user:$user active user:$user fga tuple write user:"$user" active user:"$user"
fga tuple write user:$user member group:$group fga tuple write user:"$user" member group:"$group"
elif [ $fga = true ]; then elif [ "$fga" = true ]; then
echo "fga tuple write user:$user registered user:$user" echo "fga tuple write user:\"$user\" registered user:\"$user\""
echo "fga tuple write user:$user active user:$user" echo "fga tuple write user:\"$user\" active user:\"$user\""
echo "fga tuple write user:$user member group:$group" echo "fga tuple write user:\"$user\" member group:\"$group\""
else else
echo "user,$user,registered,user,$user,," echo "user,\"$user\",registered,user,\"$user\",,"
echo "user,$user,active,user,$user,," echo "user,\"$user\",active,user,\"$user\",,"
echo "user,$user,member,group,$group,," echo "user,\"$user\",member,group,\"$group\",,"
fi fi

View File

@@ -1,27 +1,27 @@
#!/bin/sh #!/bin/sh
user=${1:-"unknown"} user=${1:-"unknown"}
file=${2:-""} group=${2:-"uknown"}
file=${3:-""}
if [ -n "$file" ]; then if [ -n "$file" ]; then
grep -q $user $file if rg -q "$user" "$file"; then
if [ $? = 1 ]; then echo "user \"$user\" doesn't exists"
echo "user $user doesn't exists"
exit 1 exit 1
fi fi
sed -n "/$user/{p; d}" $file sed -n "/$user/{p; d}" "$file"
echo "Are you sure? (y/n)" echo "Are you sure? (y/n)"
read yesno read -r yesno
case $yesno in case $yesno in
y|yes) y|yes)
sed -i "/$user/d" $file sed -i "/$user/d" "$file"
fga tuple delete user:$user registered user:$user fga tuple delete user:"$user" registered user:"$user"
fga tuple delete user:$user active user:$user fga tuple delete user:"$user" active user:"$user"
fga tuple delete user:$user member group:$group fga tuple delete user:"$user" member group:"$group"
;; ;;
esac esac
else else
echo "fga tuple delete user:$user registered user:$user" echo "fga tuple delete user:\"$user\" registered user:\"$user\""
echo "fga tuple delete user:$user active user:$user" echo "fga tuple delete user:\"$user\" active user:\"$user\""
echo "fga tuple delete user:$user member group:$group" echo "fga tuple delete user:\"$user\" member group:\"$group\""
fi fi

View File

@@ -2,9 +2,30 @@
sources ? import ./npins, sources ? import ./npins,
pkgs ? import sources.nixpkgs { }, pkgs ? import sources.nixpkgs { },
}: }:
let
addUser = pkgs.writeShellApplication rec {
name = "deluser";
runtimeInputs = [
pkgs.openfga-cli
pkgs.ripgrep
pkgs.sedutil
];
text = builtins.readFile ./scripts/${name}.sh;
};
delUser = pkgs.writeShellApplication rec {
name = "adduser";
runtimeInputs = [
pkgs.openfga-cli
pkgs.ripgrep
];
text = builtins.readFile ./scripts/${name}.sh;
};
in
pkgs.mkShellNoCC { pkgs.mkShellNoCC {
packages = [ packages = [
pkgs.openfga-cli pkgs.openfga-cli
addUser
delUser
]; ];
FGA_API_URL = "https://openfga.srv.oceanbox.io"; FGA_API_URL = "https://openfga.srv.oceanbox.io";
FGA_STORE_ID = "01JKTZXMP7ANN4GG2P5W8Y56M6"; FGA_STORE_ID = "01JKTZXMP7ANN4GG2P5W8Y56M6";