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
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue