diff options
author | Andrew Cady <d@jerkface.net> | 2022-11-30 17:17:28 -0500 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2022-11-30 17:17:28 -0500 |
commit | f22fc83da5f4a4c937d2f7d4cbe4d394329681ea (patch) | |
tree | de8bec3f6751dd35224d6202767c44fca2a1d977 | |
parent | ef36efc3084926d7f8a8a417afdc873fadff3b54 (diff) |
further improve/generalize quasseluser-*
-rwxr-xr-x | quasseluser-check-password | 1 | ||||
-rwxr-xr-x | quasseluser-get | 33 | ||||
l--------- | quasseluser-get-password | 1 | ||||
l---------[-rwxr-xr-x] | quasseluser-get-userid | 17 |
4 files changed, 36 insertions, 16 deletions
diff --git a/quasseluser-check-password b/quasseluser-check-password index ca2d4c8..f6c5561 100755 --- a/quasseluser-check-password +++ b/quasseluser-check-password | |||
@@ -3,6 +3,7 @@ | |||
3 | set -e | 3 | set -e |
4 | [ $# = 1 ] | 4 | [ $# = 1 ] |
5 | quser=$1 | 5 | quser=$1 |
6 | case "$quser" in *[']*) exit 1 ;; esac | ||
6 | qpass=$(./quasselcore-sqlite "select password from quasseluser where username = '$quser' and hashversion = 1;") | 7 | qpass=$(./quasselcore-sqlite "select password from quasseluser where username = '$quser' and hashversion = 1;") |
7 | 8 | ||
8 | hash=${qpass%:*} | 9 | hash=${qpass%:*} |
diff --git a/quasseluser-get b/quasseluser-get new file mode 100755 index 0000000..91d4ca6 --- /dev/null +++ b/quasseluser-get | |||
@@ -0,0 +1,33 @@ | |||
1 | #!/bin/sh | ||
2 | set -e | ||
3 | |||
4 | cmd=${0##*/} | ||
5 | case "$cmd" in | ||
6 | quasseluser-get-*) | ||
7 | exec ./quasseluser-get "${cmd#quasseluser-get-}" "$@" | ||
8 | ;; | ||
9 | esac | ||
10 | |||
11 | if [ $# = 2 ] | ||
12 | then | ||
13 | field=$1 | ||
14 | case "$field" in | ||
15 | userid | username | password | hashversion | authenticator) ;; | ||
16 | *) exit 1 ;; | ||
17 | esac | ||
18 | shift | ||
19 | fi | ||
20 | |||
21 | [ $# = 1 ] | ||
22 | username=$1 | ||
23 | case "$username" in *\'*) exit 1 ;; esac | ||
24 | |||
25 | result=$(./quasselcore-sqlite "select $field from quasseluser where username='$username'") | ||
26 | |||
27 | if [ "$result" ] | ||
28 | then | ||
29 | printf '%s\n' "$result" | ||
30 | else | ||
31 | exit 1 | ||
32 | fi | ||
33 | |||
diff --git a/quasseluser-get-password b/quasseluser-get-password new file mode 120000 index 0000000..21b7085 --- /dev/null +++ b/quasseluser-get-password | |||
@@ -0,0 +1 @@ | |||
quasseluser-get \ No newline at end of file | |||
diff --git a/quasseluser-get-userid b/quasseluser-get-userid index d6c9d99..21b7085 100755..120000 --- a/quasseluser-get-userid +++ b/quasseluser-get-userid | |||
@@ -1,16 +1 @@ | |||
1 | #!/bin/sh | quasseluser-get \ No newline at end of file | |
2 | set -e | ||
3 | |||
4 | [ $# = 1 ] | ||
5 | username=$1 | ||
6 | case "$username" in *\'*) exit 1 ;; esac | ||
7 | |||
8 | userid=$(./quasselcore-sqlite "select userid from quasseluser where username='$username'") | ||
9 | |||
10 | if [ "$userid" ] | ||
11 | then | ||
12 | printf '%s\n' "$userid" | ||
13 | else | ||
14 | exit 1 | ||
15 | fi | ||
16 | |||