secgateway/Product/user/user_manager/usermanager-test/test_usermanager.c

501 lines
19 KiB
C
Raw Normal View History

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#include <cjson/cJSON.h>
#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 "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_01 = 1;
int *olenth = &olenth_01;
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_01 = 1;
int *a = &a_01;
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_01 = 1;
int *a4 = &a4_01;;
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_01 = 1;
int *a5 = &a5_01;
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", aret);
printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
sleep(1);
t1 = time(NULL);
USER_AUTH_RET aret01;
user_auth_login("用户05", "zhelishidenglumima", &aret01);
printf("%d,%d,%d\n", aret01.ret, aret01.user_id, aret01.group_id);
sleep(1);
t1 = time(NULL);
user_auth_login("用户05", "zhelishidenglumima", aret);
printf("%d,%d,%d\n",aret->ret,aret->user_id,aret->group_id);
sleep(1);
t1 = time(NULL);
user_auth_login("用户05", "zhelishidenglumima", aret);
printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
sleep(1);
t1 = time(NULL);
user_auth_login("用户05", "zhelishidenglumima", aret);
printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
sleep(1);
t1 = time(NULL);
user_auth_login("用户05", "zhelishidenglumima", 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(1);
t1 = time(NULL);
user_auth_login("用户05", "zhelishidenglumima", aret);
printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
char * output6;
output6 = malloc(100);
if (NULL == output6)
{
printf("ulist fail");
}
char *testin6 = "{\"type\": 1,\"data\":[\"用户01\", \"用户02\", \"用户04\", \"用户05\"]}";
int a6_01 = 1;
int *a6 = &a6_01;;
ret_code c6 = user_config_proc(1, 1, testin6, 1, output6, a6);
printf("*******************************************************************************\n");
printf("这里是个测试第六次结果,删除用户05%d\n", c4);
printf("%s\n", output6);
printf("*******************************************************************************\n");
UCHAR_FREE(output6);
int user_ids[3] = {1,2,4};
reset_online_by_userid(user_ids, 3);
return 0;
}