Files
openfga/scripts/adduser.sh

40 lines
1023 B
Bash
Executable File

#!/bin/sh
fga=false
while true; do
case $1 in
--fga) fga=true; shift ;;
*) break ;;
esac
done
IFS=',' read -r user group <<< "$1"
file=${2:-""}
if [ -n "$file" ]; then
if rg -q "$user" "$file"; then
echo "user $user already exists"
exit 1
fi
{
echo ""
echo "user,\"$user\",registered,user,$user,,"
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" active user:"$user"
fga tuple write user:"$user" member group:"$group"
elif [ "$fga" = true ]; then
echo "fga tuple write user:\"$user\" registered user:\"$user\""
echo "fga tuple write user:\"$user\" active user:\"$user\""
echo "fga tuple write user:\"$user\" member group:\"$group\""
else
echo "user,\"$user\",registered,user,\"$user\",,"
echo "user,\"$user\",active,user,\"$user\",,"
echo "user,\"$user\",member,group,\"$group\",,"
fi