151 lines
3.5 KiB
C
151 lines
3.5 KiB
C
|
#include <stdio.h>
|
|||
|
#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;
|
|||
|
}
|