#include #include #include #include #include #include "common_user.h" #include "array_index.h" #include "user_group.h" #include "user.h" #include "user_account_config.h" #include "user_group_config.h" #include "../usermanager-auth/user_auth.h" extern USERGROUP g_group_table[GROUP_INDEX_MAX]; extern USERACCOUNT g_user_table[USER_INDEX_MAX]; int main1(void) { printf("初始化用户组:%d\n", init_group()); printf("增加一个用户组:%d\n", add_group("aaa04", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa07", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa08", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa09", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa10", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa11", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa12", "描述04")); char *testgroupin = "{\"type\": 0,\"data\": {\"gname\": \"aaa21\",\"gdescription\": \"xxx\"}}"; char *testgroupin01 = "{\"type\": 0,\"data\": {\"gname\": \"aaa22\",\"gdescription\": \"xxx\"}}"; char * outputgroup; char * outputgroup01; outputgroup = malloc(130); outputgroup01 = malloc(130); if (NULL == outputgroup || NULL == outputgroup01) { printf("ulist fail"); } int *olenth = 1; ret_code ret_add_group = usergroup_config_proc(1,1,testgroupin,1,outputgroup,olenth); printf("测试对外接口-增加一个用户组:%d\n", ret_add_group); printf("%s \n", outputgroup); ret_code ret_add_group01 = usergroup_config_proc(1,1,testgroupin01,1,outputgroup01,olenth); printf("测试对外接口-增加一个用户组:%d\n", ret_add_group01); printf("%s \n", outputgroup01); printf("初始化用户:%d\n", init_user()); USERADD* addUserResullt; addUserResullt = (USERADD*)malloc(sizeof(USERADD)); if (NULL == addUserResullt) { printf("shibaile"); } usermanager_add_user("用户01", "aaa08", addUserResullt); printf("%d,用户id:%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户02", "aaa04", addUserResullt); printf("%d,用户id:%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户03", "aaa04", addUserResullt); printf("%d,用户id:%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户04", "aaa04", addUserResullt); printf("%d,用户id:%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户05", "aaa04", addUserResullt); printf("%d,用户id:%d\n", addUserResullt->result, addUserResullt->userID); char * output1; output1 = malloc(50); if (NULL == output1) { printf("ulist fail"); } char *testin = "{\"type\": 0,\"data\": {\"uname\": \"小明\",\"gname\": \"aaa08\"}}"; int *a = 1; ret_code c = user_config_proc(1, 1, testin, 1, output1, a); printf("*******************************************************************************\n"); printf("这里是个测试第一次结果,新增用户:%d\n", c); printf("%s\n", output1); printf("*******************************************************************************\n"); char *testmodweb = "{\"type\":2, \"data\":{\"ID\": 2,\"GID\" : 4,\"uname\" : \"用户05\",\"gname\" : \"xxx\",\"passwd\" : \"zhelishimima123\" , \ \"udescription\" : \"修改用\",\"multi\" : 1,\"valid\" : 1,\"valid_begin_time\" : \"2013-07-04 15:04:23\",\"valid_end_time\" : \"2019-07-04 15:04:23\"}}"; char * output2; output2 = malloc(50); if (NULL == output2) { printf("ulist fail"); } ret_code cc = user_config_proc(1, 1, testmodweb, 1, output2, a); printf("*******************************************************************************\n"); printf("这里是个测试第二次结果,修改用户web:%d\n", cc); printf("%s\n", output2); printf("*******************************************************************************\n"); UCHAR_FREE(output2); char *testmodline = "{\"type\":5, \"data\":{\"uname\": \"用户05\",\"attr_type\" : 6,\"attr_data\" : \"2018-03-03 15:04:23\"}}"; char * output3; output3 = malloc(50); if (NULL == output3) { printf("ulist fail"); } ret_code ccc = user_config_proc(1, 1, testmodline, 1, output3, a); printf("*******************************************************************************\n"); printf("这里是个测试第三次结果,修改用户-line:%d\n", ccc); printf("%s\n", output3); printf("*******************************************************************************\n"); UCHAR_FREE(output3); return 0; } int main(void) { printf("初始化用户组:%d\n", init_group()); printf("增加一个用户组:%d\n", add_group("", "")); printf("增加一个用户组:%d\n", add_group("aaa01", "描述02")); printf("增加一个用户组:%d\n", add_group("aaa03", "描述03")); printf("增加一个用户组:%d\n", add_group("aaa,", "描述04")); printf("增加一个用户组:%d\n", add_group("", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa04", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa07", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa08", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa09", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa10", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa11", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa12", "描述04")); //USERGROUP U[22] = { 0 }; int gsize = get_group_count(); USERGROUP* U; U = (USERGROUP*)malloc(sizeof(USERGROUP) * gsize); if (NULL == U) { printf("shibaile"); } show_group_list(U); for (int i = 0; i < gsize; i++) { printf("第 %d 用户组 ID : %d, NAME: %s, 描述:%s \n", i, U[i].ID, U[i].gname, U[i].gdescription); } char* name1 = { "aaa18" }; printf("删除一个组:%s, %d\n", name1, del_group_by_name(name1)); printf("删除一个组:%s, %d\n", "aaa03", del_group_by_name("aaa03")); printf("删除一个组:%s, %d\n", "aaaa03", del_group_by_name("aaaa03")); printf("增加一个用户组:%d\n", add_group("aaa30", "就爱看九分阿道夫就卡了阿道夫阿道夫就")); printf("增加一个用户组:%d\n", add_group("aaa31", "描述31")); printf("增加一个用户组:%d\n", add_group("aaa32", "描述31")); printf("增加一个用户组:%d\n", add_group("aaa13", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa14", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa15", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa16", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa17", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa18", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa18", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa20", "描述04")); //printf("增加一个用户组:%d\n", add_group("aaa21", "描述04")); char *testgroupin = "{\"type\": 0,\"data\": {\"gname\": \"aaa21\",\"gdescription\": \"xxx\"}}"; char * outputgroup; outputgroup = malloc(130); if (NULL == outputgroup) { printf("ulist fail"); } int *olenth = 1; ret_code ret_add_group = usergroup_config_proc(1,1,testgroupin,1,outputgroup,olenth); printf("测试对外接口-增加一个用户组:%d\n", ret_add_group); printf("%s \n", outputgroup); UCHAR_FREE(outputgroup); printf("增加一个用户组:%d\n", add_group("aaa22", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa23", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa20", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa20", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa24", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa25", "描述04")); printf("增加一个用户组:%d\n", add_group("aaa26", "描述04")); gsize = get_group_count(); USERGROUP* U1; U1 = (USERGROUP*)malloc(sizeof(USERGROUP) * gsize); if (NULL == U1) { printf("shibaile"); } show_group_list(U1); for (int i = 0; i < gsize; i++) { printf("第 %d 用户组 ID : %d, NAME: %s, 描述:%s \n", i, U1[i].ID, U1[i].gname, U1[i].gdescription); } char* name2 = { "aaa10" }; USERGROUP* U2; U2 = (USERGROUP*)malloc(sizeof(USERGROUP)); if (NULL == U2) { printf("shibaile"); } find_group_by_name(name2, U2); if (NULL != U2) { printf("%s, %d, %s, %s \n", name2, U2->ID, U2->gname, U2->gdescription); } printf("*************************************\n"); printf("初始化用户:%d\n", init_user()); for (int i = 0; i < 10; i++) { printf("初始化后的第 %d 个用户,ID:%d, PWD:%s \n", i, g_user_table[i].ID, g_user_table[i].passwd); } USERADD* addUserResullt; addUserResullt = (USERADD*)malloc(sizeof(USERADD)); //printf("sizeof(USERADD): %d\n",sizeof(USERADD)); if (NULL == addUserResullt) { printf("shibaile"); } usermanager_add_user("用户01", "aaa04", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); //addUserResullt = AddUser("用户02", "aaa04", NULL); //printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user(NULL, "aaa04", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("", "aaa04", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户04,", "aaa04", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户05", "aCaa04", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户01", "aaa04", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户04", "aaa07", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户05", "aaa07", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户06", "aaa07", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户07", "aaa07", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户08", "aaa07", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); usermanager_add_user("用户09", "aaa07", addUserResullt); printf("%d,%d\n", addUserResullt->result, addUserResullt->userID); char * output1; output1 = malloc(40); if (NULL == output1) { printf("ulist fail"); } char *testin = "{\"type\": 0,\"data\": {\"uname\": \"小明\",\"gname\": \"aaa14\"}}"; int *a = 1; ret_code c = user_config_proc(1, 1, testin, 1, output1, a); printf("*******************************************************************************\n"); printf("这里是个测试第一次结果,新增用户:%d\n", c); printf("%s\n", output1); printf("*******************************************************************************\n"); UCHAR_FREE(output1); for (int i = 0; i < USER_INDEX_MAX; i++) { if (g_user_table[i].ID != 0) { printf("tianjia后的第 %d 个用户, ID:%d, GID:%d, 用户名:%s, PWD:%s \n", i, g_user_table[i].ID, g_user_table[i].GID, g_user_table[i].uname, g_user_table[i].passwd); } } printf("*****************************************************\n"); USERLIST* ulist; ulist = (USERLIST*)malloc(sizeof(USERLIST)); if (NULL == ulist) { printf("ulist fail"); } unsigned short id1 = 2; get_user_by_id(id1, ulist); printf("查找id为:%d, 用户名:%s, 用户组ID:%d,用户组名:%s,描述:%s", id1, ulist->uname, ulist->GID, ulist->gname, ulist->udescription); printf(" ,多用户登陆:%d, 永久性:%d, 开始时间:%s, 结束时间:%s", ulist->multi, ulist->valid, ulist->valid_begin_time, ulist->valid_end_time); printf("密码:%s\n", ulist->passwd); // USERLIST* ulist2; // ulist2 = (USERLIST*)malloc(sizeof(USERLIST)); // if (NULL == ulist2) // { // printf("ulist fail"); // } // ulist2->ID = 2; // ulist2->GID = 4; // strcpy(ulist2->udescription, "修改用"); // strcpy(ulist2->passwd, "zhelishimima123"); // ulist2->multi = 1; // ulist2->valid = 1; // strcpy(ulist2->valid_begin_time, "2013-07-04 15:04:23"); // strcpy(ulist2->valid_end_time, "2019-07-04 15:04:23"); // printf("%d\n", mod_user_web(ulist2)); char *testmodweb = "{\"type\":2, \"data\":{\"ID\": 2,\"GID\" : 4,\"uname\" : \"用户05\",\"gname\" : \"xxx\",\"passwd\" : \"zhelishimima123\" , \ \"udescription\" : \"修改用\",\"multi\" : 1,\"valid\" : 1,\"valid_begin_time\" : \"2013-07-04 15:04:23\",\"valid_end_time\" : \"2019-07-04 15:04:23\"}}"; char * output2; output2 = malloc(50); if (NULL == output2) { printf("ulist fail"); } ret_code cc = user_config_proc(1, 1, testmodweb, 1, output2, a); printf("*******************************************************************************\n"); printf("这里是个测试第二次结果,修改用户web:%d\n", cc); printf("%s\n", output2); printf("*******************************************************************************\n"); UCHAR_FREE(output2); USERLIST* ulist22; ulist22 = (USERLIST*)malloc(sizeof(USERLIST)); if (NULL == ulist22) { printf("ulist fail"); } get_user_by_id(id1, ulist22); printf("查找id为:%d, 用户名:%s, 用户组ID:%d,用户组名:%s,描述:%s", id1, ulist22->uname, ulist22->GID, ulist22->gname, ulist22->udescription); printf(" ,多用户登陆:%d, 永久性:%d, 开始时间:%s, 结束时间:%s", ulist22->multi, ulist22->valid, ulist22->valid_begin_time, ulist22->valid_end_time); printf("密码:%s\n", ulist22->passwd); //printf("内存表中的时间:%lld,%lld, mul_avil:%d", g_user_table[2].valid_begin_time, g_user_table[2].valid_end_time, g_user_table[2].multi_valid); mod_user_line("用户05", 0, "zhelishimiaoshu"); mod_user_line("用户05", 1, "aaa12"); mod_user_line("用户05", 2, "zhelishidenglumima"); //mod_user_line("用户05", 3, "1"); mod_user_line("用户05", 4, "1"); mod_user_line("用户05", 5, "2013-03-03 15:04:23"); //mod_user_line("用户05", 6, "2018-03-03 15:04:23"); //mod_user_line("用户05", 7, "2020-03-03 15:04:23"); char *testmodline = "{\"type\":5, \"data\":{\"uname\": \"用户05\",\"attr_type\" : 6,\"attr_data\" : \"2018-03-03 15:04:23\"}}"; char * output3; output3 = malloc(50); if (NULL == output3) { printf("ulist fail"); } ret_code ccc = user_config_proc(1, 1, testmodline, 1, output3, a); printf("*******************************************************************************\n"); printf("这里是个测试第三次结果,修改用户-line:%d\n", ccc); printf("%s\n", output3); printf("*******************************************************************************\n"); UCHAR_FREE(output3); unsigned short id2 = 3; get_user_by_id(id2, ulist22); printf("查找id为:%d, 用户名:%s, 用户组ID:%d,用户组名:%s,描述:%s", id2, ulist22->uname, ulist22->GID, ulist22->gname, ulist22->udescription); printf(" ,多用户登陆:%d, 永久性:%d, 开始时间:%s, 结束时间:%s", ulist22->multi, ulist22->valid, ulist22->valid_begin_time, ulist22->valid_end_time); printf("密码:%s\n", ulist22->passwd); printf("*********************************************************************************\n"); char * output4; output4 = malloc(100); if (NULL == output4) { printf("ulist fail"); } char *testin4 = "{\"type\": 1,\"data\":[\"用户01\", \"用户02\", \"用户04\"]}"; int *a4 = 1; ret_code c4 = user_config_proc(1, 1, testin4, 1, output4, a4); printf("*******************************************************************************\n"); printf("这里是个测试第四次结果,删除用户:%d\n", c4); printf("%s\n", output4); printf("*******************************************************************************\n"); UCHAR_FREE(output4); char * output5; output5 = malloc(100); if (NULL == output5) { printf("ulist fail"); } char *testin5 = "{\"type\": 1,\"data\":[\"aaa\", \"aaa07\", \"aaa08\"]}"; int *a5 = 1; ret_code c5 = usergroup_config_proc(1, 1, testin5, 1, output5, a5); printf("*******************************************************************************\n"); printf("这里是个测试第四次结果,删除用户组:%d\n", c5); printf("%s\n", output5); printf("*******************************************************************************\n"); UCHAR_FREE(output5); USER_AUTH_RET* aret; aret = (USER_AUTH_RET*)malloc(sizeof(USER_AUTH_RET)); if (NULL == aret) { printf("111111111111"); } time_t t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id); sleep(1); t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id); sleep(1); t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n",aret->ret,aret->user_id,aret->group_id); sleep(1); t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id); sleep(1); t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id); sleep(1); t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id); mod_user_line("用户05", 6, "2020-03-03 15:04:23"); sleep(4); t1 = time(NULL); user_auth_login("用户05", "zhelishidenglumima", t1, aret); printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id); return 0; }