flexbiz-server
Version:
Flexible Server
9 lines (8 loc) • 3.63 kB
JavaScript
'use strict';const model=global.getModel("listinfo"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),underscore=require("underscore"),async=require("async");
module.exports=function($router$$){(new controller($router$$,model,"listinfo",{sort:{code:1},require_id_app:!1,unique:["code"],onFinding:($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onCreating:($user$$,$obj$$,$next$$)=>{if(!underscore.contains(configs.admins,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$obj$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>
{if($data$$.code&&$data$$.code!==$obj$$.code&&$obj$$.create_model)return $next$$("Kh\u00f4ng th\u1ec3 s\u1eeda code c\u1ee7a danh m\u1ee5c n\u00e0y");if($obj$$.allow_users&&0<=$obj$$.allow_users.split(",").indexOf($user$$.email))return $next$$(null,$data$$,$obj$$);if(!underscore.contains(configs.admins,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase())&&0>($obj$$.allow_users||"").indexOf($user$$.email))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");
$next$$(null,$data$$,$obj$$)},onCreated:($user$$,$obj$$,$next$$)=>{console.log("created listinfo",$obj$$.code);model.createController(global.routerAPI,$obj$$);global.getModel("user").socketSendToOtherServer("system","listinfo_updated",{listinfo_id:$obj$$._id});$next$$(null,$obj$$)},onUpdated:($user$$,$obj$$,$next$$)=>{console.log("updated listinfo",$obj$$.code);model.createController(global.routerAPI,$obj$$);global.getModel("user").socketSendToOtherServer("system","listinfo_updated",{listinfo_id:$obj$$._id});
$next$$(null,$obj$$)},onDeleting:($user$$,$obj$$,$next$$)=>{if($obj$$.user_created!==$user$$.email&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$obj$$)},onView:($user$$,$items$$,$next$$)=>{underscore.contains(configs.admins,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase())||($items$$=$items$$.filter($i$$=>"listinfo"!=$i$$.code&&"reportinfo"!=$i$$.code&&"moduleinfo"!=$i$$.code&&
"menuinfo"!=$i$$.code));async.map($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{await ($item$$.fields||[]).filter($field$$=>$field$$.ref_model).asyncJoinModel2(null,"listinfo",{where:{ref_model:"code"},fields:[{ref_api:"api_code"}]});let $schema$$;"false"===$item$$.require_id_app&&($item$$.require_id_app=!1);"true"===$item$$.require_id_app&&($item$$.require_id_app=!0);"false"===$item$$.not_need_right&&($item$$.not_need_right=!1);"true"===$item$$.not_need_right&&($item$$.not_need_right=!0);
if($item$$.mother_code){let [$code$$,$child$$,$child2$$,$child3$$]=$item$$.mother_code.split("/");var $_model__model$$=global.mongoose.models[$code$$];$_model__model$$&&($schema$$=$_model__model$$.schema)&&$child$$&&$schema$$.paths[$child$$]&&($schema$$=$schema$$.paths[$child$$].schema)&&$child2$$&&$schema$$.paths[$child2$$]&&($schema$$=$schema$$.paths[$child2$$].schema)&&$child3$$&&$schema$$.paths[$child3$$]&&($schema$$=$schema$$.paths[$child3$$].schema)}else if($_model__model$$=global.mongoose.models[$item$$.code])$schema$$=
$_model__model$$.schema;$schema$$&&($item$$.fields||[]).forEach($field$$=>{var $maxlength_path$$=$schema$$.paths[$field$$.name];$maxlength_path$$&&"String"===$field$$.type&&($maxlength_path$$=$maxlength_path$$.options.maxlength||4E3,$field$$.maxlength=$field$$.maxlength||$maxlength_path$$)});$callback$$()})},()=>{$next$$(null,$items$$)})}})).route()};