mirror of
https://github.com/binwiederhier/ntfy.git
synced 2024-11-23 11:37:54 +03:00
user.Manager: further improve ACL write/read order
For each user, we should test in order `THE_LONGEST_RULE`->`WRITE_PERMISSION`
This commit is contained in:
parent
5c9cebf059
commit
7a5572ad7c
@ -161,7 +161,7 @@ const (
|
|||||||
FROM user_access a
|
FROM user_access a
|
||||||
JOIN user u ON u.id = a.user_id
|
JOIN user u ON u.id = a.user_id
|
||||||
WHERE (u.user = ? OR u.user = ?) AND ? LIKE a.topic ESCAPE '\'
|
WHERE (u.user = ? OR u.user = ?) AND ? LIKE a.topic ESCAPE '\'
|
||||||
ORDER BY u.user DESC, a.write DESC
|
ORDER BY u.user DESC, LENGTH(a.topic) DESC, a.write DESC
|
||||||
`
|
`
|
||||||
|
|
||||||
insertUserQuery = `
|
insertUserQuery = `
|
||||||
@ -197,13 +197,13 @@ const (
|
|||||||
selectUserAllAccessQuery = `
|
selectUserAllAccessQuery = `
|
||||||
SELECT user_id, topic, read, write
|
SELECT user_id, topic, read, write
|
||||||
FROM user_access
|
FROM user_access
|
||||||
ORDER BY write DESC, read DESC, topic
|
ORDER BY LENGTH(topic) DESC, write DESC, read DESC, topic
|
||||||
`
|
`
|
||||||
selectUserAccessQuery = `
|
selectUserAccessQuery = `
|
||||||
SELECT topic, read, write
|
SELECT topic, read, write
|
||||||
FROM user_access
|
FROM user_access
|
||||||
WHERE user_id = (SELECT id FROM user WHERE user = ?)
|
WHERE user_id = (SELECT id FROM user WHERE user = ?)
|
||||||
ORDER BY write DESC, read DESC, topic
|
ORDER BY LENGTH(topic) DESC, write DESC, read DESC, topic
|
||||||
`
|
`
|
||||||
selectUserReservationsQuery = `
|
selectUserReservationsQuery = `
|
||||||
SELECT a_user.topic, a_user.read, a_user.write, a_everyone.read AS everyone_read, a_everyone.write AS everyone_write
|
SELECT a_user.topic, a_user.read, a_user.write, a_everyone.read AS everyone_read, a_everyone.write AS everyone_write
|
||||||
|
Loading…
Reference in New Issue
Block a user