#include #include "user_mod.h" #include "user_group.h" #include "user.h" #include "array_index.h" #include "common_user.h" /* 修改用户函数数组 */ exce_mod_user g_user_modfunc_table[USER_ATTRIBUTE_NUM] = {mod_user_des, mod_user_group, mod_user_passwd, mod_user_multi, mod_user_valid, mod_user_valid_begin_time, mod_user_valid_end_time}; extern USERACCOUNT g_user_table[USER_INDEX_MAX]; bool mod_user_des(unsigned short uid, char* des) { if (UDESIZE < strlen(des)) { return false; } strcpy(g_user_table[uid].udescription, des); /* 连接数据库,修改user表中的描述 */ /* UPDATE `user` u SET u.udescription = "" WHERE u.id = ; */ return true; } bool mod_user_group(unsigned short uid, char* gname) { unsigned short gid = get_groupid_by_name(gname); if (INVALID_INDEX == gid) { return false; } g_user_table[uid].GID = gid; /* 连接数据库,修改user表中的用户组id */ /* UPDATE `user` u SET u.group_id = WHERE u.id = ; */ /* 强制用户下线 */ return true; } bool mod_user_passwd(unsigned short uid, char* passwd) { if (8 >= strlen(passwd) || 24 <= strlen(passwd)) { return false; } strcpy(g_user_table[uid].passwd, passwd); /* 连接数据库,修改user表中的密码 */ /* UPDATE `user` u SET u.password = WHERE u.id = ; */ /* 强制用户下线 */ return true; } bool mod_user_multi(unsigned short uid, char* multi) { unsigned short multi_old; unsigned short multi_new = atoi(multi); if (0 != multi_new && 1 != multi_new) { return false; } multi_old = MULTI_GET(g_user_table[uid].multi_valid); g_user_table[uid].multi_valid = MULTI_SET(g_user_table[uid].multi_valid, multi_new); /* 连接数据库,修改user表中的multi_player */ /* UPDATE `user` u SET u.multi_player = WHERE u.id = ; */ if (0 == multi_old && 1 == multi_new) { /* 强制用户下线 */ } return true; } void mod_user_valid_offline(unsigned short uid) { time_t cur_time; if (1 == VALID_GET(g_user_table[uid].multi_valid)) { cur_time = time(NULL); if (cur_time < g_user_table[uid].valid_begin_time || cur_time > g_user_table[uid].valid_end_time) { /* 强制用户下线 */ } } } bool mod_user_valid(unsigned short uid, char* valid) { unsigned short valid_new = atoi(valid); //校验数据 if (0 != valid_new && 1 != valid_new) { return false; } g_user_table[uid].multi_valid = VALID_SET(g_user_table[uid].multi_valid, valid_new); /* 连接数据库,修改user表中的valid_always */ /* UPDATE `user` u SET u.valid_always = WHERE u.id = ; */ mod_user_valid_offline(uid); return true; } bool mod_user_valid_begin_time(unsigned short uid, char* valid_start_time) { time_t temp_time; /* 校验vaild是否符合"%Y-%m-%d %H:%M:%S"格式,不符合直接return */ STRING2TIME_T(valid_start_time, temp_time); g_user_table[uid].valid_begin_time = temp_time; /* 连接数据库,修改user表中的valid_begin_time */ /* UPDATE `user` u SET u.valid_begin_time = WHERE u.id = ; */ mod_user_valid_offline(uid); return true; } bool mod_user_valid_end_time(unsigned short uid, char* valid_end_time) { time_t temp_time; /* 校验vaild是否符合"%Y-%m-%d %H:%M:%S"格式,不符合直接return */ STRING2TIME_T(valid_end_time, temp_time); g_user_table[uid].valid_end_time = temp_time; /* 连接数据库,修改user表中的valid_end_time */ /* UPDATE `user` u SET u.valid_end_time = WHERE u.id = ; */ mod_user_valid_offline(uid); return true; }