Get the sqlite3_user_delete() interface working.
FossilOrigin-Name: 974a9c65583f7ab438d5673dc00c347ab8322855
This commit is contained in:
parent
570f187f78
commit
9d5b0df132
@ -329,7 +329,7 @@ int sqlite3_user_delete(
|
||||
return SQLITE_OK;
|
||||
}
|
||||
pStmt = sqlite3UserAuthPrepare(db,
|
||||
"SELECT FROM sqlite_user WHERE uname=%Q", zUsername);
|
||||
"DELETE FROM sqlite_user WHERE uname=%Q", zUsername);
|
||||
if( pStmt==0 ) return SQLITE_NOMEM;
|
||||
sqlite3_step(pStmt);
|
||||
return sqlite3_finalize(pStmt);
|
||||
|
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Fix\sthe\ssqlite3_user_change()\sinterface\sso\sthat\sit\sdoes\sallow\sa\nnon-admin\suser\sto\schange\stheir\sown\spassword.
|
||||
D 2014-09-11T14:40:27.156
|
||||
C Get\sthe\ssqlite3_user_delete()\sinterface\sworking.
|
||||
D 2014-09-11T14:56:45.837
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -146,7 +146,7 @@ F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
|
||||
F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
|
||||
F ext/userauth/sqlite3userauth.h 19cb6f0e31316d0ee4afdfb7a85ef9da3333a220
|
||||
F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
|
||||
F ext/userauth/userauth.c bcd1aedb0b810b1a1125945e637af54ce3d299f1
|
||||
F ext/userauth/userauth.c 7942172fe537a6eedb797535b7558e726e00f728
|
||||
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
|
||||
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
|
||||
F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
|
||||
@ -1057,7 +1057,7 @@ F test/unixexcl.test cd6c765f75e50e8e2c2ba763149e5d340ea19825
|
||||
F test/unordered.test ca7adce0419e4ca0c50f039885e76ed2c531eda8
|
||||
F test/update.test 1b6c488a8f993d090b7ee9ad0e234faa161b3aeb
|
||||
F test/uri.test 23662b7b61958b0f0e47082de7d06341ccf85d5b
|
||||
F test/userauth01.test 3be4d454af151aa8d59804f2fe4e593f367014c3
|
||||
F test/userauth01.test 77f6762fd30e09a70c08ae1734fc63cc1e2f214a
|
||||
F test/utf16align.test 54cd35a27c005a9b6e7815d887718780b6a462ae
|
||||
F test/vacuum.test ce91c39f7f91a4273bf620efad21086b5aa6ef1d
|
||||
F test/vacuum2.test af432e6e3bfc0ea20a80cb86a03c7d9876d38324
|
||||
@ -1197,7 +1197,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
P 70121e7cf868b7d6d19bf98794ddc3809a901456
|
||||
R fc5d3c327123005770c7e41594123732
|
||||
P 52d440c7e1b07fc03f14ed5fa4cc4c89a75cd430
|
||||
R f24750ae4706249df9137bdaab459848
|
||||
U drh
|
||||
Z 21dad64c9f9cfa4863908b784242b9b1
|
||||
Z 7444bd078e3d35d0ed86c3e87803a00a
|
||||
|
@ -1 +1 @@
|
||||
52d440c7e1b07fc03f14ed5fa4cc4c89a75cd430
|
||||
974a9c65583f7ab438d5673dc00c347ab8322855
|
@ -110,7 +110,96 @@ do_test userauth01-1.10 {
|
||||
do_test userauth01-1.11 {
|
||||
sqlite3_user_authenticate db2 cindy xyzzy-cindy
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.12 {
|
||||
sqlite3_user_change db alice xyzzy-alice 1
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.13 {
|
||||
sqlite3_user_authenticate db alice pw-4-alice
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.14 {
|
||||
sqlite3_user_authenticate db alice xyzzy-alice
|
||||
} {SQLITE_OK}
|
||||
|
||||
# No user may change their own admin privilege setting.
|
||||
#
|
||||
do_test userauth01-1.15 {
|
||||
sqlite3_user_change db alice xyzzy-alice 0
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.16 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 bob 0 cindy 0 david 0}
|
||||
do_test userauth01-1.17 {
|
||||
sqlite3_user_change db2 cindy xyzzy-cindy 1
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.18 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 bob 0 cindy 0 david 0}
|
||||
|
||||
# The sqlite3_user_change() interface can be used to change a users
|
||||
# login credentials or admin privilege.
|
||||
#
|
||||
do_test userauth01-1.20 {
|
||||
sqlite3_user_change db david xyzzy-david 1
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.21 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 bob 0 cindy 0 david 1}
|
||||
do_test userauth01-1.22 {
|
||||
sqlite3_user_authenticate db2 david xyzzy-david
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.23 {
|
||||
db2 eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 bob 0 cindy 0 david 1}
|
||||
do_test userauth01-1.24 {
|
||||
sqlite3_user_change db david pw-4-david 0
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.25 {
|
||||
sqlite3_user_authenticate db2 david pw-4-david
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.26 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 bob 0 cindy 0 david 0}
|
||||
do_test userauth01-1.27 {
|
||||
catchsql {SELECT uname, isadmin FROM sqlite_user ORDER BY uname} db2
|
||||
} {1 {no such table: sqlite_user}}
|
||||
|
||||
# Only an admin user can change another users login
|
||||
# credentials or admin privilege setting.
|
||||
#
|
||||
do_test userauth01-1.30 {
|
||||
sqlite3_user_change db2 bob xyzzy-bob 1
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.31 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 bob 0 cindy 0 david 0}
|
||||
|
||||
# The sqlite3_user_delete() interface can be used (by an admin user only)
|
||||
# to delete a user.
|
||||
#
|
||||
do_test userauth01-1.40 {
|
||||
sqlite3_user_delete db bob
|
||||
} {SQLITE_OK}
|
||||
do_test userauth01-1.41 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 cindy 0 david 0}
|
||||
do_test userauth01-1.42 {
|
||||
sqlite3_user_delete db2 cindy
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.43 {
|
||||
sqlite3_user_delete db2 alice
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.44 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 cindy 0 david 0}
|
||||
|
||||
# The currently logged-in user cannot be deleted
|
||||
#
|
||||
do_test userauth01-1.50 {
|
||||
sqlite3_user_delete db alice
|
||||
} {SQLITE_AUTH}
|
||||
do_test userauth01-1.51 {
|
||||
db eval {SELECT uname, isadmin FROM sqlite_user ORDER BY uname}
|
||||
} {alice 1 cindy 0 david 0}
|
||||
|
||||
|
||||
finish_test
|
||||
|
Loading…
Reference in New Issue
Block a user