Merge pull request #1690 from taosdata/feature/alter
fix bug while release users
This commit is contained in:
commit
dcb309cedc
|
@ -24,10 +24,10 @@ extern "C" {
|
|||
|
||||
int32_t mgmtInitAccts();
|
||||
void mgmtCleanUpAccts();
|
||||
void *mgmtGetAcct(char *acctName);
|
||||
void * mgmtGetAcct(char *acctName);
|
||||
void * mgmtGetNextAcct(void *pNode, SAcctObj **pAcct);
|
||||
void mgmtIncAcctRef(SAcctObj *pAcct);
|
||||
void mgmtDecAcctRef(SAcctObj *pAcct);
|
||||
|
||||
void mgmtAddDbToAcct(SAcctObj *pAcct, SDbObj *pDb);
|
||||
void mgmtDropDbFromAcct(SAcctObj *pAcct, SDbObj *pDb);
|
||||
void mgmtAddUserToAcct(SAcctObj *pAcct, SUserObj *pUser);
|
||||
|
|
|
@ -58,6 +58,7 @@ static int32_t mgmtActionAcctUpdate(SSdbOper *pOper) {
|
|||
memcpy(pSaved, pAcct, tsAcctUpdateSize);
|
||||
free(pAcct);
|
||||
}
|
||||
mgmtDecAcctRef(pSaved);
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -106,11 +107,11 @@ int32_t mgmtInitAccts() {
|
|||
|
||||
tsAcctSdb = sdbOpenTable(&tableDesc);
|
||||
if (tsAcctSdb == NULL) {
|
||||
mError("failed to init acct data");
|
||||
mError("table:%s, failed to create hash", tableDesc.tableName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
mTrace("table:accounts table is created");
|
||||
mTrace("table:%s, hash is created", tableDesc.tableName);
|
||||
return acctInit();
|
||||
}
|
||||
|
||||
|
@ -123,6 +124,10 @@ void *mgmtGetAcct(char *name) {
|
|||
return sdbGetRow(tsAcctSdb, name);
|
||||
}
|
||||
|
||||
void *mgmtGetNextAcct(void *pNode, SAcctObj **pAcct) {
|
||||
return sdbFetchRow(tsAcctSdb, pNode, (void **)pAcct);
|
||||
}
|
||||
|
||||
void mgmtIncAcctRef(SAcctObj *pAcct) {
|
||||
sdbIncRef(tsAcctSdb, pAcct);
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ static int32_t mgmtDbActionInsert(SSdbOper *pOper) {
|
|||
|
||||
if (pAcct != NULL) {
|
||||
mgmtAddDbToAcct(pAcct, pDb);
|
||||
mgmtDecAcctRef(pAcct);
|
||||
}
|
||||
else {
|
||||
mError("db:%s, acct:%s info not exist in sdb", pDb->name, pDb->cfg.acct);
|
||||
|
@ -80,6 +81,7 @@ static int32_t mgmtDbActionDelete(SSdbOper *pOper) {
|
|||
mgmtDropAllChildTables(pDb);
|
||||
mgmtDropAllSuperTables(pDb);
|
||||
mgmtDropAllVgroups(pDb);
|
||||
mgmtDecAcctRef(pAcct);
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -508,7 +508,10 @@ static int32_t mgmtGetDnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pCo
|
|||
SUserObj *pUser = mgmtGetUserFromConn(pConn, NULL);
|
||||
if (pUser == NULL) return 0;
|
||||
|
||||
if (strcmp(pUser->pAcct->user, "root") != 0) return TSDB_CODE_NO_RIGHTS;
|
||||
if (strcmp(pUser->pAcct->user, "root") != 0) {
|
||||
mgmtDecUserRef(pUser);
|
||||
return TSDB_CODE_NO_RIGHTS;
|
||||
}
|
||||
|
||||
int32_t cols = 0;
|
||||
SSchema *pSchema = pMeta->schema;
|
||||
|
@ -635,7 +638,10 @@ static int32_t mgmtGetModuleMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pC
|
|||
SUserObj *pUser = mgmtGetUserFromConn(pConn, NULL);
|
||||
if (pUser == NULL) return 0;
|
||||
|
||||
if (strcmp(pUser->user, "root") != 0) return TSDB_CODE_NO_RIGHTS;
|
||||
if (strcmp(pUser->user, "root") != 0) {
|
||||
mgmtDecUserRef(pUser);
|
||||
return TSDB_CODE_NO_RIGHTS;
|
||||
}
|
||||
|
||||
SSchema *pSchema = pMeta->schema;
|
||||
|
||||
|
@ -744,7 +750,10 @@ static int32_t mgmtGetConfigMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pC
|
|||
SUserObj *pUser = mgmtGetUserFromConn(pConn, NULL);
|
||||
if (pUser == NULL) return 0;
|
||||
|
||||
if (strcmp(pUser->user, "root") != 0) return TSDB_CODE_NO_RIGHTS;
|
||||
if (strcmp(pUser->user, "root") != 0) {
|
||||
mgmtDecUserRef(pUser);
|
||||
return TSDB_CODE_NO_RIGHTS;
|
||||
}
|
||||
|
||||
SSchema *pSchema = pMeta->schema;
|
||||
|
||||
|
@ -827,7 +836,11 @@ static int32_t mgmtGetVnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pCo
|
|||
int32_t cols = 0;
|
||||
SUserObj *pUser = mgmtGetUserFromConn(pConn, NULL);
|
||||
if (pUser == NULL) return 0;
|
||||
if (strcmp(pUser->user, "root") != 0) return TSDB_CODE_NO_RIGHTS;
|
||||
|
||||
if (strcmp(pUser->user, "root") != 0) {
|
||||
mgmtDecUserRef(pUser);
|
||||
return TSDB_CODE_NO_RIGHTS;
|
||||
}
|
||||
|
||||
SSchema *pSchema = pMeta->schema;
|
||||
|
||||
|
|
|
@ -268,7 +268,10 @@ static int32_t mgmtGetMnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pCo
|
|||
SUserObj *pUser = mgmtGetUserFromConn(pConn, NULL);
|
||||
if (pUser == NULL) return 0;
|
||||
|
||||
if (strcmp(pUser->pAcct->user, "root") != 0) return TSDB_CODE_NO_RIGHTS;
|
||||
if (strcmp(pUser->pAcct->user, "root") != 0) {
|
||||
mgmtDecUserRef(pUser);
|
||||
return TSDB_CODE_NO_RIGHTS;
|
||||
}
|
||||
|
||||
int32_t cols = 0;
|
||||
SSchema *pSchema = pMeta->schema;
|
||||
|
|
|
@ -704,6 +704,7 @@ void mgmtProcessKillQueryMsg(SQueuedMsg *pMsg) {
|
|||
|
||||
rpcRsp.code = code;
|
||||
rpcSendResponse(&rpcRsp);
|
||||
mgmtDecUserRef(pUser);
|
||||
}
|
||||
|
||||
void mgmtProcessKillStreamMsg(SQueuedMsg *pMsg) {
|
||||
|
@ -727,6 +728,7 @@ void mgmtProcessKillStreamMsg(SQueuedMsg *pMsg) {
|
|||
|
||||
rpcRsp.code = code;
|
||||
rpcSendResponse(&rpcRsp);
|
||||
mgmtDecUserRef(pUser);
|
||||
}
|
||||
|
||||
void mgmtProcessKillConnectionMsg(SQueuedMsg *pMsg) {
|
||||
|
@ -750,6 +752,7 @@ void mgmtProcessKillConnectionMsg(SQueuedMsg *pMsg) {
|
|||
|
||||
rpcRsp.code = code;
|
||||
rpcSendResponse(&rpcRsp);
|
||||
mgmtDecUserRef(pUser);
|
||||
}
|
||||
|
||||
int32_t mgmtInitProfile() {
|
||||
|
|
|
@ -371,7 +371,6 @@ static int mgmtShellRetriveAuth(char *user, char *spi, char *encrypt, char *secr
|
|||
SUserObj *pUser = mgmtGetUser(user);
|
||||
if (pUser == NULL) {
|
||||
*secret = 0;
|
||||
mgmtDecUserRef(pUser);
|
||||
return TSDB_CODE_INVALID_USER;
|
||||
} else {
|
||||
memcpy(secret, pUser->pass, TSDB_KEY_LEN);
|
||||
|
|
|
@ -108,7 +108,7 @@ static int32_t mgmtChildTableActionInsert(SSdbOper *pOper) {
|
|||
|
||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
||||
if (pAcct == NULL) {
|
||||
mError("ctable:%s, account:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
||||
mError("ctable:%s, acct:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
||||
return TSDB_CODE_INVALID_ACCT;
|
||||
}
|
||||
mgmtDecAcctRef(pAcct);
|
||||
|
@ -150,7 +150,7 @@ static int32_t mgmtChildTableActionDelete(SSdbOper *pOper) {
|
|||
|
||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
||||
if (pAcct == NULL) {
|
||||
mError("ctable:%s, account:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
||||
mError("ctable:%s, acct:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
||||
return TSDB_CODE_INVALID_ACCT;
|
||||
}
|
||||
mgmtDecAcctRef(pAcct);
|
||||
|
|
|
@ -63,6 +63,7 @@ static int32_t mgmtUserActionDelete(SSdbOper *pOper) {
|
|||
|
||||
if (pAcct != NULL) {
|
||||
mgmtDropUserFromAcct(pAcct, pUser);
|
||||
mgmtDecAcctRef(pAcct);
|
||||
}
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
|
@ -72,9 +73,10 @@ static int32_t mgmtUserActionUpdate(SSdbOper *pOper) {
|
|||
SUserObj *pUser = pOper->pObj;
|
||||
SUserObj *pSaved = mgmtGetUser(pUser->user);
|
||||
if (pUser != pSaved) {
|
||||
memcpy(pSaved, pUser, pOper->rowSize);
|
||||
memcpy(pSaved, pUser, tsUserUpdateSize);
|
||||
free(pUser);
|
||||
}
|
||||
mgmtDecUserRef(pSaved);
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue