修改密码时,需要使用旧密码进行确认
This commit is contained in:
parent
fa5e152e58
commit
0a27f3f095
|
@ -111,7 +111,7 @@ HGResult HGAPI HGPdtToolDb_SetPassword(HGPdtToolDbUserMgr userMgr, const HGChar*
|
||||||
return userMgrImpl->SetPassword(userName, pwd);
|
return userMgrImpl->SetPassword(userName, pwd);
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* newPwd)
|
HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* oldPwd, const HGChar* newPwd)
|
||||||
{
|
{
|
||||||
if (NULL == userMgr)
|
if (NULL == userMgr)
|
||||||
{
|
{
|
||||||
|
@ -119,7 +119,7 @@ HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGCh
|
||||||
}
|
}
|
||||||
|
|
||||||
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
|
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
|
||||||
return userMgrImpl->ModifyPassword(newPwd);
|
return userMgrImpl->ModifyPassword(oldPwd, newPwd);
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar* xlsPath)
|
HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar* xlsPath)
|
||||||
|
|
|
@ -123,7 +123,7 @@ HGEXPORT HGResult HGAPI HGPdtToolDb_DestroyUser(HGPdtToolDbUserMgr userMgr, cons
|
||||||
HGEXPORT HGResult HGAPI HGPdtToolDb_SetPassword(HGPdtToolDbUserMgr userMgr, const HGChar* userName, const HGChar* pwd);
|
HGEXPORT HGResult HGAPI HGPdtToolDb_SetPassword(HGPdtToolDbUserMgr userMgr, const HGChar* userName, const HGChar* pwd);
|
||||||
|
|
||||||
/* 修改本账户的密码 */
|
/* 修改本账户的密码 */
|
||||||
HGEXPORT HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* newPwd);
|
HGEXPORT HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* oldPwd, const HGChar* newPwd);
|
||||||
|
|
||||||
/* 导出所有设备测试信息到XLS文件,需要管理员账户才能调用 */
|
/* 导出所有设备测试信息到XLS文件,需要管理员账户才能调用 */
|
||||||
HGEXPORT HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar *xlsPath);
|
HGEXPORT HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar *xlsPath);
|
||||||
|
|
|
@ -305,17 +305,9 @@ HGResult HGPdtToolDbUserMgrImpl::CreateUser(const HGChar* userName, const HGChar
|
||||||
}
|
}
|
||||||
|
|
||||||
char sqlCmd[1024] = {0};
|
char sqlCmd[1024] = {0};
|
||||||
sprintf(sqlCmd, "create user '%s'@'%%' identified by '%s';", userName, defPwd);
|
sprintf(sqlCmd, "grant all privileges on huago_production_tool.* to '%s'@'%%' identified by '%s';", userName, defPwd);
|
||||||
int ret = mysql_query(m_sql, sqlCmd);
|
int ret = mysql_query(m_sql, sqlCmd);
|
||||||
if (0 != ret)
|
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
|
||||||
{
|
|
||||||
return HGBASE_ERR_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
sprintf(sqlCmd, "grant all privileges on huago_production_tool.* to '%s'@'%%' with grant option;", userName);
|
|
||||||
ret = mysql_query(m_sql, sqlCmd);
|
|
||||||
assert(0 == ret);
|
|
||||||
return HGBASE_ERR_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName)
|
HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName)
|
||||||
|
@ -373,21 +365,61 @@ HGResult HGPdtToolDbUserMgrImpl::SetPassword(const HGChar* userName, const HGCha
|
||||||
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
|
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* newPwd)
|
HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* oldPwd, const HGChar* newPwd)
|
||||||
{
|
{
|
||||||
if (NULL == m_sql)
|
if (NULL == m_sql)
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_FAIL;
|
return HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL == newPwd || 0 == *newPwd)
|
if (NULL == oldPwd || 0 == *oldPwd || NULL == newPwd || 0 == *newPwd)
|
||||||
{
|
{
|
||||||
return HGBASE_ERR_INVALIDARG;
|
return HGBASE_ERR_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string oldAuthStr;
|
||||||
char sqlCmd[1024] = { 0 };
|
char sqlCmd[1024] = { 0 };
|
||||||
sprintf(sqlCmd, "set password for '%s'@'%%' = password('%s');", m_userName.c_str(), newPwd);
|
sprintf(sqlCmd, "select authentication_string from mysql.user where user = '%s' and host = '%%';", m_userName.c_str());
|
||||||
int ret = mysql_query(m_sql, sqlCmd);
|
int ret = mysql_query(m_sql, sqlCmd);
|
||||||
|
if (0 == ret)
|
||||||
|
{
|
||||||
|
MYSQL_RES* sqlRes = mysql_use_result(m_sql);
|
||||||
|
if (NULL != sqlRes)
|
||||||
|
{
|
||||||
|
MYSQL_ROW row = mysql_fetch_row(sqlRes);
|
||||||
|
assert(NULL != row[0]);
|
||||||
|
oldAuthStr = row[0];
|
||||||
|
mysql_free_result(sqlRes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldAuthStr.empty())
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string oldAuthStr2;
|
||||||
|
sprintf(sqlCmd, "select password('%s');", oldPwd);
|
||||||
|
ret = mysql_query(m_sql, sqlCmd);
|
||||||
|
if (0 == ret)
|
||||||
|
{
|
||||||
|
MYSQL_RES* sqlRes = mysql_use_result(m_sql);
|
||||||
|
if (NULL != sqlRes)
|
||||||
|
{
|
||||||
|
MYSQL_ROW row = mysql_fetch_row(sqlRes);
|
||||||
|
assert(NULL != row[0]);
|
||||||
|
oldAuthStr2 = row[0];
|
||||||
|
mysql_free_result(sqlRes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 != strcmp(oldAuthStr.c_str(), oldAuthStr2.c_str()))
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(sqlCmd, "set password for '%s'@'%%' = password('%s');", m_userName.c_str(), newPwd);
|
||||||
|
ret = mysql_query(m_sql, sqlCmd);
|
||||||
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
|
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ public:
|
||||||
HGResult CreateUser(const HGChar* userName, const HGChar* defPwd);
|
HGResult CreateUser(const HGChar* userName, const HGChar* defPwd);
|
||||||
HGResult DestroyUser(const HGChar* userName);
|
HGResult DestroyUser(const HGChar* userName);
|
||||||
HGResult SetPassword(const HGChar* userName, const HGChar* pwd);
|
HGResult SetPassword(const HGChar* userName, const HGChar* pwd);
|
||||||
HGResult ModifyPassword(const HGChar* newPwd);
|
HGResult ModifyPassword(const HGChar* oldPwd, const HGChar* newPwd);
|
||||||
HGResult Export(const HGChar* xlsPath);
|
HGResult Export(const HGChar* xlsPath);
|
||||||
HGResult GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen);
|
HGResult GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen);
|
||||||
HGResult SetConfig(const HGChar* key, const HGChar *value);
|
HGResult SetConfig(const HGChar* key, const HGChar *value);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
HGPdtToolDbUserMgr userMgr = NULL;
|
HGPdtToolDbUserMgr userMgr = NULL;
|
||||||
HGPdtToolDb_CreateUserMgr("192.168.1.70", 3306, "root", "123456", &userMgr);
|
HGPdtToolDb_CreateUserMgr("127.0.0.1", 3306, "root", "123456", &userMgr);
|
||||||
if (NULL != userMgr)
|
if (NULL != userMgr)
|
||||||
{
|
{
|
||||||
HGChar* name[256];
|
HGChar* name[256];
|
||||||
|
@ -14,8 +14,8 @@ int main()
|
||||||
|
|
||||||
//HGPdtToolDb_DestroyUser(userMgr, "huago");
|
//HGPdtToolDb_DestroyUser(userMgr, "huago");
|
||||||
|
|
||||||
HGPdtToolDb_CreateUser(userMgr, "huago", "huago");
|
//HGPdtToolDb_CreateUser(userMgr, "huago", "huago");
|
||||||
//HGPdtToolDb_ModifyPassword(userMgr, "654321");
|
HGPdtToolDb_ModifyPassword(userMgr, "12345", "123456");
|
||||||
//HGPdtToolDb_SetPassword(userMgr, "huago", "qqq");
|
//HGPdtToolDb_SetPassword(userMgr, "huago", "qqq");
|
||||||
|
|
||||||
HGPdtToolDbDevice device = NULL;
|
HGPdtToolDbDevice device = NULL;
|
||||||
|
|
Loading…
Reference in New Issue