40 lines
1023 B
Bash
Executable File
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
|