Skip to content
Snippets Groups Projects
Commit e8009f41 authored by Maria's avatar Maria Committed by Kirill Yukhin
Browse files

box: user.grant error should be versatile

Error message on granted privileges was not flexible and
did not distinguish between universal or any other privileges
leaving either 'nil' or simply '' at the end.

Closes #714
parent 6d45a41e
No related branches found
No related tags found
No related merge requests found
......@@ -141,7 +141,7 @@ struct errcode_record {
/* 86 */_(ER_SESSION_CLOSED, "Session is closed") \
/* 87 */_(ER_ROLE_LOOP, "Granting role '%s' to role '%s' would create a loop") \
/* 88 */_(ER_GRANT, "Incorrect grant arguments: %s") \
/* 89 */_(ER_PRIV_GRANTED, "User '%s' already has %s access on %s '%s'") \
/* 89 */_(ER_PRIV_GRANTED, "User '%s' already has %s access on %s%s") \
/* 90 */_(ER_ROLE_GRANTED, "User '%s' already has role '%s'") \
/* 91 */_(ER_PRIV_NOT_GRANTED, "User '%s' does not have %s access on %s '%s'") \
/* 92 */_(ER_ROLE_NOT_GRANTED, "User '%s' does not have role '%s'") \
......
......@@ -2408,6 +2408,9 @@ local function grant(uid, name, privilege, object_type,
privilege == 'execute' then
box.error(box.error.ROLE_GRANTED, name, object_name)
else
if object_type ~= 'universe' then
object_name = string.format(" '%s'", object_name)
end
box.error(box.error.PRIV_GRANTED, name, privilege,
object_type, object_name)
end
......
......@@ -532,7 +532,7 @@ box.space._priv:select{id}
...
box.schema.user.grant('user', 'read', 'universe')
---
- error: User 'user' already has read access on universe ''
- error: User 'user' already has read access on universe
...
box.space._priv:select{id}
---
......@@ -738,7 +738,7 @@ box.schema.user.grant('guest', 'read,write,execute', 'universe')
...
box.schema.user.grant('guest', 'read,write,execute', 'universe')
---
- error: User 'guest' already has read,write,execute access on universe ''
- error: User 'guest' already has read,write,execute access on universe
...
box.schema.user.grant('guest', 'read,write,execute', 'universe', '', { if_not_exists = true })
---
......@@ -2108,3 +2108,29 @@ box.space._priv:delete{1, 'universe', 0}
---
- error: 'Incorrect grant arguments: can''t revoke universe from the admin user'
...
--
-- gh-714: box.schema.user.grant error should be versatile,
-- i.e. error on universally granted privileges shouldn't
-- include any redundant details and/or symbols.
--
box.schema.user.grant('guest', 'read,write,execute', 'universe')
---
...
box.schema.user.grant('guest', 'read,write,execute', 'universe')
---
- error: User 'guest' already has read,write,execute access on universe
...
-- Expected behavior of grant() error shouldn't change otherwise.
sp = box.schema.create_space('not_universe')
---
...
box.schema.user.grant('guest', 'read,write,execute', 'space', 'not_universe')
---
...
box.schema.user.grant('guest', 'read,write,execute', 'space', 'not_universe')
---
- error: User 'guest' already has read,write,execute access on space 'not_universe'
...
sp:drop()
---
...
......@@ -806,3 +806,17 @@ box.schema.user.drop("user3")
-- instance could not bootstrap nor recovery.
--
box.space._priv:delete{1, 'universe', 0}
--
-- gh-714: box.schema.user.grant error should be versatile,
-- i.e. error on universally granted privileges shouldn't
-- include any redundant details and/or symbols.
--
box.schema.user.grant('guest', 'read,write,execute', 'universe')
box.schema.user.grant('guest', 'read,write,execute', 'universe')
-- Expected behavior of grant() error shouldn't change otherwise.
sp = box.schema.create_space('not_universe')
box.schema.user.grant('guest', 'read,write,execute', 'space', 'not_universe')
box.schema.user.grant('guest', 'read,write,execute', 'space', 'not_universe')
sp:drop()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment