static void getoptlogs() { char str[16] = {0}; int len = 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; } //find optlog Edi *db = ediOpen("db/muxnms.mdb", "mdb", EDI_AUTO_SAVE); // //删除7天前的日志 time_t curTime; time(&curTime); //EdiGrid *oldlogs = ediReadWhere(db, "optlog", "logtime", "<", curTime - 7*24*3600); EdiGrid *oldlogs = ediReadTable(db, "optlog"); //printf("========logs========>>>%s\n", ediGridAsJson(oldlogs, MPR_JSON_PRETTY)); for(len=0; len < oldlogs->nrecords; len++){ EdiRec *log = oldlogs->records[len]; if(atoi(mprGetJson(mprParseJson(ediRecAsJson(log, MPR_JSON_PRETTY)), "logtime")) < (curTime - 7*24*3600)){ ediRemoveRec(db, "optlog", log->id); } } EdiGrid *logs = ediReadTable(db, "optlog"); render(ediGridAsJson(logs, MPR_JSON_PRETTY)); }
PUBLIC ssize espSendRec(HttpConn *conn, EdiRec *rec, int flags) { httpSetContentType(conn, "application/json"); if (rec) { return espRender(conn, "{\n \"data\": %s, \"schema\": %s}\n", ediRecAsJson(rec, flags), ediGetRecSchemaAsJson(rec)); } return espRender(conn, "{}"); }
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); }
PUBLIC ssize espRenderRec(HttpConn *conn, EdiRec *rec, int flags) { httpAddHeaderString(conn, "Content-Type", "application/json"); return espRender(conn, "{\"data\": %s, \"schema\": %s}", ediRecAsJson(rec, flags), ediGetRecSchemaAsJson(rec)); }