Mod aaa-12 根据测试用例修改用户管理代码
RCA: SOL: 修改人:zhouzian 检视人:zhouzian
This commit is contained in:
parent
3121ffeecb
commit
b16a8cc2a3
|
@ -468,7 +468,7 @@ static ret_code user_config_add_proc(uint source, uint config_type,
|
||||||
char *ret_char = NULL;
|
char *ret_char = NULL;
|
||||||
char *temp_begin_time, *temp_end_time, *temp_udesp, *temp_pwd;
|
char *temp_begin_time, *temp_end_time, *temp_udesp, *temp_pwd;
|
||||||
int temp_multi, temp_valid, temp_output_len;
|
int temp_multi, temp_valid, temp_output_len;
|
||||||
char *message[] = {"新增成功","用户组名不存在","用户名长度不符合","用户名中包含特殊字符","用户名重名","用户数已达到最大(最大用户数100)","数据库操作失败","系统错误"};
|
char *message[] = {"新增成功","用户组名不存在","用户名或描述长度不符合","用户名中包含特殊字符","用户名重名","用户数已达到最大(最大用户数100)","数据库操作失败","系统错误"};
|
||||||
|
|
||||||
/* 解析json串 */
|
/* 解析json串 */
|
||||||
root = cJSON_Parse(input);
|
root = cJSON_Parse(input);
|
||||||
|
@ -723,13 +723,29 @@ static ret_code user_config_mod_web_proc(uint source, uint config_type,
|
||||||
cJSON_Delete(root);
|
cJSON_Delete(root);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cJSON * temp_udes_json = cJSON_GetObjectItem(data, "udescription");
|
||||||
|
if(!temp_udes_json)
|
||||||
|
{
|
||||||
|
ret = RET_INPUTERR;
|
||||||
|
cJSON_Delete(root);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(UDESIZE < strlen(temp_udes_json->valuestring))
|
||||||
|
{
|
||||||
|
ret = RET_INPUTERR;
|
||||||
|
cJSON_Delete(root);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
s2j_create_struct_obj(input_data, USERLIST);
|
s2j_create_struct_obj(input_data, USERLIST);
|
||||||
s2j_struct_get_basic_element(input_data, data, int, ID);
|
s2j_struct_get_basic_element(input_data, data, int, ID);
|
||||||
s2j_struct_get_basic_element(input_data, data, int, GID);
|
s2j_struct_get_basic_element(input_data, data, int, GID);
|
||||||
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, uname,UNAMESIZE);
|
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, uname,UNAMESIZE);
|
||||||
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, gname, GNAMESIZE);
|
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, gname, GNAMESIZE);
|
||||||
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, passwd, UPWDSIZE);
|
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, passwd, UPWDSIZE);
|
||||||
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, udescription, UDESIZE);
|
S2J_STRUCT_GET_STRING_ELEMENT_N(input_data, data, udescription, UDESIZE+1);
|
||||||
s2j_struct_get_basic_element(input_data, data, int, resetpwd);
|
s2j_struct_get_basic_element(input_data, data, int, resetpwd);
|
||||||
s2j_struct_get_basic_element(input_data, data, int, multi);
|
s2j_struct_get_basic_element(input_data, data, int, multi);
|
||||||
s2j_struct_get_basic_element(input_data, data, int, valid);
|
s2j_struct_get_basic_element(input_data, data, int, valid);
|
||||||
|
|
|
@ -97,13 +97,28 @@ do{ \
|
||||||
do { \
|
do { \
|
||||||
char * c;\
|
char * c;\
|
||||||
int i;\
|
int i;\
|
||||||
|
int len;\
|
||||||
size_t nLen = strlen(in);\
|
size_t nLen = strlen(in);\
|
||||||
i = 0;\
|
i = 0;\
|
||||||
while(in[i] == ' ') {i++;} \
|
while(in[i] == ' ')\
|
||||||
|
{\
|
||||||
|
i++; \
|
||||||
|
}\
|
||||||
|
if (i != nLen)\
|
||||||
|
{\
|
||||||
c = &in[i];\
|
c = &in[i];\
|
||||||
i = nLen - 1;\
|
i = nLen - 1;\
|
||||||
while(in[i] == ' ') {i--;} \
|
while(in[i] == ' ') \
|
||||||
|
{\
|
||||||
|
i--;\
|
||||||
|
}\
|
||||||
|
len = i + 1 - (c - in);\
|
||||||
memcpy(out, c, i + 1 - (c - in));\
|
memcpy(out, c, i + 1 - (c - in));\
|
||||||
|
}\
|
||||||
|
else\
|
||||||
|
{\
|
||||||
|
memset(out, 0 ,strlen(out));\
|
||||||
|
}\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#define ADDUSER_FAIL_USERFULL 5 //用户已满
|
#define ADDUSER_FAIL_USERFULL 5 //用户已满
|
||||||
#define ADDUSER_FAIL_DATABASE 6 //存数据库失败
|
#define ADDUSER_FAIL_DATABASE 6 //存数据库失败
|
||||||
#define ADDUSER_ERROR 7 //系统错误
|
#define ADDUSER_ERROR 7 //系统错误
|
||||||
|
#define ADDUSER_FAIL_TIME 8 //有效时间错误
|
||||||
|
|
||||||
|
|
||||||
#define DELUSER_SUCCESS 0
|
#define DELUSER_SUCCESS 0
|
||||||
|
|
|
@ -73,6 +73,12 @@ void usermanager_add_user(char* uname_in, char* gname, char* udesp, char* pwd, i
|
||||||
/* 去除用户名前后空格 */
|
/* 去除用户名前后空格 */
|
||||||
TRIM_NAME(uname_in, uname);
|
TRIM_NAME(uname_in, uname);
|
||||||
|
|
||||||
|
if(0 == strlen(uname))
|
||||||
|
{
|
||||||
|
uaddres->result = ADDUSER_FAIL_LENGTH;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (NULL == pwd || 0 == strcmp("",pwd))
|
if (NULL == pwd || 0 == strcmp("",pwd))
|
||||||
{
|
{
|
||||||
pwd = "A31as%4Gb";
|
pwd = "A31as%4Gb";
|
||||||
|
@ -87,24 +93,43 @@ void usermanager_add_user(char* uname_in, char* gname, char* udesp, char* pwd, i
|
||||||
{
|
{
|
||||||
valid = 0;
|
valid = 0;
|
||||||
}
|
}
|
||||||
if(NULL == valid_begin_time)
|
if(NULL == valid_begin_time || "" == valid_begin_time)
|
||||||
{
|
{
|
||||||
valid_begin_time = "";
|
valid_begin_time = "";
|
||||||
begin_time = 0;
|
begin_time = 0;
|
||||||
}else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
STRING2TIME_T(valid_begin_time, begin_time);
|
STRING2TIME_T(valid_begin_time, begin_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(NULL == valid_end_time)
|
if(NULL == valid_end_time || "" == valid_end_time)
|
||||||
{
|
{
|
||||||
valid_end_time = "";
|
valid_end_time = "";
|
||||||
end_time = 0;
|
end_time = 0;
|
||||||
}else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
STRING2TIME_T(valid_end_time, end_time);
|
STRING2TIME_T(valid_end_time, end_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 校验开始、结束时间 */
|
||||||
|
if(1 == valid)
|
||||||
|
{
|
||||||
|
if(begin_time >= end_time)
|
||||||
|
{
|
||||||
|
uaddres->result = ADDUSER_FAIL_TIME;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t time_now = time(NULL);
|
||||||
|
if(time_now >= end_time)
|
||||||
|
{
|
||||||
|
uaddres->result = ADDUSER_FAIL_TIME;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* 连接数据库 */
|
/* 连接数据库 */
|
||||||
re_connect();
|
re_connect();
|
||||||
if(NULL == um_hdbc)
|
if(NULL == um_hdbc)
|
||||||
|
@ -236,7 +261,7 @@ bool get_user_detail_by_user_uuid(int user_uuid, char ** user_detail)
|
||||||
bool mod_user_web(USERLIST* ulist)
|
bool mod_user_web(USERLIST* ulist)
|
||||||
{
|
{
|
||||||
int ret_release;
|
int ret_release;
|
||||||
time_t cur_time;
|
time_t cur_time, begin_time, end_time;
|
||||||
char *temp_begin_time, *temp_end_time, *temp_pwd, *temp_udes, *temp_user_json;
|
char *temp_begin_time, *temp_end_time, *temp_pwd, *temp_udes, *temp_user_json;
|
||||||
|
|
||||||
/* 可以修改的数据:用户组ID、描述、密码、公用账号、永久有效、有效期开始时间、有效期结束时间 */
|
/* 可以修改的数据:用户组ID、描述、密码、公用账号、永久有效、有效期开始时间、有效期结束时间 */
|
||||||
|
@ -274,6 +299,29 @@ bool mod_user_web(USERLIST* ulist)
|
||||||
temp_end_time = "";
|
temp_end_time = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 校验开始、结束时间 */
|
||||||
|
cur_time = time(NULL);
|
||||||
|
if(1 == ulist->valid)
|
||||||
|
{
|
||||||
|
if(NULL == ulist->valid_begin_time || "" == ulist->valid_begin_time || NULL == ulist->valid_end_time || "" == ulist->valid_end_time)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
STRING2TIME_T(ulist->valid_begin_time, begin_time);
|
||||||
|
STRING2TIME_T(ulist->valid_end_time, end_time);
|
||||||
|
|
||||||
|
if(begin_time >= end_time)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cur_time >= end_time)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(0 == ulist->resetpwd)
|
if(0 == ulist->resetpwd)
|
||||||
{
|
{
|
||||||
if(NULL == ulist->passwd)
|
if(NULL == ulist->passwd)
|
||||||
|
@ -287,7 +335,7 @@ bool mod_user_web(USERLIST* ulist)
|
||||||
bool ret_getuser = get_user_detail_by_user_uuid(ulist->ID, &temp_user_json);
|
bool ret_getuser = get_user_detail_by_user_uuid(ulist->ID, &temp_user_json);
|
||||||
if (!ret_getuser)
|
if (!ret_getuser)
|
||||||
{
|
{
|
||||||
UCHAR_FREE(temp_user_json);
|
//UCHAR_FREE(temp_user_json); //多余释放
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,8 +453,8 @@ bool mod_user_web(USERLIST* ulist)
|
||||||
if (1 == ulist->valid)
|
if (1 == ulist->valid)
|
||||||
{
|
{
|
||||||
//if(判断是否符合格式)
|
//if(判断是否符合格式)
|
||||||
STRING2TIME_T(ulist->valid_begin_time, g_user_table[user_id].valid_begin_time);
|
g_user_table[user_id].valid_begin_time = begin_time;
|
||||||
STRING2TIME_T(ulist->valid_end_time, g_user_table[user_id].valid_end_time);
|
g_user_table[user_id].valid_end_time = end_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 查询该用户是否有在线IP */
|
/* 查询该用户是否有在线IP */
|
||||||
|
@ -442,7 +490,6 @@ bool mod_user_web(USERLIST* ulist)
|
||||||
/* 当前时间不在有效期内,下线用户 */
|
/* 当前时间不在有效期内,下线用户 */
|
||||||
if (1 == ulist->valid)
|
if (1 == ulist->valid)
|
||||||
{
|
{
|
||||||
cur_time = time(NULL);
|
|
||||||
if (cur_time < g_user_table[user_id].valid_begin_time || cur_time > g_user_table[user_id].valid_end_time)
|
if (cur_time < g_user_table[user_id].valid_begin_time || cur_time > g_user_table[user_id].valid_end_time)
|
||||||
{
|
{
|
||||||
//offline_force_one_user(user_id);
|
//offline_force_one_user(user_id);
|
||||||
|
|
|
@ -59,6 +59,11 @@ int add_group(char* name_in, char* description)
|
||||||
/* 去除用户组名前后空格 */
|
/* 去除用户组名前后空格 */
|
||||||
TRIM_NAME(name_in, name);
|
TRIM_NAME(name_in, name);
|
||||||
|
|
||||||
|
if(0 == strlen(name))
|
||||||
|
{
|
||||||
|
return ADDGROUP_FAIL_LENGTH;
|
||||||
|
}
|
||||||
|
|
||||||
/* 连接数据库 */
|
/* 连接数据库 */
|
||||||
re_connect();
|
re_connect();
|
||||||
if(NULL == um_hdbc)
|
if(NULL == um_hdbc)
|
||||||
|
|
|
@ -126,23 +126,34 @@ int main5(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void trim(char *out, char *in)
|
void trim(char *in, char *out)
|
||||||
{
|
{
|
||||||
char * c;
|
char * c;
|
||||||
int i;
|
int i;
|
||||||
|
int len;
|
||||||
size_t nLen = strlen(in);
|
size_t nLen = strlen(in);
|
||||||
i = 0;
|
i = 0;
|
||||||
while(in[i] == ' ')
|
while(in[i] == ' ')
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
if (i != nLen)
|
||||||
|
{
|
||||||
c = &in[i]; // 找到第一个非空字符指针
|
c = &in[i]; // 找到第一个非空字符指针
|
||||||
i = nLen - 1;
|
i = nLen - 1;
|
||||||
while(in[i] == ' ')
|
while(in[i] == ' ')
|
||||||
{
|
{
|
||||||
i--; // 找到最后一个非空字符
|
i--; // 找到最后一个非空字符
|
||||||
}
|
}
|
||||||
|
len = i + 1 - (c - in);
|
||||||
memcpy(out, c, i + 1 - (c - in));
|
memcpy(out, c, i + 1 - (c - in));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memset(out, 0 ,strlen(out));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,12 +162,15 @@ int main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
char *name1 = " xi阿斯蒂芬就aom ig ";
|
char *name1 = "a a ";
|
||||||
int len = strlen(name1);
|
int len = strlen(name1);
|
||||||
char name2[100] = {0};
|
char name2[100] = {0};
|
||||||
|
printf("name2 len=%ld.\n",strlen(name2));
|
||||||
printf("name1=%s.\n",name1);
|
printf("name1=%s.\n",name1);
|
||||||
TRIM_NAME(name1, name2);
|
TRIM_NAME(name1, name2);
|
||||||
printf("name1=%s.\n",name2);
|
printf("name1=%s.\n",name2);
|
||||||
|
printf("name2 len=%ld.\n",strlen(name2));
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include "http_header.h"
|
||||||
#include "json.h"
|
#include "json.h"
|
||||||
#include "../../../../Common/config_manager.h"
|
#include "../../../../Common/config_manager.h"
|
||||||
|
|
||||||
|
@ -786,7 +787,10 @@ static handler_t mod_webm_uri_handler(server *srv, connection *con, void *p_d)
|
||||||
}
|
}
|
||||||
buffer_free(content_buffer);
|
buffer_free(content_buffer);
|
||||||
}
|
}
|
||||||
|
http_header_response_set(con, HTTP_HEADER_CONTENT_TYPE,
|
||||||
|
CONST_STR_LEN("Content-Type"),
|
||||||
|
CONST_STR_LEN("text/xml; charset=\"utf-8\""));
|
||||||
|
con->mode = DIRECT;
|
||||||
con->http_status = 200;
|
con->http_status = 200;
|
||||||
con->file_finished = 1;
|
con->file_finished = 1;
|
||||||
return HANDLER_FINISHED;
|
return HANDLER_FINISHED;
|
||||||
|
|
Loading…
Reference in New Issue