<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">When granting or revoking a privilege on an entire entity, id 0 was used</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">to indicate the fact that we don't grant a privilege on a single object,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">but on a whole entity. This caused confusion, because for entity USER,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">for example, id 0 is a valid object id (user 'guest' uses it).</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">Any non-zero id dedicated to this cause obviously may be confused as well.</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">Fix this by creating separate schema_object_types for entities:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">SC_ENTITY_SPACE, SC_ENTITY_USER, etc.</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">Also now granting privileges on an entity (e.g. space) may be done in 2 ways:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">the old one: box.schema.user.grant('user', 'privilege', 'space')</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">the new one: box.schema.user.grant('user', 'privilege', 'all spaces')</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">The same applies to all entities.</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">Closes: #3574</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">Prerequisite: #3524</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">---</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><a href="https://github.com/tarantool/tarantool/tree/sergepetrenko/gh-3574-whole-entity-types" target="_blank" rel="noopener" style="color: rgb(0, 119, 204); font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class="">https://github.com/tarantool/tarantool/tree/sergepetrenko/gh-3574-whole-entity-types</a><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><a href="https://github.com/tarantool/tarantool/issues/3574" target="_blank" rel="noopener" style="color: rgb(0, 119, 204); font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class="">https://github.com/tarantool/tarantool/issues/3574</a><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> src/box/lua/schema.lua | 87 ++++++++++++++++++++++++++++++++++++++------------</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> src/box/<a href="http://schema.cc" class="">schema.cc</a> | 16 ++++++----</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> src/box/schema.h | 23 +++++++------</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> src/box/schema_def.c | 22 ++++++++-----</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> src/box/schema_def.h | 18 +++++++----</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> src/box/<a href="http://user.cc" class="">user.cc</a> | 27 +++++++++-------</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> test/box/access.result | 8 ++---</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> 7 files changed, 134 insertions(+), 67 deletions(-)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index b9b8c9004..eb984b1de 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/src/box/lua/schema.lua</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/src/box/lua/schema.lua</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -1731,14 +1731,21 @@ local priv_object_combo = {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     ["universe"] = box.priv.ALL,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> -- sic: we allow to grant 'execute' on space. This is a legacy</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> -- bug, please fix it in 2.0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- ["space"] = bit.bxor(box.priv.ALL, box.priv.S,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- box.priv.REVOKE, box.priv.GRANT),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- ["sequence"] = bit.bor(box.priv.R, box.priv.W, box.priv.U,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- box.priv.C, box.priv.A, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- ["function"] = bit.bor(box.priv.X, box.priv.U,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- box.priv.C, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- ["role"] = bit.bor(box.priv.X, box.priv.U,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- box.priv.C, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["space"] = bit.bxor(box.priv.ALL, box.priv.S, box.priv.C,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.REVOKE, box.priv.GRANT),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["all spaces"] = bit.bxor(box.priv.ALL, box.priv.S,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.REVOKE, box.priv.GRANT),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["sequence"] = bit.bor(box.priv.R, box.priv.W, box.priv.U,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.A, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["all sequences"] = bit.bor(box.priv.R, box.priv.W,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.C, box.priv.A, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["function"] = bit.bor(box.priv.X, box.priv.U,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["all functions"] = bit.bor(box.priv.X,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.C, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["role"] = bit.bor(box.priv.X, box.priv.U,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ ["all roles"] = bit.bor(box.priv.C, box.priv.D),</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> --</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -1808,10 +1815,34 @@ local function object_resolve(object_type, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if object_type == 'space' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if object_name == nil or object_name == 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_type == 'all spaces' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_name ~= nil and object_name ~= 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.error(box.error.ILLEGAL_PARAMS, "no object name allowed")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_type == 'all sequences' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_name ~= nil and object_name ~= 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.error(box.error.ILLEGAL_PARAMS, "no object name allowed")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_type == 'all functions' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_name ~= nil and object_name ~= 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.error(box.error.ILLEGAL_PARAMS, "no object name allowed")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_type == 'all roles' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_name ~= nil and object_name ~= 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ box.error(box.error.ILLEGAL_PARAMS, "no object name allowed")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_type == 'space' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       if object_name == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        return nil</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         local space = box.space[object_name]</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         if space == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">             box.error(box.error.NO_SUCH_SPACE, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -1819,9 +1850,9 @@ local function object_resolve(object_type, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         return <a href="http://space.id" class="">space.id</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     if object_type == 'function' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if object_name == nil or object_name == 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    if object_name == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        return nil</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         local _vfunc = box.space[box.schema.VFUNC_ID]</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         local func</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         if type(object_name) == 'string' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -1836,16 +1867,19 @@ local function object_resolve(object_type, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     if object_type == 'sequence' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if object_name == nil or object_name == 0 then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- local seq = sequence_resolve(object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_name == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       return nil</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       local seq = sequence_resolve(object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         if seq == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">             box.error(box.error.NO_SUCH_SEQUENCE, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         return seq</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     if object_type == 'role' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      if object_name == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        return nil</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         local _vuser = box.space[box.schema.VUSER_ID]</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         local role</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         if type(object_name) == 'string' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -1864,7 +1898,9 @@ local function object_resolve(object_type, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> local function object_name(object_type, object_id)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if object_type == 'universe' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if object_type == 'universe' or object_type == 'all spaces' or</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ object_type == 'all sequences' or object_type == 'all functions' or</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ object_type == 'all roles' or object_type == 'all users' then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         return ""</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     local space</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -2079,9 +2115,14 @@ local function grant(uid, name, privilege, object_type,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         object_name = privilege</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         privilege = 'execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- local privilege_hex = privilege_check(privilege, object_type)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     local oid = object_resolve(object_type, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ -- allow for old syntax to grant privileges on an entity</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if oid == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    oid = 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   object_type = 'all ' .. object_type .. 's'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ local privilege_hex = privilege_check(privilege, object_type)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     options = options or {}</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     if options.grantor == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         options.grantor = session.euid()</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -2122,9 +2163,13 @@ local function revoke(uid, name, privilege, object_type, object_name, options)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         object_name = privilege</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         privilege = 'execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- local privilege_hex = privilege_check(privilege, object_type)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     options = options or {}</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     local oid = object_resolve(object_type, object_name)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ if oid == nil then</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    oid = 0</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   object_type = 'all ' .. object_type .. 's'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ end</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ local privilege_hex = privilege_check(privilege, object_type)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     local _priv = box.space[box.schema.PRIV_ID]</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     local _vpriv = box.space[box.schema.VPRIV_ID]</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     local tuple = _vpriv:get{uid, object_type, oid}</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/src/box/<a href="http://schema.cc" class="">schema.cc</a> b/src/box/<a href="http://schema.cc" class="">schema.cc</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index 433f52c08..b81d2cd8a 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/src/box/<a href="http://schema.cc" class="">schema.cc</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/src/box/<a href="http://schema.cc" class="">schema.cc</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -536,10 +536,18 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">    switch (type) {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">       case SC_UNIVERSE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     return "";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      case SC_ENTITY_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+     return "SPACE";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ case SC_ENTITY_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  return "FUNCTION";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      case SC_ENTITY_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  return "SEQUENCE";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      case SC_ENTITY_ROLE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      return "ROLE";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  case SC_ENTITY_USER:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      return "USER";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">      case SC_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">        {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if (object_id == 0)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       return "SPACE";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     struct space *space = space_by_id(object_id);</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         if (space == NULL)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">    break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -547,8 +555,6 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     case SC_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if (object_id == 0)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       return "FUNCTION";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">  struct func *func = func_by_id(object_id);</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">    if (func == NULL)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -556,8 +562,6 @@ schema_find_name(enum schema_object_type type, uint32_t object_id)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     case SC_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if (object_id == 0)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       return "SEQUENCE";</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">  struct sequence *seq = sequence_by_id(object_id);</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     if (seq == NULL)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">      break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/src/box/schema.h b/src/box/schema.h</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index 0822262d0..f1735ff34 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/src/box/schema.h</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/src/box/schema.h</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -250,16 +250,19 @@ static inline</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> struct access *</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> entity_access_get(enum schema_object_type type)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- switch (type) {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- case SC_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return entity_access.space;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- case SC_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return entity_access.function;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- case SC_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return entity_access.sequence;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- default:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- return NULL;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  switch (type) {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   case SC_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    case SC_ENTITY_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+     return entity_access.space;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       case SC_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ case SC_ENTITY_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  return entity_access.function;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    case SC_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ case SC_ENTITY_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  return entity_access.sequence;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    default:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  return NULL;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> #endif /* INCLUDES_TARANTOOL_BOX_SCHEMA_H */</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/src/box/schema_def.c b/src/box/schema_def.c</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index 97c074ab2..caec2e00d 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/src/box/schema_def.c</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/src/box/schema_def.c</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -31,14 +31,20 @@</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> #include "schema_def.h"</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> static const char *object_type_strs[] = {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       /* [SC_UKNNOWN] = */ "unknown",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- /* [SC_UNIVERSE] = */ "universe",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       /* [SC_SPACE] = */ "space",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-     /* [SC_FUNCTION] = */ "function",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       /* [SC_USER] = */ "user",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       /* [SC_ROLE] = */ "role",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       /* [SC_SEQUENCE] = */ "sequence",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-       /* [SC_COLLATION] = */ "collation",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+     /* [SC_UKNNOWN] = */ "unknown",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ /* [SC_UNIVERSE]        = */ "universe",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        /* [SC_SPACE]   = */ "space",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   /* [SC_ENTITY_SPACE]    = */ "all spaces",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      /* [SC_FUNCTION]        = */ "function",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        /* [SC_ENTITY_FUNCTION] = */ "all functions",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   /* [SC_USER]    = */ "user",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    /* [SC_ENTITY_USER]     = */ "all users",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       /* [SC_ROLE]    = */ "role",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    /* [SC_ENTITY_ROLE]     = */ "all roles",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       /* [SC_SEQUENCE]        = */ "sequence",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        /* [SC_ENTITY_SEQUENCE] = */ "all sequences",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   /* [SC_COLLATION]       = */ "collation",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       /* [SC_ENTITY_COLLATION] = */ "all collations",</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> };</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> enum schema_object_type</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/src/box/schema_def.h b/src/box/schema_def.h</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index 2edb8d37f..0c917094c 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/src/box/schema_def.h</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/src/box/schema_def.h</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -223,12 +223,18 @@ enum schema_object_type {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">      SC_UNKNOWN = 0,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">       SC_UNIVERSE = 1,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">      SC_SPACE = 2,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-     SC_FUNCTION = 3,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-  SC_USER = 4,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-      SC_ROLE = 5,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-      SC_SEQUENCE = 6,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-  SC_COLLATION = 7,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- schema_object_type_MAX = 8</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        SC_ENTITY_SPACE = 3,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      SC_FUNCTION = 4,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  SC_ENTITY_FUNCTION = 5,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+   SC_USER = 6,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      SC_ENTITY_USER = 7,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       SC_ROLE = 8,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+      SC_ENTITY_ROLE = 9,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+       SC_SEQUENCE = 10,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ SC_ENTITY_SEQUENCE = 11,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  SC_COLLATION = 12,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+        SC_ENTITY_COLLATION = 13,</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ schema_object_type_MAX = 13</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> };</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> enum schema_object_type</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/src/box/<a href="http://user.cc" class="">user.cc</a> b/src/box/<a href="http://user.cc" class="">user.cc</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index fbf06566a..eec785652 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/src/box/<a href="http://user.cc" class="">user.cc</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/src/box/<a href="http://user.cc" class="">user.cc</a></span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -207,12 +207,23 @@ access_find(struct priv_def *priv)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">       access = universe.access;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">        }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ case SC_ENTITY_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+     {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ access = entity_access.space;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+     break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ case SC_ENTITY_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ access = entity_access.function;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ case SC_ENTITY_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+ access = entity_access.sequence;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+  break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+    }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     case SC_SPACE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">        {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if (priv->object_id == 0) {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-    access = entity_access.space;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-     break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-    }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     struct space *space = space_by_id(priv->object_id);</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">        if (space)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">    access = space->access;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -220,10 +231,6 @@ access_find(struct priv_def *priv)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">        }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     case SC_FUNCTION:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if (priv->object_id == 0) {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-    access = entity_access.function;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-  break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-    }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     struct func *func = func_by_id(priv->object_id);</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">   if (func)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     access = func->access;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -231,10 +238,6 @@ access_find(struct priv_def *priv)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">         }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     case SC_SEQUENCE:</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">- if (priv->object_id == 0) {</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-    access = entity_access.sequence;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-  break;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-    }</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">     struct sequence *seq = sequence_by_id(priv->object_id);</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">    if (seq)</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">      access = seq->access;</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">diff --git a/test/box/access.result b/test/box/access.result</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">index f4669a4a3..30fcb6455 100644</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">--- a/test/box/access.result</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+++ b/test/box/access.result</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">@@ -1733,19 +1733,19 @@ box.session.su('admin')</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> -- prerequisite gh-945</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> box.schema.user.grant("guest", "alter", "function")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ---</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-- error: Unsupported function privilege 'alter'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+- error: Unsupported all functions privilege 'alter'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ...</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> box.schema.user.grant("guest", "execute", "sequence")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ---</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-- error: Unsupported sequence privilege 'execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+- error: Unsupported all sequences privilege 'execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ...</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> box.schema.user.grant("guest", "read,execute", "sequence")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ---</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-- error: Unsupported sequence privilege 'read,execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+- error: Unsupported all sequences privilege 'read,execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ...</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> box.schema.user.grant("guest", "read,write,execute", "role")</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ---</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-- error: Unsupported role privilege 'read,write,execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">+- error: Unsupported all roles privilege 'read,write,execute'</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> ...</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> -- Check entities DML</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class=""> box.schema.user.create("tester", { password = '123' })</span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">-- </span><br style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px;" class=""><span style="font-family: Helvetica, Arial, Tahoma, Verdana, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);" class="">2.15.2 (Apple Git-101.1)</span></div></body></html>