static void setPassword(HttpConn *conn) { char str[16] = {0}; cchar *role = getSessionVar("role"); if(role == NULL){ rendersts(str, 9); render(str); return; } if((strcmp(role, "root") !=0) && (strcmp(role, "admin") !=0)){ rendersts(str, 5);//无权限 render(str); return; } MprJson *jsonparam = mprParseJson(espGetQueryString(conn)); cchar *oldpassword = mprGetJson(jsonparam, "oldpassword"); cchar *newpassword = mprGetJson(jsonparam, "newpassword"); cchar *username = getSessionVar("userName"); //Edi *db = ediOpen("db/muxnms.mdb", "mdb", EDI_AUTO_SAVE ); EdiRec *user = readRecWhere("user", "username", "==", username); MprJson *userjson = mprParseJson(ediRecAsJson(user, 0)); //printf("=======password====%s========%s\n", oldpassword, mprGetJson(userjson, "password")); if(strcmp(oldpassword, mprGetJson(userjson, "password")) == 0){ ediSetField(user, "password", newpassword); updateRec(user); rendersts(str, 1); }else{ rendersts(str, 0); } //ediClose(db); render(str); //add optlog Edi *db = ediOpen("db/muxnms.mdb", "mdb", EDI_AUTO_SAVE); EdiRec *optlog = ediCreateRec(db, "optlog"); if(optlog == NULL){ printf("================>>>optlog is NULL!!\n"); return; } time_t curTime; time(&curTime); memset(optstr, 0, 256); sprintf(optstr, "{'user': '******', 'desc': '用户修改了密码.', 'level': '2', 'logtime':'%d'}", getSessionVar("userName"), curTime); MprJson *row = mprParseJson(optstr); if(ediSetFields(optlog, row) == 0){ printf("================>>>ediSetFields Failed!!\n"); } ediUpdateRec(db, optlog); //ediClose(db); }
EdiRec *ediSetFields(EdiRec *rec, MprHash *params) { MprKey *kp; if (rec == 0) { return 0; } for (ITERATE_KEYS(params, kp)) { if (kp->type == MPR_JSON_ARRAY || kp->type == MPR_JSON_OBJ) { continue; } if (!ediSetField(rec, kp->key, kp->data)) { return 0; } } return rec; }
PUBLIC EdiRec *setField(EdiRec *rec, cchar *fieldName, cchar *value) { return ediSetField(rec, fieldName, value); }