diff --git a/console/irext_console.js b/console/irext_console.js index 26bc02d..5f15ad9 100644 --- a/console/irext_console.js +++ b/console/irext_console.js @@ -1,120 +1,120 @@ -/** - * Created by Strawmanbobi - * 2016-11-27 - */ - -// system inclusion -var express= require('express'); -var app = module.exports = express(); -var http = require('http').Server(app); -var bodyParser = require('body-parser'); -var methodOverride = require('method-override'); - -// global inclusion -require('./mini_poem/configuration/constants'); -var System = require('./mini_poem/utils/system_utils'); -var dbConn = require('./mini_poem/db/mysql/mysql_connection'); - -// local inclusion -var systemConfig = require('./configuration/system_configs'); -var Enums = require('./constants/enums'); -var ErrorCode = require('./constants/error_code'); -var enums = new Enums(); -var errorCode = new ErrorCode(); - -SERVER = enums.SERVER_MAIN; - -console.log('Configuring Infrastructure...'); - -app.use(bodyParser.urlencoded({ extended: false })); -app.use(bodyParser.json()); -app.use(methodOverride()); -// authentication middleware -app.use(tokenValidation); -app.use("/", express.static(__dirname + '/web/')); -systemConfig.setupEnvironment(); -var serverListenPort = LISTEN_PORT; - -console.log("initializing MySQL connection to : " + MYSQL_DB_SERVER_ADDRESS + ":" + MYSQL_DB_NAME); -dbConn.setMySQLParameter(MYSQL_DB_SERVER_ADDRESS, MYSQL_DB_NAME, MYSQL_DB_USER, MYSQL_DB_PASSWORD); - -require('./routes'); - -var certificateLogic = require('./work_unit/authentication_logic.js'); - -// kick start the engine -System.startupHttp(http, serverListenPort, "irext Console V1.2.7"); - -////////////////// authentication middleware ////////////////// -function tokenValidation (req, res, next) { - var bodyParam; - var adminID = null; - var token = null; - bodyParam = req.body; - - if (null != bodyParam) { - adminID = bodyParam.admin_id; - token = bodyParam.token; - } - - if (req.url.indexOf("/irext/int/list_remote_indexes") !== -1) { - // override for get method - adminID = req.query.admin_id; - token = req.query.token; - } - if (req.url.indexOf("/irext/int/search_remote_indexes") !== -1) { - // override for get method - adminID = req.query.admin_id; - token = req.query.token; - } - if (req.url.indexOf("/irext/int/download_remote_index") !== -1) { - // override for get method - adminID = req.query.admin_id; - token = req.query.token; - } - if (req.url.indexOf("/irext/int") !== -1) { - var contentType = req.get("content-type"); - if (null != contentType && contentType.indexOf("multipart/form-data") != -1) { - // request of content type of multipart/form-data would be validated inside each service - next(); - } else { - certificateLogic.verifyTokenWorkUnit(adminID, token, function(validateTokenErr) { - if(errorCode.SUCCESS.code !== validateTokenErr.code) { - var fakeResponse = { - status: validateTokenErr, - entity: null - }; - res.send(fakeResponse); - res.end(); - } else { - next(); - } - }); - } - } else if (req.url.indexOf("/irext/nav/nav_to_url") !== -1) { - var page = bodyParam.page; - var pageCode = page.indexOf("code"); - var pageDoc = page.indexOf("doc"); - var pageStat = page.indexOf("stat"); - - var permissions = ""; - - if (-1 !== pageCode) { - permissions = ",0"; - } else if (-1 !== pageDoc) { - permissions = ",1"; - } else if (-1 !== pageStat) { - permissions = ",2"; - } - - certificateLogic.verifyTokenWithPermissionWorkUnit(adminID, token, permissions, function(validateTokenErr) { - if(errorCode.SUCCESS.code !== validateTokenErr.code) { - res.redirect("/error/auth_error.html"); - } else { - next(); - } - }); - } else { - next(); - } -} +/** + * Created by Strawmanbobi + * 2016-11-27 + */ + +// system inclusion +var express= require('express'); +var app = module.exports = express(); +var http = require('http').Server(app); +var bodyParser = require('body-parser'); +var methodOverride = require('method-override'); + +// global inclusion +require('./mini_poem/configuration/constants'); +var System = require('./mini_poem/utils/system_utils'); +var dbConn = require('./mini_poem/db/mysql/mysql_connection'); + +// local inclusion +var systemConfig = require('./configuration/system_configs'); +var Enums = require('./constants/enums'); +var ErrorCode = require('./constants/error_code'); +var enums = new Enums(); +var errorCode = new ErrorCode(); + +SERVER = enums.SERVER_MAIN; + +console.log('Configuring Infrastructure...'); + +app.use(bodyParser.urlencoded({ extended: false })); +app.use(bodyParser.json()); +app.use(methodOverride()); +// authentication middleware +app.use(tokenValidation); +app.use("/", express.static(__dirname + '/web/')); +systemConfig.setupEnvironment(); +var serverListenPort = LISTEN_PORT; + +console.log("initializing MySQL connection to : " + MYSQL_DB_SERVER_ADDRESS + ":" + MYSQL_DB_NAME); +dbConn.setMySQLParameter(MYSQL_DB_SERVER_ADDRESS, MYSQL_DB_NAME, MYSQL_DB_USER, MYSQL_DB_PASSWORD); + +require('./routes'); + +var certificateLogic = require('./work_unit/authentication_logic.js'); + +// kick start the engine +System.startupHttp(http, serverListenPort, "irext Console V1.2.7"); + +////////////////// authentication middleware ////////////////// +function tokenValidation (req, res, next) { + var bodyParam; + var adminID = null; + var token = null; + bodyParam = req.body; + + if (null != bodyParam) { + adminID = bodyParam.admin_id; + token = bodyParam.token; + } + + if (req.url.indexOf("/irext/int/list_remote_indexes") !== -1) { + // override for get method + adminID = req.query.admin_id; + token = req.query.token; + } + if (req.url.indexOf("/irext/int/search_remote_indexes") !== -1) { + // override for get method + adminID = req.query.admin_id; + token = req.query.token; + } + if (req.url.indexOf("/irext/int/download_remote_index") !== -1) { + // override for get method + adminID = req.query.admin_id; + token = req.query.token; + } + if (req.url.indexOf("/irext/int") !== -1) { + var contentType = req.get("content-type"); + if (null != contentType && contentType.indexOf("multipart/form-data") != -1) { + // request of content type of multipart/form-data would be validated inside each service + next(); + } else { + certificateLogic.verifyTokenWorkUnit(adminID, token, function(validateTokenErr) { + if(errorCode.SUCCESS.code !== validateTokenErr.code) { + var fakeResponse = { + status: validateTokenErr, + entity: null + }; + res.send(fakeResponse); + res.end(); + } else { + next(); + } + }); + } + } else if (req.url.indexOf("/irext/nav/nav_to_url") !== -1) { + var page = bodyParam.page; + var pageCode = page.indexOf("code"); + var pageDoc = page.indexOf("doc"); + var pageStat = page.indexOf("stat"); + + var permissions = ""; + + if (-1 !== pageCode) { + permissions = ",0"; + } else if (-1 !== pageDoc) { + permissions = ",1"; + } else if (-1 !== pageStat) { + permissions = ",2"; + } + + certificateLogic.verifyTokenWithPermissionWorkUnit(adminID, token, permissions, function(validateTokenErr) { + if(errorCode.SUCCESS.code !== validateTokenErr.code) { + res.redirect("/error/auth_error.html"); + } else { + next(); + } + }); + } else { + next(); + } +} diff --git a/console/routes/authentication_routes.js b/console/routes/authentication_routes.js index d1965d9..c807be6 100644 --- a/console/routes/authentication_routes.js +++ b/console/routes/authentication_routes.js @@ -1,10 +1,10 @@ -/** - * Created by strawmanbobi - * 2016-11-27 - */ - -let app = require('../irext_console.js'); -let authenticationService = require('../services/authentication_service.js'); - -app.post('/irext/certificate/admin_login', authenticationService.adminLogin); +/** + * Created by strawmanbobi + * 2016-11-27 + */ + +let app = require('../irext_console.js'); +let authenticationService = require('../services/authentication_service.js'); + +app.post('/irext/certificate/admin_login', authenticationService.adminLogin); app.post('/irext/certificate/token_verify', authenticationService.verifyToken); \ No newline at end of file diff --git a/console/routes/index.js b/console/routes/index.js index acd0bf2..4d9bd09 100644 --- a/console/routes/index.js +++ b/console/routes/index.js @@ -1,11 +1,11 @@ -/** - * Created by strawmanbobi - * 2016-11-27 - */ - -let server = require('../irext_console.js'); - -require('./navigation_routes.js'); -require('./authentication_routes.js'); -require('./code_manage_routes.js'); +/** + * Created by strawmanbobi + * 2016-11-27 + */ + +let server = require('../irext_console.js'); + +require('./navigation_routes.js'); +require('./authentication_routes.js'); +require('./code_manage_routes.js'); require('./stat_routes.js'); \ No newline at end of file diff --git a/console/services/authentication_service.js b/console/services/authentication_service.js index 496e648..be705d2 100644 --- a/console/services/authentication_service.js +++ b/console/services/authentication_service.js @@ -1,57 +1,57 @@ -/** - * Created by strawmanbobi - * 2016-11-27 - */ - -// system inclusion -let logger = require('../mini_poem/logging/logger4js').helper; - -// local inclusion -let ServiceResponse = require('../response/service_response.js'); -let LoginResponse = require('../response/login_response.js'); - -let authenticationLogic = require('../work_unit/authentication_logic.js'); - -let Enums = require('../constants/enums'); -let ErrorCode = require('../constants/error_code'); - - -/* - * function : Admin Login - * parameter : user_name in request body - * password in request body - * return : ServiceResponse - */ -exports.adminLogin = function (req, res) { - let admin = req.body; - let userName = admin.user_name; - let password = admin.password; - - let loginResponse = new LoginResponse(); - authenticationLogic.adminLoginWorkUnit(userName, password, function (adminLoginErr, admin) { - logger.info("admin login successfully, entity = " + JSON.stringify(admin)); - loginResponse.status = adminLoginErr; - loginResponse.entity = admin; - res.send(loginResponse); - res.end(); - }); -}; - -/* - * function : Verify Token - * parameter : id parameter of token KV - * token parameter of token KV - * return : ServiceResponse - */ -exports.verifyToken = function (req, res) { - let bodyParam = req.body; - let id = bodyParam.id; - let token = bodyParam.token; - - let serviceResponse = new ServiceResponse(); - authenticationLogic.verifyTokenWorkUnit(id, token, function (verifyTokenErr) { - serviceResponse.status = verifyTokenErr; - res.send(serviceResponse); - res.end(); - }); +/** + * Created by strawmanbobi + * 2016-11-27 + */ + +// system inclusion +let logger = require('../mini_poem/logging/logger4js').helper; + +// local inclusion +let ServiceResponse = require('../response/service_response.js'); +let LoginResponse = require('../response/login_response.js'); + +let authenticationLogic = require('../work_unit/authentication_logic.js'); + +let Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); + + +/* + * function : Admin Login + * parameter : user_name in request body + * password in request body + * return : ServiceResponse + */ +exports.adminLogin = function (req, res) { + let admin = req.body; + let userName = admin.user_name; + let password = admin.password; + + let loginResponse = new LoginResponse(); + authenticationLogic.adminLoginWorkUnit(userName, password, function (adminLoginErr, admin) { + logger.info("admin login successfully, entity = " + JSON.stringify(admin)); + loginResponse.status = adminLoginErr; + loginResponse.entity = admin; + res.send(loginResponse); + res.end(); + }); +}; + +/* + * function : Verify Token + * parameter : id parameter of token KV + * token parameter of token KV + * return : ServiceResponse + */ +exports.verifyToken = function (req, res) { + let bodyParam = req.body; + let id = bodyParam.id; + let token = bodyParam.token; + + let serviceResponse = new ServiceResponse(); + authenticationLogic.verifyTokenWorkUnit(id, token, function (verifyTokenErr) { + serviceResponse.status = verifyTokenErr; + res.send(serviceResponse); + res.end(); + }); }; \ No newline at end of file diff --git a/console/web/code/locales/dev/translation.json b/console/web/code/locales/dev/translation.json index 590d379..e640953 100644 --- a/console/web/code/locales/dev/translation.json +++ b/console/web/code/locales/dev/translation.json @@ -1,119 +1,119 @@ -{ - "app": { - "name": "IRext" - }, - "page_code": { - "title": "控制台", - "d_try_index_quit": "退出", - "panel_category": "类型", - "panel_brand": "品牌", - "panel_select_province": "选择省份", - "panel_select_city": "选择城市", - "d_create_index_title": "新建编码", - "d_create_index_priority": "优先排序", - "d_create_index_category": "家电类型", - "d_create_index_brand": "家电品牌", - "d_create_index_province": "选择省份", - "d_create_index_city": "选择城市", - "d_create_index_sp": "选择SP", - "d_create_index_protocol": "编码协议", - "d_create_index_subcate": "编码类型", - "d_create_index_subcate_binary": "Binary", - "d_create_index_subcate_quaternary": "Quaternary", - "d_create_index_subcate_hexdecimal": "Hexadecimal", - "d_create_index_code_name": "码源名称", - "d_create_index_code_file": "码源文件 ", - "d_create_index_submit": "提交", - "d_create_index_cancel": "取消", - "d_search_index_title": "搜索编码", - "d_search_index_map": "编码映射", - "d_search_index_search": "搜索", - "d_search_index_cancel": "取消", - "d_delete_index_title": "删除编码", - "d_delete_index_delete": "删除", - "d_delete_index_cancel": "取消", - "d_fallback_index_title": "回退编码", - "d_fallback_index_tip": "确认要回退编码到待验证状态吗?", - "d_fallback_index_fallback": "确定", - "d_fallback_index_cancel": "取消", - "d_verify_index_title": "验证编码", - "d_verify_index_verify": "确定", - "d_verify_index_cancel": "取消", - "d_publish_index_title": "发布编码", - "d_publish_index_publish": "发布", - "d_publish_index_cancel": "取消", - "d_submit_index_title": "提交编码文件", - "d_submit_index_progress": "正在提交", - "d_submit_index_ok": "确定", - "d_submit_protocol_title": "提交协议文件", - "d_submit_protocol_progress": "正在提交", - "d_submit_protocol_ok": "确定", - "d_create_brand_title": "创建品牌", - "d_create_category": "电器类型", - "d_create_brand_name": "品牌名称", - "d_create_brand_name_en": "英文名称", - "d_create_brand_name_tw": "繁中名称", - "d_create_brand_priority": "优先排序", - "d_create_brand_ok": "确定创建", - "d_create_protocol_title": "创建协议", - "d_create_protocol_name": "协议名称", - "d_create_protocol_file": "协议文件", - "d_create_protocol_type": "协议类型", - "d_create_protocol_binary": "Binary", - "d_create_protocol_quaternary": "Quaternary", - "d_create_protocol_hexadecimal": "Hexadecimal", - "d_create_protocol_ok": "确定创建", - "d_hint_title": "提示", - "d_hint_ok": "确定", - "d_panel_category_init": "空调", - "d_panel_city_init": "北京市", - "d_table_category_cn": "种类", - "d_table_brand_cn": "品牌", - "d_table_city_cn": "城市", - "d_table_operator_cn": "运营商", - "d_table_priority_cn": "优先级", - "d_table_protocol_cn": "协议", - "d_table_remote_cn": "控制码", - "d_table_status_cn": "状态", - "d_table_contributor_cn": "贡献者", - "d_status_published": "已发布", - "d_status_to_verify": "待验证", - "d_status_passed": "通过", - "d_status_failed": "未通过", - "d_status_duplicated": "重复", - "d_hint_common_select_index": "请先选中一个索引", - "d_hint_input_index_name": "请输入编码名称", - "d_hint_input_index_file": "请上传编码文件", - "d_hint_delete_success": "成功删除索引", - "d_hint_delete_failed": "删除索引失败", - "d_hint_fallback_success": "成功回退索引", - "d_hint_fallback_failed": "回退索引失败", - "d_hint_update_success": "成功更新索引", - "d_hint_update_failed": "更新索引失败", - "d_hint_publishing_brand": "正在发布新增品牌,请稍候...", - "d_hint_publishing_index": "正在发布新增编码,请稍候...", - "d_hint_publish_success": "编码发布成功", - "d_hint_publish_failed": "编码发布失败", - "d_hint_create_brand_fill_name": "请填写名称", - "d_hint_create_brand_existed": "此项目已存在", - "d_hint_create_brand_success": "创建品牌成功", - "d_hint_create_brand_failed": "创建品牌失败", - "d_hint_create_protocol_fill_name": "请输入协议名称", - "d_hint_create_protocol_upload_file": "请上传协议XML文件", - "d_hint_init_all_cities": "所有城市", - "d_hint_fallback_confirm": "确认要回退", - "d_hint_delete_confirm": "确认要删除", - "d_pass": "通过", - "d_not_pass": "不通过", - "d_hint_confirm_to": "确认要", - "d_hint_confirm_q": "吗?", - "d_hint_publish_totally": "共有", - "d_hint_publish_brands_and": " 个品牌,和 ", - "d_hint_publish_indexes_to_publish_confirm": " 编码索引待发布,请确认", - "d_hint_category_placeholder": "选择类型", - "d_hint_province_placeholder": "选择省份", - "d_hint_city_placeholder": "选择城市", - "d_hint_sp_placeholder": "选择SP", - "d_hint_brand_placeholder": "选择品牌" - } +{ + "app": { + "name": "IRext" + }, + "page_code": { + "title": "控制台", + "d_try_index_quit": "退出", + "panel_category": "类型", + "panel_brand": "品牌", + "panel_select_province": "选择省份", + "panel_select_city": "选择城市", + "d_create_index_title": "新建编码", + "d_create_index_priority": "优先排序", + "d_create_index_category": "家电类型", + "d_create_index_brand": "家电品牌", + "d_create_index_province": "选择省份", + "d_create_index_city": "选择城市", + "d_create_index_sp": "选择SP", + "d_create_index_protocol": "编码协议", + "d_create_index_subcate": "编码类型", + "d_create_index_subcate_binary": "Binary", + "d_create_index_subcate_quaternary": "Quaternary", + "d_create_index_subcate_hexdecimal": "Hexadecimal", + "d_create_index_code_name": "码源名称", + "d_create_index_code_file": "码源文件 ", + "d_create_index_submit": "提交", + "d_create_index_cancel": "取消", + "d_search_index_title": "搜索编码", + "d_search_index_map": "编码映射", + "d_search_index_search": "搜索", + "d_search_index_cancel": "取消", + "d_delete_index_title": "删除编码", + "d_delete_index_delete": "删除", + "d_delete_index_cancel": "取消", + "d_fallback_index_title": "回退编码", + "d_fallback_index_tip": "确认要回退编码到待验证状态吗?", + "d_fallback_index_fallback": "确定", + "d_fallback_index_cancel": "取消", + "d_verify_index_title": "验证编码", + "d_verify_index_verify": "确定", + "d_verify_index_cancel": "取消", + "d_publish_index_title": "发布编码", + "d_publish_index_publish": "发布", + "d_publish_index_cancel": "取消", + "d_submit_index_title": "提交编码文件", + "d_submit_index_progress": "正在提交", + "d_submit_index_ok": "确定", + "d_submit_protocol_title": "提交协议文件", + "d_submit_protocol_progress": "正在提交", + "d_submit_protocol_ok": "确定", + "d_create_brand_title": "创建品牌", + "d_create_category": "电器类型", + "d_create_brand_name": "品牌名称", + "d_create_brand_name_en": "英文名称", + "d_create_brand_name_tw": "繁中名称", + "d_create_brand_priority": "优先排序", + "d_create_brand_ok": "确定创建", + "d_create_protocol_title": "创建协议", + "d_create_protocol_name": "协议名称", + "d_create_protocol_file": "协议文件", + "d_create_protocol_type": "协议类型", + "d_create_protocol_binary": "Binary", + "d_create_protocol_quaternary": "Quaternary", + "d_create_protocol_hexadecimal": "Hexadecimal", + "d_create_protocol_ok": "确定创建", + "d_hint_title": "提示", + "d_hint_ok": "确定", + "d_panel_category_init": "空调", + "d_panel_city_init": "北京市", + "d_table_category_cn": "种类", + "d_table_brand_cn": "品牌", + "d_table_city_cn": "城市", + "d_table_operator_cn": "运营商", + "d_table_priority_cn": "优先级", + "d_table_protocol_cn": "协议", + "d_table_remote_cn": "控制码", + "d_table_status_cn": "状态", + "d_table_contributor_cn": "贡献者", + "d_status_published": "已发布", + "d_status_to_verify": "待验证", + "d_status_passed": "通过", + "d_status_failed": "未通过", + "d_status_duplicated": "重复", + "d_hint_common_select_index": "请先选中一个索引", + "d_hint_input_index_name": "请输入编码名称", + "d_hint_input_index_file": "请上传编码文件", + "d_hint_delete_success": "成功删除索引", + "d_hint_delete_failed": "删除索引失败", + "d_hint_fallback_success": "成功回退索引", + "d_hint_fallback_failed": "回退索引失败", + "d_hint_update_success": "成功更新索引", + "d_hint_update_failed": "更新索引失败", + "d_hint_publishing_brand": "正在发布新增品牌,请稍候...", + "d_hint_publishing_index": "正在发布新增编码,请稍候...", + "d_hint_publish_success": "编码发布成功", + "d_hint_publish_failed": "编码发布失败", + "d_hint_create_brand_fill_name": "请填写名称", + "d_hint_create_brand_existed": "此项目已存在", + "d_hint_create_brand_success": "创建品牌成功", + "d_hint_create_brand_failed": "创建品牌失败", + "d_hint_create_protocol_fill_name": "请输入协议名称", + "d_hint_create_protocol_upload_file": "请上传协议XML文件", + "d_hint_init_all_cities": "所有城市", + "d_hint_fallback_confirm": "确认要回退", + "d_hint_delete_confirm": "确认要删除", + "d_pass": "通过", + "d_not_pass": "不通过", + "d_hint_confirm_to": "确认要", + "d_hint_confirm_q": "吗?", + "d_hint_publish_totally": "共有", + "d_hint_publish_brands_and": " 个品牌,和 ", + "d_hint_publish_indexes_to_publish_confirm": " 编码索引待发布,请确认", + "d_hint_category_placeholder": "选择类型", + "d_hint_province_placeholder": "选择省份", + "d_hint_city_placeholder": "选择城市", + "d_hint_sp_placeholder": "选择SP", + "d_hint_brand_placeholder": "选择品牌" + } } \ No newline at end of file diff --git a/console/web/code/locales/zh-CN/translation.json b/console/web/code/locales/zh-CN/translation.json index 590d379..e640953 100644 --- a/console/web/code/locales/zh-CN/translation.json +++ b/console/web/code/locales/zh-CN/translation.json @@ -1,119 +1,119 @@ -{ - "app": { - "name": "IRext" - }, - "page_code": { - "title": "控制台", - "d_try_index_quit": "退出", - "panel_category": "类型", - "panel_brand": "品牌", - "panel_select_province": "选择省份", - "panel_select_city": "选择城市", - "d_create_index_title": "新建编码", - "d_create_index_priority": "优先排序", - "d_create_index_category": "家电类型", - "d_create_index_brand": "家电品牌", - "d_create_index_province": "选择省份", - "d_create_index_city": "选择城市", - "d_create_index_sp": "选择SP", - "d_create_index_protocol": "编码协议", - "d_create_index_subcate": "编码类型", - "d_create_index_subcate_binary": "Binary", - "d_create_index_subcate_quaternary": "Quaternary", - "d_create_index_subcate_hexdecimal": "Hexadecimal", - "d_create_index_code_name": "码源名称", - "d_create_index_code_file": "码源文件 ", - "d_create_index_submit": "提交", - "d_create_index_cancel": "取消", - "d_search_index_title": "搜索编码", - "d_search_index_map": "编码映射", - "d_search_index_search": "搜索", - "d_search_index_cancel": "取消", - "d_delete_index_title": "删除编码", - "d_delete_index_delete": "删除", - "d_delete_index_cancel": "取消", - "d_fallback_index_title": "回退编码", - "d_fallback_index_tip": "确认要回退编码到待验证状态吗?", - "d_fallback_index_fallback": "确定", - "d_fallback_index_cancel": "取消", - "d_verify_index_title": "验证编码", - "d_verify_index_verify": "确定", - "d_verify_index_cancel": "取消", - "d_publish_index_title": "发布编码", - "d_publish_index_publish": "发布", - "d_publish_index_cancel": "取消", - "d_submit_index_title": "提交编码文件", - "d_submit_index_progress": "正在提交", - "d_submit_index_ok": "确定", - "d_submit_protocol_title": "提交协议文件", - "d_submit_protocol_progress": "正在提交", - "d_submit_protocol_ok": "确定", - "d_create_brand_title": "创建品牌", - "d_create_category": "电器类型", - "d_create_brand_name": "品牌名称", - "d_create_brand_name_en": "英文名称", - "d_create_brand_name_tw": "繁中名称", - "d_create_brand_priority": "优先排序", - "d_create_brand_ok": "确定创建", - "d_create_protocol_title": "创建协议", - "d_create_protocol_name": "协议名称", - "d_create_protocol_file": "协议文件", - "d_create_protocol_type": "协议类型", - "d_create_protocol_binary": "Binary", - "d_create_protocol_quaternary": "Quaternary", - "d_create_protocol_hexadecimal": "Hexadecimal", - "d_create_protocol_ok": "确定创建", - "d_hint_title": "提示", - "d_hint_ok": "确定", - "d_panel_category_init": "空调", - "d_panel_city_init": "北京市", - "d_table_category_cn": "种类", - "d_table_brand_cn": "品牌", - "d_table_city_cn": "城市", - "d_table_operator_cn": "运营商", - "d_table_priority_cn": "优先级", - "d_table_protocol_cn": "协议", - "d_table_remote_cn": "控制码", - "d_table_status_cn": "状态", - "d_table_contributor_cn": "贡献者", - "d_status_published": "已发布", - "d_status_to_verify": "待验证", - "d_status_passed": "通过", - "d_status_failed": "未通过", - "d_status_duplicated": "重复", - "d_hint_common_select_index": "请先选中一个索引", - "d_hint_input_index_name": "请输入编码名称", - "d_hint_input_index_file": "请上传编码文件", - "d_hint_delete_success": "成功删除索引", - "d_hint_delete_failed": "删除索引失败", - "d_hint_fallback_success": "成功回退索引", - "d_hint_fallback_failed": "回退索引失败", - "d_hint_update_success": "成功更新索引", - "d_hint_update_failed": "更新索引失败", - "d_hint_publishing_brand": "正在发布新增品牌,请稍候...", - "d_hint_publishing_index": "正在发布新增编码,请稍候...", - "d_hint_publish_success": "编码发布成功", - "d_hint_publish_failed": "编码发布失败", - "d_hint_create_brand_fill_name": "请填写名称", - "d_hint_create_brand_existed": "此项目已存在", - "d_hint_create_brand_success": "创建品牌成功", - "d_hint_create_brand_failed": "创建品牌失败", - "d_hint_create_protocol_fill_name": "请输入协议名称", - "d_hint_create_protocol_upload_file": "请上传协议XML文件", - "d_hint_init_all_cities": "所有城市", - "d_hint_fallback_confirm": "确认要回退", - "d_hint_delete_confirm": "确认要删除", - "d_pass": "通过", - "d_not_pass": "不通过", - "d_hint_confirm_to": "确认要", - "d_hint_confirm_q": "吗?", - "d_hint_publish_totally": "共有", - "d_hint_publish_brands_and": " 个品牌,和 ", - "d_hint_publish_indexes_to_publish_confirm": " 编码索引待发布,请确认", - "d_hint_category_placeholder": "选择类型", - "d_hint_province_placeholder": "选择省份", - "d_hint_city_placeholder": "选择城市", - "d_hint_sp_placeholder": "选择SP", - "d_hint_brand_placeholder": "选择品牌" - } +{ + "app": { + "name": "IRext" + }, + "page_code": { + "title": "控制台", + "d_try_index_quit": "退出", + "panel_category": "类型", + "panel_brand": "品牌", + "panel_select_province": "选择省份", + "panel_select_city": "选择城市", + "d_create_index_title": "新建编码", + "d_create_index_priority": "优先排序", + "d_create_index_category": "家电类型", + "d_create_index_brand": "家电品牌", + "d_create_index_province": "选择省份", + "d_create_index_city": "选择城市", + "d_create_index_sp": "选择SP", + "d_create_index_protocol": "编码协议", + "d_create_index_subcate": "编码类型", + "d_create_index_subcate_binary": "Binary", + "d_create_index_subcate_quaternary": "Quaternary", + "d_create_index_subcate_hexdecimal": "Hexadecimal", + "d_create_index_code_name": "码源名称", + "d_create_index_code_file": "码源文件 ", + "d_create_index_submit": "提交", + "d_create_index_cancel": "取消", + "d_search_index_title": "搜索编码", + "d_search_index_map": "编码映射", + "d_search_index_search": "搜索", + "d_search_index_cancel": "取消", + "d_delete_index_title": "删除编码", + "d_delete_index_delete": "删除", + "d_delete_index_cancel": "取消", + "d_fallback_index_title": "回退编码", + "d_fallback_index_tip": "确认要回退编码到待验证状态吗?", + "d_fallback_index_fallback": "确定", + "d_fallback_index_cancel": "取消", + "d_verify_index_title": "验证编码", + "d_verify_index_verify": "确定", + "d_verify_index_cancel": "取消", + "d_publish_index_title": "发布编码", + "d_publish_index_publish": "发布", + "d_publish_index_cancel": "取消", + "d_submit_index_title": "提交编码文件", + "d_submit_index_progress": "正在提交", + "d_submit_index_ok": "确定", + "d_submit_protocol_title": "提交协议文件", + "d_submit_protocol_progress": "正在提交", + "d_submit_protocol_ok": "确定", + "d_create_brand_title": "创建品牌", + "d_create_category": "电器类型", + "d_create_brand_name": "品牌名称", + "d_create_brand_name_en": "英文名称", + "d_create_brand_name_tw": "繁中名称", + "d_create_brand_priority": "优先排序", + "d_create_brand_ok": "确定创建", + "d_create_protocol_title": "创建协议", + "d_create_protocol_name": "协议名称", + "d_create_protocol_file": "协议文件", + "d_create_protocol_type": "协议类型", + "d_create_protocol_binary": "Binary", + "d_create_protocol_quaternary": "Quaternary", + "d_create_protocol_hexadecimal": "Hexadecimal", + "d_create_protocol_ok": "确定创建", + "d_hint_title": "提示", + "d_hint_ok": "确定", + "d_panel_category_init": "空调", + "d_panel_city_init": "北京市", + "d_table_category_cn": "种类", + "d_table_brand_cn": "品牌", + "d_table_city_cn": "城市", + "d_table_operator_cn": "运营商", + "d_table_priority_cn": "优先级", + "d_table_protocol_cn": "协议", + "d_table_remote_cn": "控制码", + "d_table_status_cn": "状态", + "d_table_contributor_cn": "贡献者", + "d_status_published": "已发布", + "d_status_to_verify": "待验证", + "d_status_passed": "通过", + "d_status_failed": "未通过", + "d_status_duplicated": "重复", + "d_hint_common_select_index": "请先选中一个索引", + "d_hint_input_index_name": "请输入编码名称", + "d_hint_input_index_file": "请上传编码文件", + "d_hint_delete_success": "成功删除索引", + "d_hint_delete_failed": "删除索引失败", + "d_hint_fallback_success": "成功回退索引", + "d_hint_fallback_failed": "回退索引失败", + "d_hint_update_success": "成功更新索引", + "d_hint_update_failed": "更新索引失败", + "d_hint_publishing_brand": "正在发布新增品牌,请稍候...", + "d_hint_publishing_index": "正在发布新增编码,请稍候...", + "d_hint_publish_success": "编码发布成功", + "d_hint_publish_failed": "编码发布失败", + "d_hint_create_brand_fill_name": "请填写名称", + "d_hint_create_brand_existed": "此项目已存在", + "d_hint_create_brand_success": "创建品牌成功", + "d_hint_create_brand_failed": "创建品牌失败", + "d_hint_create_protocol_fill_name": "请输入协议名称", + "d_hint_create_protocol_upload_file": "请上传协议XML文件", + "d_hint_init_all_cities": "所有城市", + "d_hint_fallback_confirm": "确认要回退", + "d_hint_delete_confirm": "确认要删除", + "d_pass": "通过", + "d_not_pass": "不通过", + "d_hint_confirm_to": "确认要", + "d_hint_confirm_q": "吗?", + "d_hint_publish_totally": "共有", + "d_hint_publish_brands_and": " 个品牌,和 ", + "d_hint_publish_indexes_to_publish_confirm": " 编码索引待发布,请确认", + "d_hint_category_placeholder": "选择类型", + "d_hint_province_placeholder": "选择省份", + "d_hint_city_placeholder": "选择城市", + "d_hint_sp_placeholder": "选择SP", + "d_hint_brand_placeholder": "选择品牌" + } } \ No newline at end of file diff --git a/console/web/code/locales/zh/translation.json b/console/web/code/locales/zh/translation.json index 590d379..e640953 100644 --- a/console/web/code/locales/zh/translation.json +++ b/console/web/code/locales/zh/translation.json @@ -1,119 +1,119 @@ -{ - "app": { - "name": "IRext" - }, - "page_code": { - "title": "控制台", - "d_try_index_quit": "退出", - "panel_category": "类型", - "panel_brand": "品牌", - "panel_select_province": "选择省份", - "panel_select_city": "选择城市", - "d_create_index_title": "新建编码", - "d_create_index_priority": "优先排序", - "d_create_index_category": "家电类型", - "d_create_index_brand": "家电品牌", - "d_create_index_province": "选择省份", - "d_create_index_city": "选择城市", - "d_create_index_sp": "选择SP", - "d_create_index_protocol": "编码协议", - "d_create_index_subcate": "编码类型", - "d_create_index_subcate_binary": "Binary", - "d_create_index_subcate_quaternary": "Quaternary", - "d_create_index_subcate_hexdecimal": "Hexadecimal", - "d_create_index_code_name": "码源名称", - "d_create_index_code_file": "码源文件 ", - "d_create_index_submit": "提交", - "d_create_index_cancel": "取消", - "d_search_index_title": "搜索编码", - "d_search_index_map": "编码映射", - "d_search_index_search": "搜索", - "d_search_index_cancel": "取消", - "d_delete_index_title": "删除编码", - "d_delete_index_delete": "删除", - "d_delete_index_cancel": "取消", - "d_fallback_index_title": "回退编码", - "d_fallback_index_tip": "确认要回退编码到待验证状态吗?", - "d_fallback_index_fallback": "确定", - "d_fallback_index_cancel": "取消", - "d_verify_index_title": "验证编码", - "d_verify_index_verify": "确定", - "d_verify_index_cancel": "取消", - "d_publish_index_title": "发布编码", - "d_publish_index_publish": "发布", - "d_publish_index_cancel": "取消", - "d_submit_index_title": "提交编码文件", - "d_submit_index_progress": "正在提交", - "d_submit_index_ok": "确定", - "d_submit_protocol_title": "提交协议文件", - "d_submit_protocol_progress": "正在提交", - "d_submit_protocol_ok": "确定", - "d_create_brand_title": "创建品牌", - "d_create_category": "电器类型", - "d_create_brand_name": "品牌名称", - "d_create_brand_name_en": "英文名称", - "d_create_brand_name_tw": "繁中名称", - "d_create_brand_priority": "优先排序", - "d_create_brand_ok": "确定创建", - "d_create_protocol_title": "创建协议", - "d_create_protocol_name": "协议名称", - "d_create_protocol_file": "协议文件", - "d_create_protocol_type": "协议类型", - "d_create_protocol_binary": "Binary", - "d_create_protocol_quaternary": "Quaternary", - "d_create_protocol_hexadecimal": "Hexadecimal", - "d_create_protocol_ok": "确定创建", - "d_hint_title": "提示", - "d_hint_ok": "确定", - "d_panel_category_init": "空调", - "d_panel_city_init": "北京市", - "d_table_category_cn": "种类", - "d_table_brand_cn": "品牌", - "d_table_city_cn": "城市", - "d_table_operator_cn": "运营商", - "d_table_priority_cn": "优先级", - "d_table_protocol_cn": "协议", - "d_table_remote_cn": "控制码", - "d_table_status_cn": "状态", - "d_table_contributor_cn": "贡献者", - "d_status_published": "已发布", - "d_status_to_verify": "待验证", - "d_status_passed": "通过", - "d_status_failed": "未通过", - "d_status_duplicated": "重复", - "d_hint_common_select_index": "请先选中一个索引", - "d_hint_input_index_name": "请输入编码名称", - "d_hint_input_index_file": "请上传编码文件", - "d_hint_delete_success": "成功删除索引", - "d_hint_delete_failed": "删除索引失败", - "d_hint_fallback_success": "成功回退索引", - "d_hint_fallback_failed": "回退索引失败", - "d_hint_update_success": "成功更新索引", - "d_hint_update_failed": "更新索引失败", - "d_hint_publishing_brand": "正在发布新增品牌,请稍候...", - "d_hint_publishing_index": "正在发布新增编码,请稍候...", - "d_hint_publish_success": "编码发布成功", - "d_hint_publish_failed": "编码发布失败", - "d_hint_create_brand_fill_name": "请填写名称", - "d_hint_create_brand_existed": "此项目已存在", - "d_hint_create_brand_success": "创建品牌成功", - "d_hint_create_brand_failed": "创建品牌失败", - "d_hint_create_protocol_fill_name": "请输入协议名称", - "d_hint_create_protocol_upload_file": "请上传协议XML文件", - "d_hint_init_all_cities": "所有城市", - "d_hint_fallback_confirm": "确认要回退", - "d_hint_delete_confirm": "确认要删除", - "d_pass": "通过", - "d_not_pass": "不通过", - "d_hint_confirm_to": "确认要", - "d_hint_confirm_q": "吗?", - "d_hint_publish_totally": "共有", - "d_hint_publish_brands_and": " 个品牌,和 ", - "d_hint_publish_indexes_to_publish_confirm": " 编码索引待发布,请确认", - "d_hint_category_placeholder": "选择类型", - "d_hint_province_placeholder": "选择省份", - "d_hint_city_placeholder": "选择城市", - "d_hint_sp_placeholder": "选择SP", - "d_hint_brand_placeholder": "选择品牌" - } +{ + "app": { + "name": "IRext" + }, + "page_code": { + "title": "控制台", + "d_try_index_quit": "退出", + "panel_category": "类型", + "panel_brand": "品牌", + "panel_select_province": "选择省份", + "panel_select_city": "选择城市", + "d_create_index_title": "新建编码", + "d_create_index_priority": "优先排序", + "d_create_index_category": "家电类型", + "d_create_index_brand": "家电品牌", + "d_create_index_province": "选择省份", + "d_create_index_city": "选择城市", + "d_create_index_sp": "选择SP", + "d_create_index_protocol": "编码协议", + "d_create_index_subcate": "编码类型", + "d_create_index_subcate_binary": "Binary", + "d_create_index_subcate_quaternary": "Quaternary", + "d_create_index_subcate_hexdecimal": "Hexadecimal", + "d_create_index_code_name": "码源名称", + "d_create_index_code_file": "码源文件 ", + "d_create_index_submit": "提交", + "d_create_index_cancel": "取消", + "d_search_index_title": "搜索编码", + "d_search_index_map": "编码映射", + "d_search_index_search": "搜索", + "d_search_index_cancel": "取消", + "d_delete_index_title": "删除编码", + "d_delete_index_delete": "删除", + "d_delete_index_cancel": "取消", + "d_fallback_index_title": "回退编码", + "d_fallback_index_tip": "确认要回退编码到待验证状态吗?", + "d_fallback_index_fallback": "确定", + "d_fallback_index_cancel": "取消", + "d_verify_index_title": "验证编码", + "d_verify_index_verify": "确定", + "d_verify_index_cancel": "取消", + "d_publish_index_title": "发布编码", + "d_publish_index_publish": "发布", + "d_publish_index_cancel": "取消", + "d_submit_index_title": "提交编码文件", + "d_submit_index_progress": "正在提交", + "d_submit_index_ok": "确定", + "d_submit_protocol_title": "提交协议文件", + "d_submit_protocol_progress": "正在提交", + "d_submit_protocol_ok": "确定", + "d_create_brand_title": "创建品牌", + "d_create_category": "电器类型", + "d_create_brand_name": "品牌名称", + "d_create_brand_name_en": "英文名称", + "d_create_brand_name_tw": "繁中名称", + "d_create_brand_priority": "优先排序", + "d_create_brand_ok": "确定创建", + "d_create_protocol_title": "创建协议", + "d_create_protocol_name": "协议名称", + "d_create_protocol_file": "协议文件", + "d_create_protocol_type": "协议类型", + "d_create_protocol_binary": "Binary", + "d_create_protocol_quaternary": "Quaternary", + "d_create_protocol_hexadecimal": "Hexadecimal", + "d_create_protocol_ok": "确定创建", + "d_hint_title": "提示", + "d_hint_ok": "确定", + "d_panel_category_init": "空调", + "d_panel_city_init": "北京市", + "d_table_category_cn": "种类", + "d_table_brand_cn": "品牌", + "d_table_city_cn": "城市", + "d_table_operator_cn": "运营商", + "d_table_priority_cn": "优先级", + "d_table_protocol_cn": "协议", + "d_table_remote_cn": "控制码", + "d_table_status_cn": "状态", + "d_table_contributor_cn": "贡献者", + "d_status_published": "已发布", + "d_status_to_verify": "待验证", + "d_status_passed": "通过", + "d_status_failed": "未通过", + "d_status_duplicated": "重复", + "d_hint_common_select_index": "请先选中一个索引", + "d_hint_input_index_name": "请输入编码名称", + "d_hint_input_index_file": "请上传编码文件", + "d_hint_delete_success": "成功删除索引", + "d_hint_delete_failed": "删除索引失败", + "d_hint_fallback_success": "成功回退索引", + "d_hint_fallback_failed": "回退索引失败", + "d_hint_update_success": "成功更新索引", + "d_hint_update_failed": "更新索引失败", + "d_hint_publishing_brand": "正在发布新增品牌,请稍候...", + "d_hint_publishing_index": "正在发布新增编码,请稍候...", + "d_hint_publish_success": "编码发布成功", + "d_hint_publish_failed": "编码发布失败", + "d_hint_create_brand_fill_name": "请填写名称", + "d_hint_create_brand_existed": "此项目已存在", + "d_hint_create_brand_success": "创建品牌成功", + "d_hint_create_brand_failed": "创建品牌失败", + "d_hint_create_protocol_fill_name": "请输入协议名称", + "d_hint_create_protocol_upload_file": "请上传协议XML文件", + "d_hint_init_all_cities": "所有城市", + "d_hint_fallback_confirm": "确认要回退", + "d_hint_delete_confirm": "确认要删除", + "d_pass": "通过", + "d_not_pass": "不通过", + "d_hint_confirm_to": "确认要", + "d_hint_confirm_q": "吗?", + "d_hint_publish_totally": "共有", + "d_hint_publish_brands_and": " 个品牌,和 ", + "d_hint_publish_indexes_to_publish_confirm": " 编码索引待发布,请确认", + "d_hint_category_placeholder": "选择类型", + "d_hint_province_placeholder": "选择省份", + "d_hint_city_placeholder": "选择城市", + "d_hint_sp_placeholder": "选择SP", + "d_hint_brand_placeholder": "选择品牌" + } } \ No newline at end of file diff --git a/console/web/error/locales/dev/translation.json b/console/web/error/locales/dev/translation.json index b8ba6a5..62ac197 100644 --- a/console/web/error/locales/dev/translation.json +++ b/console/web/error/locales/dev/translation.json @@ -1,18 +1,18 @@ -{ - "app": { - "name": "IRext" - }, - "page_error": { - "title_error": "控制台错误", - "title_confirm_pw": "确认密码", - "auth_error": "认证错误", - "access_after_login": "请在登录之后访问", - "access_to_console": "访问控制台", - "change_pw": "修改密码", - "register": "用户注册", - "change_pw_success": "修改密码成功,请牢记您的新密码:", - "change_pw_fail": "未能成功修改密码", - "register_success": "注册用户成功,请牢记您的新密码:", - "register_fail": "未能成功注册用户" - } -} +{ + "app": { + "name": "IRext" + }, + "page_error": { + "title_error": "控制台错误", + "title_confirm_pw": "确认密码", + "auth_error": "认证错误", + "access_after_login": "请在登录之后访问", + "access_to_console": "访问控制台", + "change_pw": "修改密码", + "register": "用户注册", + "change_pw_success": "修改密码成功,请牢记您的新密码:", + "change_pw_fail": "未能成功修改密码", + "register_success": "注册用户成功,请牢记您的新密码:", + "register_fail": "未能成功注册用户" + } +} diff --git a/console/web/error/locales/en-US/translation.json b/console/web/error/locales/en-US/translation.json index a8af076..5be64d4 100644 --- a/console/web/error/locales/en-US/translation.json +++ b/console/web/error/locales/en-US/translation.json @@ -1,18 +1,18 @@ -{ - "app": { - "name": "IRext" - }, - "page_error": { - "title_error": "Console Error", - "title_confirm_pw": "Confirm Password", - "auth_error": "Authentication Error", - "access_after_login": "Please access to console after sign in", - "access_to_console": "Access to console", - "change_pw": "Change password", - "register": "Register", - "change_pw_success": "Password has been changed, please keep it firmly : ", - "change_pw_fail": "Failed to change password", - "register_success": "User has been registered, please keep the password firmly : ", - "register_fail": "Failed to register user" - } -} +{ + "app": { + "name": "IRext" + }, + "page_error": { + "title_error": "Console Error", + "title_confirm_pw": "Confirm Password", + "auth_error": "Authentication Error", + "access_after_login": "Please access to console after sign in", + "access_to_console": "Access to console", + "change_pw": "Change password", + "register": "Register", + "change_pw_success": "Password has been changed, please keep it firmly : ", + "change_pw_fail": "Failed to change password", + "register_success": "User has been registered, please keep the password firmly : ", + "register_fail": "Failed to register user" + } +} diff --git a/console/web/error/locales/en/translation.json b/console/web/error/locales/en/translation.json index a8af076..5be64d4 100644 --- a/console/web/error/locales/en/translation.json +++ b/console/web/error/locales/en/translation.json @@ -1,18 +1,18 @@ -{ - "app": { - "name": "IRext" - }, - "page_error": { - "title_error": "Console Error", - "title_confirm_pw": "Confirm Password", - "auth_error": "Authentication Error", - "access_after_login": "Please access to console after sign in", - "access_to_console": "Access to console", - "change_pw": "Change password", - "register": "Register", - "change_pw_success": "Password has been changed, please keep it firmly : ", - "change_pw_fail": "Failed to change password", - "register_success": "User has been registered, please keep the password firmly : ", - "register_fail": "Failed to register user" - } -} +{ + "app": { + "name": "IRext" + }, + "page_error": { + "title_error": "Console Error", + "title_confirm_pw": "Confirm Password", + "auth_error": "Authentication Error", + "access_after_login": "Please access to console after sign in", + "access_to_console": "Access to console", + "change_pw": "Change password", + "register": "Register", + "change_pw_success": "Password has been changed, please keep it firmly : ", + "change_pw_fail": "Failed to change password", + "register_success": "User has been registered, please keep the password firmly : ", + "register_fail": "Failed to register user" + } +} diff --git a/console/web/error/locales/zh-CN/translation.json b/console/web/error/locales/zh-CN/translation.json index b8ba6a5..62ac197 100644 --- a/console/web/error/locales/zh-CN/translation.json +++ b/console/web/error/locales/zh-CN/translation.json @@ -1,18 +1,18 @@ -{ - "app": { - "name": "IRext" - }, - "page_error": { - "title_error": "控制台错误", - "title_confirm_pw": "确认密码", - "auth_error": "认证错误", - "access_after_login": "请在登录之后访问", - "access_to_console": "访问控制台", - "change_pw": "修改密码", - "register": "用户注册", - "change_pw_success": "修改密码成功,请牢记您的新密码:", - "change_pw_fail": "未能成功修改密码", - "register_success": "注册用户成功,请牢记您的新密码:", - "register_fail": "未能成功注册用户" - } -} +{ + "app": { + "name": "IRext" + }, + "page_error": { + "title_error": "控制台错误", + "title_confirm_pw": "确认密码", + "auth_error": "认证错误", + "access_after_login": "请在登录之后访问", + "access_to_console": "访问控制台", + "change_pw": "修改密码", + "register": "用户注册", + "change_pw_success": "修改密码成功,请牢记您的新密码:", + "change_pw_fail": "未能成功修改密码", + "register_success": "注册用户成功,请牢记您的新密码:", + "register_fail": "未能成功注册用户" + } +} diff --git a/console/web/error/locales/zh/translation.json b/console/web/error/locales/zh/translation.json index b8ba6a5..62ac197 100644 --- a/console/web/error/locales/zh/translation.json +++ b/console/web/error/locales/zh/translation.json @@ -1,18 +1,18 @@ -{ - "app": { - "name": "IRext" - }, - "page_error": { - "title_error": "控制台错误", - "title_confirm_pw": "确认密码", - "auth_error": "认证错误", - "access_after_login": "请在登录之后访问", - "access_to_console": "访问控制台", - "change_pw": "修改密码", - "register": "用户注册", - "change_pw_success": "修改密码成功,请牢记您的新密码:", - "change_pw_fail": "未能成功修改密码", - "register_success": "注册用户成功,请牢记您的新密码:", - "register_fail": "未能成功注册用户" - } -} +{ + "app": { + "name": "IRext" + }, + "page_error": { + "title_error": "控制台错误", + "title_confirm_pw": "确认密码", + "auth_error": "认证错误", + "access_after_login": "请在登录之后访问", + "access_to_console": "访问控制台", + "change_pw": "修改密码", + "register": "用户注册", + "change_pw_success": "修改密码成功,请牢记您的新密码:", + "change_pw_fail": "未能成功修改密码", + "register_success": "注册用户成功,请牢记您的新密码:", + "register_fail": "未能成功注册用户" + } +} diff --git a/console/web/locales/dev/translation.json b/console/web/locales/dev/translation.json index b6eb2dc..d6d771a 100644 --- a/console/web/locales/dev/translation.json +++ b/console/web/locales/dev/translation.json @@ -1,24 +1,24 @@ -{ - "app": { - "name": "IRext" - }, - "page_index": { - "title": "IRext 本地控制台 - 1.2.7", - "d_signin_title": "登入", - "d_signin_email": "邮箱地址", - "d_signin_password": "密码", - "d_signin_signin": "登入", - "d_changepw_title": "重置密码", - "d_changepw_hint": "系统会自动为你挑选一个6位随机数的新密码,并发送到你的邮件,确认更改密码?", - "d_changepw_confirm": "确定", - "d_changepw_cancel": "取消", - "common_signout": "注销", - "d_signin_success": "登入成功,3秒后自动进入控制台", - "d_signin_failed": "登入失败,请确认邮件地址和密码正确", - "d_signup_email_sent": "带有新密码的邮件已经发送到您的邮箱,请注意查收", - "d_signup_email_occupied": "这个邮件地址已经被使用", - "d_signin_fill_email_pw": "请填写邮件地址和密码", - "d_signin_fill_email": "请填写邮件地址", - "d_signup_email_failed": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误" - } -} +{ + "app": { + "name": "IRext" + }, + "page_index": { + "title": "IRext 本地控制台 - 1.2.7", + "d_signin_title": "登入", + "d_signin_email": "邮箱地址", + "d_signin_password": "密码", + "d_signin_signin": "登入", + "d_changepw_title": "重置密码", + "d_changepw_hint": "系统会自动为你挑选一个6位随机数的新密码,并发送到你的邮件,确认更改密码?", + "d_changepw_confirm": "确定", + "d_changepw_cancel": "取消", + "common_signout": "注销", + "d_signin_success": "登入成功,3秒后自动进入控制台", + "d_signin_failed": "登入失败,请确认邮件地址和密码正确", + "d_signup_email_sent": "带有新密码的邮件已经发送到您的邮箱,请注意查收", + "d_signup_email_occupied": "这个邮件地址已经被使用", + "d_signin_fill_email_pw": "请填写邮件地址和密码", + "d_signin_fill_email": "请填写邮件地址", + "d_signup_email_failed": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误" + } +} diff --git a/console/web/locales/en-US/translation.json b/console/web/locales/en-US/translation.json index 3cf4f74..ab518ee 100644 --- a/console/web/locales/en-US/translation.json +++ b/console/web/locales/en-US/translation.json @@ -1,24 +1,24 @@ -{ - "app": { - "name": "IRext" - }, - "page_index": { - "title": "IRext Local Console - 1.2.7", - "d_signin_title": "Sign in", - "d_signin_email": "Email", - "d_signin_password": "Password", - "d_signin_signin": "Sign in", - "d_changepw_title": "Reset PW", - "d_changepw_hint": "A new password will be generated and an email will be sent to your mail box, confirm it ?", - "d_changepw_confirm": "OK", - "d_changepw_cancel": "Cancel", - "common_signout": "Sign out", - "d_signin_success": "Sign in successfully, redirecting to console in 3 seconds", - "d_signin_failed": "Failed to sign in, please check your email and password", - "d_signup_email_sent": "New password is sent to your email, please check", - "d_signup_email_occupied": "This email address is already in use", - "d_signin_fill_email_pw": "Please fill email and password", - "d_signin_fill_email": "Please fill email", - "d_signup_email_failed": "Failed to reset password, please check your email address" - } +{ + "app": { + "name": "IRext" + }, + "page_index": { + "title": "IRext Local Console - 1.2.7", + "d_signin_title": "Sign in", + "d_signin_email": "Email", + "d_signin_password": "Password", + "d_signin_signin": "Sign in", + "d_changepw_title": "Reset PW", + "d_changepw_hint": "A new password will be generated and an email will be sent to your mail box, confirm it ?", + "d_changepw_confirm": "OK", + "d_changepw_cancel": "Cancel", + "common_signout": "Sign out", + "d_signin_success": "Sign in successfully, redirecting to console in 3 seconds", + "d_signin_failed": "Failed to sign in, please check your email and password", + "d_signup_email_sent": "New password is sent to your email, please check", + "d_signup_email_occupied": "This email address is already in use", + "d_signin_fill_email_pw": "Please fill email and password", + "d_signin_fill_email": "Please fill email", + "d_signup_email_failed": "Failed to reset password, please check your email address" + } } \ No newline at end of file diff --git a/console/web/locales/en/translation.json b/console/web/locales/en/translation.json index 3cf4f74..ab518ee 100644 --- a/console/web/locales/en/translation.json +++ b/console/web/locales/en/translation.json @@ -1,24 +1,24 @@ -{ - "app": { - "name": "IRext" - }, - "page_index": { - "title": "IRext Local Console - 1.2.7", - "d_signin_title": "Sign in", - "d_signin_email": "Email", - "d_signin_password": "Password", - "d_signin_signin": "Sign in", - "d_changepw_title": "Reset PW", - "d_changepw_hint": "A new password will be generated and an email will be sent to your mail box, confirm it ?", - "d_changepw_confirm": "OK", - "d_changepw_cancel": "Cancel", - "common_signout": "Sign out", - "d_signin_success": "Sign in successfully, redirecting to console in 3 seconds", - "d_signin_failed": "Failed to sign in, please check your email and password", - "d_signup_email_sent": "New password is sent to your email, please check", - "d_signup_email_occupied": "This email address is already in use", - "d_signin_fill_email_pw": "Please fill email and password", - "d_signin_fill_email": "Please fill email", - "d_signup_email_failed": "Failed to reset password, please check your email address" - } +{ + "app": { + "name": "IRext" + }, + "page_index": { + "title": "IRext Local Console - 1.2.7", + "d_signin_title": "Sign in", + "d_signin_email": "Email", + "d_signin_password": "Password", + "d_signin_signin": "Sign in", + "d_changepw_title": "Reset PW", + "d_changepw_hint": "A new password will be generated and an email will be sent to your mail box, confirm it ?", + "d_changepw_confirm": "OK", + "d_changepw_cancel": "Cancel", + "common_signout": "Sign out", + "d_signin_success": "Sign in successfully, redirecting to console in 3 seconds", + "d_signin_failed": "Failed to sign in, please check your email and password", + "d_signup_email_sent": "New password is sent to your email, please check", + "d_signup_email_occupied": "This email address is already in use", + "d_signin_fill_email_pw": "Please fill email and password", + "d_signin_fill_email": "Please fill email", + "d_signup_email_failed": "Failed to reset password, please check your email address" + } } \ No newline at end of file diff --git a/console/web/locales/zh-CN/translation.json b/console/web/locales/zh-CN/translation.json index b6eb2dc..d6d771a 100644 --- a/console/web/locales/zh-CN/translation.json +++ b/console/web/locales/zh-CN/translation.json @@ -1,24 +1,24 @@ -{ - "app": { - "name": "IRext" - }, - "page_index": { - "title": "IRext 本地控制台 - 1.2.7", - "d_signin_title": "登入", - "d_signin_email": "邮箱地址", - "d_signin_password": "密码", - "d_signin_signin": "登入", - "d_changepw_title": "重置密码", - "d_changepw_hint": "系统会自动为你挑选一个6位随机数的新密码,并发送到你的邮件,确认更改密码?", - "d_changepw_confirm": "确定", - "d_changepw_cancel": "取消", - "common_signout": "注销", - "d_signin_success": "登入成功,3秒后自动进入控制台", - "d_signin_failed": "登入失败,请确认邮件地址和密码正确", - "d_signup_email_sent": "带有新密码的邮件已经发送到您的邮箱,请注意查收", - "d_signup_email_occupied": "这个邮件地址已经被使用", - "d_signin_fill_email_pw": "请填写邮件地址和密码", - "d_signin_fill_email": "请填写邮件地址", - "d_signup_email_failed": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误" - } -} +{ + "app": { + "name": "IRext" + }, + "page_index": { + "title": "IRext 本地控制台 - 1.2.7", + "d_signin_title": "登入", + "d_signin_email": "邮箱地址", + "d_signin_password": "密码", + "d_signin_signin": "登入", + "d_changepw_title": "重置密码", + "d_changepw_hint": "系统会自动为你挑选一个6位随机数的新密码,并发送到你的邮件,确认更改密码?", + "d_changepw_confirm": "确定", + "d_changepw_cancel": "取消", + "common_signout": "注销", + "d_signin_success": "登入成功,3秒后自动进入控制台", + "d_signin_failed": "登入失败,请确认邮件地址和密码正确", + "d_signup_email_sent": "带有新密码的邮件已经发送到您的邮箱,请注意查收", + "d_signup_email_occupied": "这个邮件地址已经被使用", + "d_signin_fill_email_pw": "请填写邮件地址和密码", + "d_signin_fill_email": "请填写邮件地址", + "d_signup_email_failed": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误" + } +} diff --git a/console/web/locales/zh/translation.json b/console/web/locales/zh/translation.json index b6eb2dc..d6d771a 100644 --- a/console/web/locales/zh/translation.json +++ b/console/web/locales/zh/translation.json @@ -1,24 +1,24 @@ -{ - "app": { - "name": "IRext" - }, - "page_index": { - "title": "IRext 本地控制台 - 1.2.7", - "d_signin_title": "登入", - "d_signin_email": "邮箱地址", - "d_signin_password": "密码", - "d_signin_signin": "登入", - "d_changepw_title": "重置密码", - "d_changepw_hint": "系统会自动为你挑选一个6位随机数的新密码,并发送到你的邮件,确认更改密码?", - "d_changepw_confirm": "确定", - "d_changepw_cancel": "取消", - "common_signout": "注销", - "d_signin_success": "登入成功,3秒后自动进入控制台", - "d_signin_failed": "登入失败,请确认邮件地址和密码正确", - "d_signup_email_sent": "带有新密码的邮件已经发送到您的邮箱,请注意查收", - "d_signup_email_occupied": "这个邮件地址已经被使用", - "d_signin_fill_email_pw": "请填写邮件地址和密码", - "d_signin_fill_email": "请填写邮件地址", - "d_signup_email_failed": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误" - } -} +{ + "app": { + "name": "IRext" + }, + "page_index": { + "title": "IRext 本地控制台 - 1.2.7", + "d_signin_title": "登入", + "d_signin_email": "邮箱地址", + "d_signin_password": "密码", + "d_signin_signin": "登入", + "d_changepw_title": "重置密码", + "d_changepw_hint": "系统会自动为你挑选一个6位随机数的新密码,并发送到你的邮件,确认更改密码?", + "d_changepw_confirm": "确定", + "d_changepw_cancel": "取消", + "common_signout": "注销", + "d_signin_success": "登入成功,3秒后自动进入控制台", + "d_signin_failed": "登入失败,请确认邮件地址和密码正确", + "d_signup_email_sent": "带有新密码的邮件已经发送到您的邮箱,请注意查收", + "d_signup_email_occupied": "这个邮件地址已经被使用", + "d_signin_fill_email_pw": "请填写邮件地址和密码", + "d_signin_fill_email": "请填写邮件地址", + "d_signup_email_failed": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误" + } +} diff --git a/console/work_unit/authentication_logic.js b/console/work_unit/authentication_logic.js index b997431..91eb72a 100644 --- a/console/work_unit/authentication_logic.js +++ b/console/work_unit/authentication_logic.js @@ -1,97 +1,97 @@ -/** - * Created by Strawmanbobi - * 2016-11-27 - */ - -require('../mini_poem/configuration/constants'); - -let AdminAuth = require('../authentication/admin_auth.js'); -let RequestSender = require('../mini_poem/http/request.js'); - -let ErrorCode = require('../constants/error_code.js'); -let logger = require('../mini_poem/logging/logger4js').helper; - -let errorCode = new ErrorCode(); - -let adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD); - -let SIGN_IN_SERVICE = "/irext-server/app/admin_login"; - -exports.adminLoginWorkUnit = function (userName, password, callback) { - let queryParams = new Map(); - - let requestSender = - new RequestSender(EXTERNAL_SERVER_ADDRESS, - EXTERNAL_SERVER_PORT, - SIGN_IN_SERVICE, - queryParams); - - let signinInfo = { - userName : userName, - password : password - }; - requestSender.sendPostRequest(signinInfo, - function(signInRequestErr, signInResponse) { - if (signInRequestErr === errorCode.SUCCESS.code && null != signInResponse) { - let resp = JSON.parse(signInResponse); - if (undefined !== resp.entity) { - let admin = resp.entity; - let token, - key, - ttl = 24 * 60 * 60 * 14, - timeStamp, - name; - timeStamp = new Date().getTime(); - token = admin.token; - key = "admin_" + admin.id; - adminAuth.setAuthInfo(key, token, ttl, function(setAdminAuthErr) { - if (errorCode.SUCCESS.code === setAdminAuthErr.code) { - key = "admin_name_" + admin.id; - name = admin.user_name; - adminAuth.setAuthInfo(key, name, ttl, function(setAdminNameErr) { - if (errorCode.SUCCESS.code === setAdminNameErr.code) { - admin.token = token; - } - callback(setAdminNameErr, admin); - }); - } - }); - } else { - callback(errorCode.FAILED, null); - } - } else { - logger.error("admin sign in failed"); - callback(errorCode.FAILED, null); - } - }); -}; - -exports.verifyTokenWorkUnit = function (id, token, callback) { - let key = "admin_" + id; - adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) { - if (validateAdminAuthErr.code !== errorCode.SUCCESS.code) { - logger.info("token validation failed"); - } - callback(validateAdminAuthErr); - }); -}; - -exports.verifyTokenWithPermissionWorkUnit = function (id, token, permissions, callback) { - let key = "admin_" + id; - adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) { - if (validateAdminAuthErr.code === errorCode.SUCCESS.code) { - logger.info("token validation successfully"); - if (undefined !== result && null !== result && "" !== result) { - if (result.indexOf(permissions) !== -1) { - callback(errorCode.SUCCESS); - } else { - logger.info("permission do not match"); - callback(errorCode.AUTHENTICATION_FAILURE); - } - } - } else { - logger.info("token validation failed"); - callback(validateAdminAuthErr); - } - }); +/** + * Created by Strawmanbobi + * 2016-11-27 + */ + +require('../mini_poem/configuration/constants'); + +let AdminAuth = require('../authentication/admin_auth.js'); +let RequestSender = require('../mini_poem/http/request.js'); + +let ErrorCode = require('../constants/error_code.js'); +let logger = require('../mini_poem/logging/logger4js').helper; + +let errorCode = new ErrorCode(); + +let adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD); + +let SIGN_IN_SERVICE = "/irext-server/app/admin_login"; + +exports.adminLoginWorkUnit = function (userName, password, callback) { + let queryParams = new Map(); + + let requestSender = + new RequestSender(EXTERNAL_SERVER_ADDRESS, + EXTERNAL_SERVER_PORT, + SIGN_IN_SERVICE, + queryParams); + + let signinInfo = { + userName : userName, + password : password + }; + requestSender.sendPostRequest(signinInfo, + function(signInRequestErr, signInResponse) { + if (signInRequestErr === errorCode.SUCCESS.code && null != signInResponse) { + let resp = JSON.parse(signInResponse); + if (undefined !== resp.entity) { + let admin = resp.entity; + let token, + key, + ttl = 24 * 60 * 60 * 14, + timeStamp, + name; + timeStamp = new Date().getTime(); + token = admin.token; + key = "admin_" + admin.id; + adminAuth.setAuthInfo(key, token, ttl, function(setAdminAuthErr) { + if (errorCode.SUCCESS.code === setAdminAuthErr.code) { + key = "admin_name_" + admin.id; + name = admin.user_name; + adminAuth.setAuthInfo(key, name, ttl, function(setAdminNameErr) { + if (errorCode.SUCCESS.code === setAdminNameErr.code) { + admin.token = token; + } + callback(setAdminNameErr, admin); + }); + } + }); + } else { + callback(errorCode.FAILED, null); + } + } else { + logger.error("admin sign in failed"); + callback(errorCode.FAILED, null); + } + }); +}; + +exports.verifyTokenWorkUnit = function (id, token, callback) { + let key = "admin_" + id; + adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) { + if (validateAdminAuthErr.code !== errorCode.SUCCESS.code) { + logger.info("token validation failed"); + } + callback(validateAdminAuthErr); + }); +}; + +exports.verifyTokenWithPermissionWorkUnit = function (id, token, permissions, callback) { + let key = "admin_" + id; + adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) { + if (validateAdminAuthErr.code === errorCode.SUCCESS.code) { + logger.info("token validation successfully"); + if (undefined !== result && null !== result && "" !== result) { + if (result.indexOf(permissions) !== -1) { + callback(errorCode.SUCCESS); + } else { + logger.info("permission do not match"); + callback(errorCode.AUTHENTICATION_FAILURE); + } + } + } else { + logger.info("token validation failed"); + callback(validateAdminAuthErr); + } + }); }; \ No newline at end of file diff --git a/server/.idea/.gitignore b/server/.idea/.gitignore index 4aa91ea..73f69e0 100644 --- a/server/.idea/.gitignore +++ b/server/.idea/.gitignore @@ -1,8 +1,8 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/server/src/main/java/net/irext/server/service/model/CollectKey.java b/server/src/main/java/net/irext/server/service/model/CollectKey.java index e954b76..ce0f2c3 100644 --- a/server/src/main/java/net/irext/server/service/model/CollectKey.java +++ b/server/src/main/java/net/irext/server/service/model/CollectKey.java @@ -1,72 +1,72 @@ -package net.irext.server.service.model; - -/** - * Filename: CollectKey.java - * Revised: Date: 2019-08-23 - * Revision: Revision: 1.0 - *

- * Description: CollectKey Model - *

- * Revision log: - * 2019-08-23: created by strawmanbobi - */ -public class CollectKey { - - private Integer id; - private Integer collectRemoteId; - private Integer keyId; - private String keyName; - private String keyValue; - - public CollectKey(Integer id, Integer collectRemoteId, Integer keyId, String keyName, String keyValue) { - this.id = id; - this.collectRemoteId = collectRemoteId; - this.keyId = keyId; - this.keyName = keyName; - this.keyValue = keyValue; - } - - public CollectKey() { - - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getCollectRemoteId() { - return collectRemoteId; - } - - public void setCollectRemoteId(Integer collectRemoteId) { - this.collectRemoteId = collectRemoteId; - } - - public Integer getKeyId() { - return keyId; - } - - public void setKeyId(Integer keyId) { - this.keyId = keyId; - } - - public String getKeyName() { - return keyName; - } - - public void setKeyName(String keyName) { - this.keyName = keyName; - } - - public String getKeyValue() { - return keyValue; - } - - public void setKeyValue(String keyValue) { - this.keyValue = keyValue; - } -} +package net.irext.server.service.model; + +/** + * Filename: CollectKey.java + * Revised: Date: 2019-08-23 + * Revision: Revision: 1.0 + *

+ * Description: CollectKey Model + *

+ * Revision log: + * 2019-08-23: created by strawmanbobi + */ +public class CollectKey { + + private Integer id; + private Integer collectRemoteId; + private Integer keyId; + private String keyName; + private String keyValue; + + public CollectKey(Integer id, Integer collectRemoteId, Integer keyId, String keyName, String keyValue) { + this.id = id; + this.collectRemoteId = collectRemoteId; + this.keyId = keyId; + this.keyName = keyName; + this.keyValue = keyValue; + } + + public CollectKey() { + + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCollectRemoteId() { + return collectRemoteId; + } + + public void setCollectRemoteId(Integer collectRemoteId) { + this.collectRemoteId = collectRemoteId; + } + + public Integer getKeyId() { + return keyId; + } + + public void setKeyId(Integer keyId) { + this.keyId = keyId; + } + + public String getKeyName() { + return keyName; + } + + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + public String getKeyValue() { + return keyValue; + } + + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } +} diff --git a/server/src/main/java/net/irext/server/service/request/DownloadBinaryRequest.java b/server/src/main/java/net/irext/server/service/request/DownloadBinaryRequest.java index c77c796..f8c0663 100644 --- a/server/src/main/java/net/irext/server/service/request/DownloadBinaryRequest.java +++ b/server/src/main/java/net/irext/server/service/request/DownloadBinaryRequest.java @@ -1,32 +1,32 @@ -package net.irext.server.service.request; - -/** - * Filename: DownloadBinaryRequest.java - * Revised: Date: 2017-04-14 - * Revision: Revision: 1.0 - *

- * Description: HTTP download IR binary - *

- * Revision log: - * 2017-04-14: created by strawmanbobi - */ -public class DownloadBinaryRequest extends BaseRequest { - - private int indexId; - - public DownloadBinaryRequest(int indexId) { - this.indexId = indexId; - } - - public DownloadBinaryRequest() { - - } - - public int getIndexId() { - return indexId; - } - - public void setIndexId(int indexId) { - this.indexId = indexId; - } -} +package net.irext.server.service.request; + +/** + * Filename: DownloadBinaryRequest.java + * Revised: Date: 2017-04-14 + * Revision: Revision: 1.0 + *

+ * Description: HTTP download IR binary + *

+ * Revision log: + * 2017-04-14: created by strawmanbobi + */ +public class DownloadBinaryRequest extends BaseRequest { + + private int indexId; + + public DownloadBinaryRequest(int indexId) { + this.indexId = indexId; + } + + public DownloadBinaryRequest() { + + } + + public int getIndexId() { + return indexId; + } + + public void setIndexId(int indexId) { + this.indexId = indexId; + } +}