diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua index 3bfd430acf72d6024ddd2fcd606cfa9718803a92..ea072a45622aa254b798b9155b4177fcb20e8172 100644 --- a/src/box/lua/schema.lua +++ b/src/box/lua/schema.lua @@ -3242,7 +3242,8 @@ box.schema.user.passwd = function(name, new_password) if new_password == nil then -- change password for current user new_password = name - box.session.su('admin', chpasswd, session.uid(), new_password, name) + box.session.su('admin', chpasswd, session.uid(), new_password, + session.user()) else -- change password for other user local uid = user_resolve(name) diff --git a/test/box-luatest/fix-passing-password-instead-of-user-name-in-box-passwd_test.lua b/test/box-luatest/fix-passing-password-instead-of-user-name-in-box-passwd_test.lua new file mode 100644 index 0000000000000000000000000000000000000000..80193dbdde3465df61bfcff7e9522baa646fadd3 --- /dev/null +++ b/test/box-luatest/fix-passing-password-instead-of-user-name-in-box-passwd_test.lua @@ -0,0 +1,28 @@ +local server = require('luatest.server') +local t = require('luatest') + +local g = t.group() + +g.before_all(function() + g.server = server:new({alias = 'master'}) + g.server:start() +end) + +g.after_all(function() + g.server:stop() +end) + +g.test_box_password_without_username_argument = function() + t.assert(g.server:exec(function() + box.cfg{auth_type='md5'} + local user = 'admin' + local pass = 'dwsadwaeaDSdawDsa321_#!$' + box.session.su(user) + local hash = box.space._user:select(1)[1][5]['md5'] + t.assert_not_equals (hash, box.schema.user.password(pass, user)) + box.schema.user.passwd(pass) + hash = box.space._user:select(1)[1][5]['md5'] + t.assert_equals(hash, box.schema.user.password(pass, user)) + return true + end)) +end