updated unix format ending

This commit is contained in:
strawmanbobi
2024-02-03 14:07:04 +08:00
parent 34cee9120d
commit de26d34261
21 changed files with 965 additions and 965 deletions

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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');

View File

@@ -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();
});
};

View File

@@ -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": "选择品牌"
}
}

View File

@@ -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": "选择品牌"
}
}

View File

@@ -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": "选择品牌"
}
}

View File

@@ -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": "未能成功注册用户"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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": "未能成功注册用户"
}
}

View File

@@ -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": "未能成功注册用户"
}
}

View File

@@ -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": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误"
}
}

View File

@@ -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": "申请密码修改失败,请确认您是合法人员,且邮箱地址无误"
}
}

View File

@@ -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);
}
});
};