00001
00002
00003
00004 #include "auditUtil.h"
00005 #include "eraUtil.h"
00006
00007
00008
00009
00010
00011 int
00012 getAuditTrailInfoByUserID(char *userID, bytesBuf_t *mybuf, rsComm_t *rsComm)
00013 {
00014 genQueryInp_t genQueryInp;
00015 genQueryOut_t *genQueryOut;
00016 char condStr[MAX_NAME_LEN];
00017 int status;
00018 char *attrs[] = {"audit_item", "object_id", "user_id", "action_id", "r_comment", "create_ts", "modify_ts"};
00019
00020
00021 if (rsComm == NULL) {
00022 rodsLog (LOG_ERROR, "getAuditTrailInfoByUserID: input rsComm is NULL");
00023 return (SYS_INTERNAL_NULL_INPUT_ERR);
00024 }
00025
00026
00027 if (userID == NULL) {
00028 rodsLog (LOG_ERROR, "getAuditTrailInfoByUserID: userID input is NULL");
00029 return (USER__NULL_INPUT_ERR);
00030 }
00031
00032
00033
00034 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
00035
00036
00037 addInxIval (&genQueryInp.selectInp, COL_AUDIT_OBJ_ID, 1);
00038 addInxIval (&genQueryInp.selectInp, COL_AUDIT_USER_ID, 1);
00039 addInxIval (&genQueryInp.selectInp, COL_AUDIT_ACTION_ID, 1);
00040 addInxIval (&genQueryInp.selectInp, COL_AUDIT_COMMENT, 1);
00041 addInxIval (&genQueryInp.selectInp, COL_AUDIT_CREATE_TIME, ORDER_BY);
00042 addInxIval (&genQueryInp.selectInp, COL_AUDIT_MODIFY_TIME, 1);
00043
00044
00045
00046 snprintf (condStr, MAX_NAME_LEN, " = '%s'", userID);
00047 addInxVal (&genQueryInp.sqlCondInp, COL_AUDIT_USER_ID, condStr);
00048
00049 genQueryInp.maxRows = MAX_SQL_ROWS;
00050
00051
00052
00053 status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00054
00055
00056 if (status == 0) {
00057 genQueryOutToXML(genQueryOut, mybuf, attrs);
00058
00059
00060 while (status==0 && genQueryOut->continueInx > 0) {
00061 genQueryInp.continueInx=genQueryOut->continueInx;
00062 status = rsGenQuery(rsComm, &genQueryInp, &genQueryOut);
00063
00064 genQueryOutToXML(genQueryOut, mybuf, attrs);
00065 }
00066 }
00067
00068
00069 return (0);
00070 }
00071
00072
00073
00074
00075
00076
00077
00078 int
00079 getAuditTrailInfoByObjectID(char *objectID, bytesBuf_t *mybuf, rsComm_t *rsComm)
00080 {
00081 genQueryInp_t genQueryInp;
00082 genQueryOut_t *genQueryOut;
00083 char condStr[MAX_NAME_LEN];
00084 int status;
00085 char *attrs[] = {"audit_item", "object_id", "user_id", "action_id", "r_comment", "create_ts", "modify_ts"};
00086
00087
00088 if (rsComm == NULL) {
00089 rodsLog (LOG_ERROR, "getAuditTrailInfoByObjectID: input rsComm is NULL");
00090 return (SYS_INTERNAL_NULL_INPUT_ERR);
00091 }
00092
00093
00094 if (objectID == NULL) {
00095 rodsLog (LOG_ERROR, "getAuditTrailInfoByObjectID: objectID input is NULL");
00096 return (USER__NULL_INPUT_ERR);
00097 }
00098
00099
00100
00101 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
00102
00103
00104 addInxIval (&genQueryInp.selectInp, COL_AUDIT_OBJ_ID, 1);
00105 addInxIval (&genQueryInp.selectInp, COL_AUDIT_USER_ID, 1);
00106 addInxIval (&genQueryInp.selectInp, COL_AUDIT_ACTION_ID, 1);
00107 addInxIval (&genQueryInp.selectInp, COL_AUDIT_COMMENT, 1);
00108 addInxIval (&genQueryInp.selectInp, COL_AUDIT_CREATE_TIME, ORDER_BY);
00109 addInxIval (&genQueryInp.selectInp, COL_AUDIT_MODIFY_TIME, 1);
00110
00111
00112
00113 snprintf (condStr, MAX_NAME_LEN, " = '%s'", objectID);
00114 addInxVal (&genQueryInp.sqlCondInp, COL_AUDIT_OBJ_ID, condStr);
00115
00116 genQueryInp.maxRows = MAX_SQL_ROWS;
00117
00118
00119
00120 status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00121
00122
00123 if (status == 0) {
00124 genQueryOutToXML(genQueryOut, mybuf, attrs);
00125
00126
00127 while (status==0 && genQueryOut->continueInx > 0) {
00128 genQueryInp.continueInx=genQueryOut->continueInx;
00129 status = rsGenQuery(rsComm, &genQueryInp, &genQueryOut);
00130
00131 genQueryOutToXML(genQueryOut, mybuf, attrs);
00132 }
00133 }
00134
00135
00136 return (0);
00137 }
00138
00139
00140
00141
00142
00143
00144
00145 int
00146 getAuditTrailInfoByActionID(char *actionID, bytesBuf_t *mybuf, rsComm_t *rsComm)
00147 {
00148 genQueryInp_t genQueryInp;
00149 genQueryOut_t *genQueryOut;
00150 char condStr[MAX_NAME_LEN];
00151 int status;
00152 char *attrs[] = {"audit_item", "object_id", "user_id", "action_id", "r_comment", "create_ts", "modify_ts"};
00153
00154
00155 if (rsComm == NULL) {
00156 rodsLog (LOG_ERROR, "getAuditTrailInfoByActionID: input rsComm is NULL");
00157 return (SYS_INTERNAL_NULL_INPUT_ERR);
00158 }
00159
00160
00161 if (actionID == NULL) {
00162 rodsLog (LOG_ERROR, "getAuditTrailInfoByActionID: actionID input is NULL");
00163 return (USER__NULL_INPUT_ERR);
00164 }
00165
00166
00167
00168 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
00169
00170
00171 addInxIval (&genQueryInp.selectInp, COL_AUDIT_OBJ_ID, 1);
00172 addInxIval (&genQueryInp.selectInp, COL_AUDIT_USER_ID, 1);
00173 addInxIval (&genQueryInp.selectInp, COL_AUDIT_ACTION_ID, 1);
00174 addInxIval (&genQueryInp.selectInp, COL_AUDIT_COMMENT, 1);
00175 addInxIval (&genQueryInp.selectInp, COL_AUDIT_CREATE_TIME, ORDER_BY);
00176 addInxIval (&genQueryInp.selectInp, COL_AUDIT_MODIFY_TIME, 1);
00177
00178
00179
00180 snprintf (condStr, MAX_NAME_LEN, " = '%s'", actionID);
00181 addInxVal (&genQueryInp.sqlCondInp, COL_AUDIT_ACTION_ID, condStr);
00182
00183 genQueryInp.maxRows = MAX_SQL_ROWS;
00184
00185
00186
00187 status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00188
00189
00190 if (status == 0) {
00191 genQueryOutToXML(genQueryOut, mybuf, attrs);
00192
00193
00194 while (status==0 && genQueryOut->continueInx > 0) {
00195 genQueryInp.continueInx=genQueryOut->continueInx;
00196 status = rsGenQuery(rsComm, &genQueryInp, &genQueryOut);
00197
00198 genQueryOutToXML(genQueryOut, mybuf, attrs);
00199 }
00200 }
00201
00202
00203 return (0);
00204 }
00205
00206
00207
00208
00209
00210
00211
00212 int
00213 getAuditTrailInfoByKeywords(char *keywordStr, bytesBuf_t *mybuf, rsComm_t *rsComm)
00214 {
00215 genQueryInp_t genQueryInp;
00216 genQueryOut_t *genQueryOut;
00217 char condStr[MAX_NAME_LEN];
00218 int status;
00219 char *attrs[] = {"audit_item", "object_id", "user_id", "action_id", "r_comment", "create_ts", "modify_ts"};
00220
00221
00222 if (rsComm == NULL) {
00223 rodsLog (LOG_ERROR, "getAuditTrailInfoByKeywords: input rsComm is NULL");
00224 return (SYS_INTERNAL_NULL_INPUT_ERR);
00225 }
00226
00227
00228 if (keywordStr == NULL) {
00229 rodsLog (LOG_ERROR, "getAuditTrailInfoByKeywords: keywordStr input is NULL");
00230 return (USER__NULL_INPUT_ERR);
00231 }
00232
00233
00234
00235 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
00236
00237
00238 addInxIval (&genQueryInp.selectInp, COL_AUDIT_OBJ_ID, 1);
00239 addInxIval (&genQueryInp.selectInp, COL_AUDIT_USER_ID, 1);
00240 addInxIval (&genQueryInp.selectInp, COL_AUDIT_ACTION_ID, 1);
00241 addInxIval (&genQueryInp.selectInp, COL_AUDIT_COMMENT, 1);
00242 addInxIval (&genQueryInp.selectInp, COL_AUDIT_CREATE_TIME, ORDER_BY);
00243 addInxIval (&genQueryInp.selectInp, COL_AUDIT_MODIFY_TIME, 1);
00244
00245
00246
00247
00248 if (strstr(keywordStr, "%")) {
00249 snprintf (condStr, MAX_NAME_LEN, " like '%s'", keywordStr);
00250 }
00251 else {
00252 snprintf (condStr, MAX_NAME_LEN, " = '%s'", keywordStr);
00253 }
00254
00255 addInxVal (&genQueryInp.sqlCondInp, COL_AUDIT_COMMENT, condStr);
00256
00257
00258
00259
00260 genQueryInp.maxRows = MAX_SQL_ROWS;
00261
00262
00263
00264 status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00265
00266
00267 if (status == 0) {
00268 genQueryOutToXML(genQueryOut, mybuf, attrs);
00269
00270
00271 while (status==0 && genQueryOut->continueInx > 0) {
00272 genQueryInp.continueInx=genQueryOut->continueInx;
00273 status = rsGenQuery(rsComm, &genQueryInp, &genQueryOut);
00274
00275 genQueryOutToXML(genQueryOut, mybuf, attrs);
00276 }
00277 }
00278
00279
00280 return (0);
00281 }
00282
00283
00284
00285
00286
00287
00288
00289 int
00290 getAuditTrailInfoByTimeStamp(char *begTS, char *endTS, bytesBuf_t *mybuf, rsComm_t *rsComm)
00291 {
00292 genQueryInp_t genQueryInp;
00293 genQueryOut_t *genQueryOut;
00294 char condStr[MAX_NAME_LEN];
00295 int status;
00296 char *attrs[] = {"audit_item", "object_id", "user_id", "action_id", "r_comment", "create_ts", "modify_ts"};
00297
00298
00299 if (rsComm == NULL) {
00300 rodsLog (LOG_ERROR, "getAuditTrailInfoByTimeStamp: input rsComm is NULL");
00301 return (SYS_INTERNAL_NULL_INPUT_ERR);
00302 }
00303
00304
00305 if (begTS == NULL) {
00306 rodsLog (LOG_ERROR, "getAuditTrailInfoByTimeStamp: begTS input is NULL");
00307 return (USER__NULL_INPUT_ERR);
00308 }
00309
00310 if (endTS == NULL) {
00311 rodsLog (LOG_ERROR, "getAuditTrailInfoByTimeStamp: endTS input is NULL");
00312 return (USER__NULL_INPUT_ERR);
00313 }
00314
00315
00316
00317 memset (&genQueryInp, 0, sizeof (genQueryInp_t));
00318
00319
00320 addInxIval (&genQueryInp.selectInp, COL_AUDIT_OBJ_ID, 1);
00321 addInxIval (&genQueryInp.selectInp, COL_AUDIT_USER_ID, 1);
00322 addInxIval (&genQueryInp.selectInp, COL_AUDIT_ACTION_ID, 1);
00323 addInxIval (&genQueryInp.selectInp, COL_AUDIT_COMMENT, 1);
00324 addInxIval (&genQueryInp.selectInp, COL_AUDIT_CREATE_TIME, ORDER_BY);
00325 addInxIval (&genQueryInp.selectInp, COL_AUDIT_MODIFY_TIME, 1);
00326
00327
00328
00329 if (strlen(begTS)) {
00330 snprintf (condStr, MAX_NAME_LEN, " >= '%s'", begTS);
00331 addInxVal (&genQueryInp.sqlCondInp, COL_AUDIT_MODIFY_TIME, condStr);
00332 }
00333
00334 if (strlen(endTS)) {
00335 snprintf (condStr, MAX_NAME_LEN, " < '%s'", endTS);
00336 addInxVal (&genQueryInp.sqlCondInp, COL_AUDIT_MODIFY_TIME, condStr);
00337 }
00338
00339
00340
00341 genQueryInp.maxRows = MAX_SQL_ROWS;
00342
00343
00344
00345 status = rsGenQuery (rsComm, &genQueryInp, &genQueryOut);
00346
00347
00348 if (status == 0) {
00349 genQueryOutToXML(genQueryOut, mybuf, attrs);
00350
00351
00352 while (status==0 && genQueryOut->continueInx > 0) {
00353 genQueryInp.continueInx=genQueryOut->continueInx;
00354 status = rsGenQuery(rsComm, &genQueryInp, &genQueryOut);
00355
00356 genQueryOutToXML(genQueryOut, mybuf, attrs);
00357 }
00358 }
00359
00360
00361 return (0);
00362 }
00363
00364
00365
00366
00367