From 38299f627b25eae4bae0a8f003d3800c8b640ee9 Mon Sep 17 00:00:00 2001 From: zhouzian Date: Thu, 27 Jun 2019 15:11:34 +0800 Subject: [PATCH] =?UTF-8?q?Add=20aaa-12=20=E5=A2=9E=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=AE=A1=E7=90=86-=E6=96=B0=E5=A2=9E=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=BB=84=20RCA=EF=BC=9A=20SOL=EF=BC=9A=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BA=BA=EF=BC=9Azhouzian=20=E6=A3=80=E8=A7=86?= =?UTF-8?q?=E4=BA=BA=EF=BC=9Azhouzian?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configm/config-server/include/configm.h | 19 ++- .../config-server/include/user_group_config.h | 41 +++++ .../user_manager_config/user_group_config.c | 160 ++++++++++++++++++ 3 files changed, 219 insertions(+), 1 deletion(-) create mode 100644 Platform/user/configm/config-server/include/user_group_config.h create mode 100644 Platform/user/configm/config-server/user_manager_config/user_group_config.c diff --git a/Platform/user/configm/config-server/include/configm.h b/Platform/user/configm/config-server/include/configm.h index 5f2801f81..84ee91de8 100644 --- a/Platform/user/configm/config-server/include/configm.h +++ b/Platform/user/configm/config-server/include/configm.h @@ -4,14 +4,21 @@ #include "rpc_common.h" #include "ipconfig.h" #include "configmapi.h" +#include "user_group_config.h" /* 类型定义 */ /* IP CONFIG */ #define IPCONFIG_MODULE 0x00000001 +/* USER MANAGER CONFIG */ +#define USER_MANAGER_CONFIG_MODULE 0x00000002 + /* config id define*/ #define IPCONFIG_V4 (uint64)((uint64)IPCONFIG_MODULE<<32|1) +#define USER_MANAGER_CONFIG_GROUP (uint64)((uint64)USER_MANAGER_CONFIG_MODULE<<32|1) +#define USER_MANAGER_CONFIG_USER (uint64)((uint64)USER_MANAGER_CONFIG_MODULE<<32|2) + /* 1、配置ID,全局唯一,用于寻找对应的配置业务 2、配置源检查,全局唯一,用于寻找对应的配置业务, @@ -34,7 +41,17 @@ ip_config_proc, \ ip_config_get, \ ip_config_get_all \ - }\ + },\ + {\ + USER_MANAGER_CONFIG_GROUP, \ + CONFIG_FROM_WEB, \ + FALSE, \ + FALSE, \ + usergroup_config_chk, \ + usergroup_config_proc, \ + usergroup_config_get, \ + usergroup_config_get_all \ + }\ } typedef ret_code (*cm_config_chk)(uint source, uint config_type, diff --git a/Platform/user/configm/config-server/include/user_group_config.h b/Platform/user/configm/config-server/include/user_group_config.h new file mode 100644 index 000000000..04206af47 --- /dev/null +++ b/Platform/user/configm/config-server/include/user_group_config.h @@ -0,0 +1,41 @@ +#ifndef USER_GROUP_CONFIG_H_ +#define USER_GROUP_CONFIG_H_ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "../../../../common/configm/configmapi.h" +#include "../../../../common/rpc/rpc_common.h" +#include "../../../../../Product/user/user_manager/user_group.h" + + + + +/* user group config */ +ret_code usergroup_config_chk(uint source, uint config_type, + pointer input, int input_len, + pointer output, int *output_len); + +ret_code usergroup_config_proc(uint source, uint config_type, + pointer input, int input_len, + pointer output, int *output_len); + +ret_code usergroup_config_get(uint source, + pointer input, int input_len, + pointer output, int *output_len); + +ret_code usergroup_config_get_all(uint source, uint64 config_id, + pointer output, short *single_len, + int *output_len); + +#endif \ No newline at end of file diff --git a/Platform/user/configm/config-server/user_manager_config/user_group_config.c b/Platform/user/configm/config-server/user_manager_config/user_group_config.c new file mode 100644 index 000000000..846e2d514 --- /dev/null +++ b/Platform/user/configm/config-server/user_manager_config/user_group_config.c @@ -0,0 +1,160 @@ +#include "configm.h" +#include "user_group_config.h" +#include "rpc.h" +#include "parsefile.h" + +/* check暂时不做操作,所有的检查在业务接口中完成 */ +ret_code usergroup_config_chk(uint source, uint config_type, + pointer input, int input_len, + pointer output, int *output_len) +{ + ret_code ret = RET_OK; + int code = 0; + cJSON *root; + cJSON *name, *description; + + switch(config_type) + { + case CM_CONFIG_ADD: + // root = cJSON_Parse(input); + // if(!root) + // { + // ret = RET_INPUTERR; + // ASSERT_RET(ret); + // return ret; + // } + // name = cJSON_GetObjectItem(root, "gname"); + // if(!name) + // { + // cJSON_Delete(root); + // ret = RET_INPUTERR; + // ASSERT_RET(ret); + // return ret; + // } + // description = cJSON_GetObjectItem(root, "gdescription"); + // if(!description) + // { + // cJSON_Delete(root); + // ret = RET_INPUTERR; + // ASSERT_RET(ret); + // return ret; + // } + //cJSON_Delete(root); + break; + case CM_CONFIG_DEL: + break; + case CM_CONFIG_GET: + break; + case CM_CONFIG_GET_ALL: + break; + default: + ret = RET_NOTSUPPORT; + } + + return ret; +} + +/* 新增用户组-处理 */ +ret_code usergroup_config_add_proc(uint source, uint config_type, + pointer input, int input_len, + pointer output, int *output_len) +{ + ret_code ret = RET_OK; + unsigned short result; + cJSON *root, *name, *description, *res; + char *des = NULL; + char *ret_char = NULL; + + root = cJSON_Parse(input); + if(!root) + { + ret = RET_INPUTERR; + ASSERT_RET(ret); + return ret; + } + + name = cJSON_GetObjectItem(root, "gname"); + if(!name) + { + ret = RET_INPUTERR; + ASSERT_RET(ret); + cJSON_Delete(root); + return ret; + } + + description = cJSON_GetObjectItem(root, "gdescription"); + if(description) + { + des = description->valuestring; + } + + result = add_group(name->valuestring, des); //增加用户组 + cJSON_Delete(root); + + res = cJSON_CreateObject(); + if(!res) + { + ret = RET_ERR; + ASSERT_RET(ret); + return ret; + } + + cJSON_AddNumberToObject(res, "result", result); + ret_char = cJSON_PrintUnformatted(res); + memcpy(output, ret_char, strlen(ret_char)+1); + cJSON_Delete(res); + + return ret; +} + +ret_code usergroup_config_proc(uint source, uint config_type, + pointer input, int input_len, + pointer output, int *output_len) +{ + ret_code ret = RET_OK; + int code; + + switch(config_type) + { + case CM_CONFIG_ADD: + ret = usergroup_config_add_proc(source, config_type, + input, input_len, + output, output_len); + break; + case CM_CONFIG_DEL: + ret = usergroup_config_del_proc(source, config_type, + input, input_len, + output, output_len); + break; + case CM_CONFIG_GET: + ret = usergroup_config_get_proc(source, config_type, + input, input_len, + output, output_len); + break; + case CM_CONFIG_GET_ALL: + ret = usergroup_config_getall_proc(source, config_type, + input, input_len, + output, output_len); + break; + default: + ret = RET_NOTSUPPORT; + } + + return ret; +} + +ret_code usergroup_config_get(uint source, + pointer input, int input_len, + pointer output, int *output_len) +{ + ret_code ret = RET_OK; + return ret; +} + +ret_code usergroup_config_get_all(uint source, uint64 config_id, + pointer output, short *single_len, + int *output_len) +{ + ret_code ret = RET_OK; + return ret; +} \ No newline at end of file