SMZSE00200_계정비밀번호관리.xfdl 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMZSE00200" classname="SMZSE00200_계정비밀번호관리" inheritanceid="" position="absolute 0 0 883 638" titletext="계정비밀번호관리" oninit="SMZSE00200_oninit" onload="SMZSE00200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="Static00" text="계정비밀번호관리" position="absolute 0 0 134 25" class="tit_1"/>
  8. <Div id="div_search" taborder="1" position="absolute 0 24 883 165" class="div_SA" anchor="left top right">
  9. <Layouts>
  10. <Layout>
  11. <Grid id="grd_search_oper" taborder="0" useinputpanel="false" position="absolute 9 10 119 132" binddataset="ds_maindb" anchor="default">
  12. <Formats>
  13. <Format id="default">
  14. <Columns>
  15. <Column size="30"/>
  16. <Column size="80"/>
  17. </Columns>
  18. <Rows>
  19. <Row size="24" band="head"/>
  20. <Row size="24"/>
  21. </Rows>
  22. <Band id="head">
  23. <Cell displaytype="checkbox" edittype="checkbox" taborder="undefined"/>
  24. <Cell col="1" displaytype="normal" text="운영" taborder="undefined"/>
  25. </Band>
  26. <Band id="body">
  27. <Cell displaytype="checkbox" edittype="checkbox" text="bind:value" expr="expr:(value == &quot;true&quot; || value == 1) ? 1 : 0"/>
  28. <Cell col="1" displaytype="normal" text="bind:name"/>
  29. </Band>
  30. </Format>
  31. </Formats>
  32. </Grid>
  33. <Static id="stt_newpwd" position="absolute 452 8 872 36" style="color:#ff0000ff;align:right middle;font:Dotum,12,bold underline;" anchor="top right"/>
  34. <Static id="Static00" text="사번 :" position="absolute 623 57 671 77" class="search_name" anchor="top right"/>
  35. <Edit id="edt_emplno" taborder="1" position="absolute 678 57 778 77" onkeydown="div_search_edt_emplno_onkeydown" anchor="top right" autoselect="true"/>
  36. <Button id="btn_search" taborder="2" text="조회" position="absolute 786 57 842 77" class="btn1" onclick="div_search_btn_search_onclick" anchor="top right"/>
  37. </Layout>
  38. </Layouts>
  39. </Div>
  40. <Button id="btn_lock_clear" taborder="2" text="비번잠금해제" position="absolute 683 2 787 22" class="btn4" onclick="btn_lock_clear_onclick" anchor="top right"/>
  41. <Button id="btn_pwd_init" taborder="3" text="비번초기화" class="btn4" position="absolute 792 2 883 22" onclick="btn_pwd_init_onclick" anchor="top right"/>
  42. <Grid id="grd_accountlist" taborder="4" useinputpanel="false" position="absolute 0 171 883 437" binddataset="ds_accountlist" anchor="all" autofittype="col">
  43. <Formats>
  44. <Format id="default">
  45. <Columns>
  46. <Column size="30"/>
  47. <Column size="0"/>
  48. <Column size="0"/>
  49. <Column size="90"/>
  50. <Column size="60"/>
  51. <Column size="80"/>
  52. <Column size="80"/>
  53. <Column size="100"/>
  54. <Column size="80"/>
  55. <Column size="80"/>
  56. <Column size="70"/>
  57. <Column size="70"/>
  58. <Column size="130"/>
  59. </Columns>
  60. <Rows>
  61. <Row size="24" band="head"/>
  62. <Row size="24" band="head"/>
  63. <Row size="24"/>
  64. </Rows>
  65. <Band id="head">
  66. <Cell rowspan="2" displaytype="normal" taborder="undefined"/>
  67. <Cell col="1" displaytype="normal" text="dbinstcd"/>
  68. <Cell col="2" displaytype="normal" text="dbid"/>
  69. <Cell col="3" rowspan="2" displaytype="normal" text="시스템" taborder="undefined"/>
  70. <Cell col="4" rowspan="2" displaytype="normal" text="사번" taborder="undefined"/>
  71. <Cell col="5" rowspan="2" displaytype="normal" text="사용자명" taborder="undefined"/>
  72. <Cell col="6" rowspan="2" displaytype="normal" text="전화번호" taborder="undefined"/>
  73. <Cell col="7" rowspan="2" displaytype="normal" text="휴대폰번호" taborder="undefined"/>
  74. <Cell col="8" rowspan="2" displaytype="normal" text="직종" taborder="undefined"/>
  75. <Cell col="9" rowspan="2" displaytype="normal" text="직위" taborder="undefined"/>
  76. <Cell col="10" colspan="2" displaytype="normal" text="비밀번호실패" taborder="undefined"/>
  77. <Cell col="12" rowspan="2" taborder="undefined">
  78. <Cell displaytype="normal" text="비밀번호변경"/>
  79. <Cell row="1" text="최종수정일시"/>
  80. </Cell>
  81. <Cell row="1" col="1"/>
  82. <Cell row="1" col="2"/>
  83. <Cell row="1" col="10" text="잠김여부"/>
  84. <Cell row="1" col="11" text="실패횟수"/>
  85. </Band>
  86. <Band id="body">
  87. <Cell displaytype="checkbox" edittype="checkbox" text="bind:flag"/>
  88. <Cell col="1" displaytype="normal" text="bind:dbinstcd"/>
  89. <Cell col="2" displaytype="normal" text="bind:dbid"/>
  90. <Cell col="3" displaytype="normal" text="bind:dbname"/>
  91. <Cell col="4" displaytype="normal" text="bind:userid"/>
  92. <Cell col="5" displaytype="normal" text="bind:usernm"/>
  93. <Cell col="6" displaytype="normal" text="bind:pdano"/>
  94. <Cell col="7" displaytype="normal" text="bind:mpphonno"/>
  95. <Cell col="8" displaytype="normal" text="bind:jobkindnm"/>
  96. <Cell col="9" displaytype="normal" text="bind:jobposnm"/>
  97. <Cell col="10" displaytype="combo" style="align:center middle;" text="bind:lockyn" combodataset="ds_lock" combocodecol="value" combodatacol="label"/>
  98. <Cell col="11" displaytype="normal" text="bind:incorrectpwdcnt"/>
  99. <Cell col="12" displaytype="date" text="bind:lastpwdchgdt" mask="yyyy-MM-dd HH:mm:ss"/>
  100. </Band>
  101. </Format>
  102. </Formats>
  103. </Grid>
  104. <Static id="Static01" text="* &lt; 비밀번호 초기화 설명 &gt;&#13;&#10;&#13;&#10; 1) 숫자 5자리로 구성된 사번&#13;&#10; - &quot;@@knuh+사번(앞에서 4자리만)&quot; 으로 초기화&#13;&#10; 예) 사번이 '01234' -&gt; '@@knuh0123'&#13;&#10;&#13;&#10; 2) 그 이외의 사번&#13;&#10; - &quot;사번&quot;으로만 초기화 (대문자는 모두 소문자로 저장되고 초기화 후 재로그인 시에 비밀번호 변경 하라는 팝업이 뜨게 됨).&#13;&#10; 예1) 사번이 'COM' -&gt; 'com'&#13;&#10; 예2) 사번이 'AB01' -&gt; 'ab01'&#13;&#10; 예3) 사번이 'ABC001' -&gt; 'abc001'" position="absolute 0 442 883 638" style="background:@gradation;border:2 solid lightslategray ;color:black;padding:10 10 10 10;bordertype:round 5 5 ;font:Dotum,11;gradation:linear 50,0 lavender 50,3 lightskyblue;" anchor="left bottom"/>
  105. </Layout>
  106. </Layouts>
  107. <Objects>
  108. <Dataset id="ds_search" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  109. <ColumnInfo>
  110. <Column id="userid" type="STRING" size="256"/>
  111. </ColumnInfo>
  112. <Rows>
  113. <Row/>
  114. </Rows>
  115. </Dataset>
  116. <Dataset id="ds_send_operdb" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  117. <Dataset id="ds_init_operdb" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  118. <ColumnInfo>
  119. <Column id="name" type="STRING" size="256"/>
  120. <Column id="instcd" type="STRING" size="256"/>
  121. <Column id="id" type="STRING" size="256"/>
  122. <Column id="value" type="STRING" size="256"/>
  123. </ColumnInfo>
  124. <Rows>
  125. <Row>
  126. <Col id="name">본원운영</Col>
  127. <Col id="instcd">031</Col>
  128. <Col id="id">his031</Col>
  129. <Col id="value">true</Col>
  130. </Row>
  131. <Row>
  132. <Col id="name">칠곡운영</Col>
  133. <Col id="instcd">032</Col>
  134. <Col id="id">his032</Col>
  135. <Col id="value">true</Col>
  136. </Row>
  137. <Row>
  138. <Col id="name">MIS운영</Col>
  139. <Col id="instcd">030</Col>
  140. <Col id="id">mis030</Col>
  141. <Col id="value">true</Col>
  142. </Row>
  143. <Row>
  144. <Col id="name">CRM운영</Col>
  145. <Col id="instcd">030</Col>
  146. <Col id="id">crm030</Col>
  147. <Col id="value">true</Col>
  148. </Row>
  149. </Rows>
  150. </Dataset>
  151. <Dataset id="ds_accountlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  152. <ColumnInfo>
  153. <Column id="flag" type="STRING" size="256" sumtext="flag"/>
  154. <Column id="dbinstcd" type="STRING" size="256"/>
  155. <Column id="dbid" type="STRING" size="256"/>
  156. <Column id="dbname" type="STRING" size="256"/>
  157. <Column id="userid" type="STRING" size="256" sumtext="사용자ID"/>
  158. <Column id="usernm" type="STRING" size="256" sumtext="사용자명"/>
  159. <Column id="pdano" type="STRING" size="256" sumtext="사용자명"/>
  160. <Column id="mpphonno" type="STRING" size="256" sumtext="사용자명"/>
  161. <Column id="incorrectpwdcnt" type="STRING" size="256" sumtext="실패회수"/>
  162. <Column id="lockyn" type="STRING" size="256" sumtext="잠금여부"/>
  163. <Column id="incorrectpwdlastip" type="STRING" size="256" sumtext="최종실패IP"/>
  164. <Column id="incorrectpwdlastdt" type="STRING" size="256" sumtext="최종실패일시"/>
  165. <Column id="lockdt" type="STRING" size="256" sumtext="잠금일시"/>
  166. <Column id="lastpwdchgdt" type="STRING" size="256" sumtext="최종변경일시"/>
  167. <Column id="jobkindcd" type="STRING" size="256" sumtext="직종코드"/>
  168. <Column id="jobposcd" type="STRING" size="256" sumtext="직위코드"/>
  169. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종코드"/>
  170. <Column id="jobposnm" type="STRING" size="256" sumtext="직위코드"/>
  171. </ColumnInfo>
  172. </Dataset>
  173. <Dataset id="ds_send_releaselock" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  174. <Dataset id="ds_main_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  175. <ColumnInfo>
  176. <Column id="newpwd" type="STRING" size="256" sumtext="변경된비밀번호"/>
  177. </ColumnInfo>
  178. <Rows>
  179. <Row/>
  180. </Rows>
  181. </Dataset>
  182. <Dataset id="ds_send_initializepwd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  183. <Dataset id="ds_init_edudb" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  184. <ColumnInfo>
  185. <Column id="name" type="STRING" size="256"/>
  186. <Column id="instcd" type="STRING" size="256"/>
  187. <Column id="id" type="STRING" size="256"/>
  188. <Column id="value" type="STRING" size="256"/>
  189. </ColumnInfo>
  190. <Rows>
  191. <Row>
  192. <Col id="name">본원교육</Col>
  193. <Col id="instcd">031</Col>
  194. <Col id="id">his031</Col>
  195. <Col id="value">true</Col>
  196. </Row>
  197. <Row>
  198. <Col id="name">칠곡교육</Col>
  199. <Col id="instcd">032</Col>
  200. <Col id="id">his032</Col>
  201. <Col id="value">true</Col>
  202. </Row>
  203. <Row>
  204. <Col id="name">MIS교육</Col>
  205. <Col id="instcd">030</Col>
  206. <Col id="id">mis030</Col>
  207. <Col id="value">true</Col>
  208. </Row>
  209. <Row>
  210. <Col id="name">CRM교육</Col>
  211. <Col id="instcd">030</Col>
  212. <Col id="id">crm030</Col>
  213. <Col id="value">true</Col>
  214. </Row>
  215. </Rows>
  216. </Dataset>
  217. <Dataset id="ds_maindb" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_maindb_oncolumnchanged"/>
  218. <Dataset id="ds_init_operdb_dent" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  219. <ColumnInfo>
  220. <Column id="name" type="STRING" size="256"/>
  221. <Column id="instcd" type="STRING" size="256"/>
  222. <Column id="id" type="STRING" size="256"/>
  223. <Column id="value" type="STRING" size="256"/>
  224. </ColumnInfo>
  225. <Rows>
  226. <Row>
  227. <Col id="name">치과운영</Col>
  228. <Col id="instcd">031</Col>
  229. <Col id="id">his031</Col>
  230. <Col id="value">true</Col>
  231. </Row>
  232. <Row>
  233. <Col id="name">MIS치과운영</Col>
  234. <Col id="instcd">030</Col>
  235. <Col id="id">mis030</Col>
  236. <Col id="value">true</Col>
  237. </Row>
  238. <Row>
  239. <Col id="name">치과CRM운영</Col>
  240. <Col id="instcd">030</Col>
  241. <Col id="id">crm030</Col>
  242. <Col id="value">true</Col>
  243. </Row>
  244. </Rows>
  245. </Dataset>
  246. <Dataset id="ds_init_edudb_dent" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  247. <ColumnInfo>
  248. <Column id="name" type="STRING" size="256"/>
  249. <Column id="instcd" type="STRING" size="256"/>
  250. <Column id="id" type="STRING" size="256"/>
  251. <Column id="value" type="STRING" size="256"/>
  252. </ColumnInfo>
  253. <Rows>
  254. <Row>
  255. <Col id="name">치과교육</Col>
  256. <Col id="instcd">031</Col>
  257. <Col id="id">his031</Col>
  258. <Col id="value">true</Col>
  259. </Row>
  260. <Row>
  261. <Col id="name">MIS치과교육</Col>
  262. <Col id="instcd">030</Col>
  263. <Col id="id">mis030</Col>
  264. <Col id="value">true</Col>
  265. </Row>
  266. <Row>
  267. <Col id="name">CRM치과교육</Col>
  268. <Col id="instcd">030</Col>
  269. <Col id="id">crm030</Col>
  270. <Col id="value">true</Col>
  271. </Row>
  272. </Rows>
  273. </Dataset>
  274. <Dataset id="ds_lock" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  275. <ColumnInfo>
  276. <Column id="label" type="STRING" size="256"/>
  277. <Column id="value" type="STRING" size="256"/>
  278. </ColumnInfo>
  279. <Rows>
  280. <Row>
  281. <Col id="label">잠김</Col>
  282. <Col id="value">Y</Col>
  283. </Row>
  284. <Row>
  285. <Col id="value">N</Col>
  286. <Col id="label"/>
  287. </Row>
  288. </Rows>
  289. </Dataset>
  290. </Objects>
  291. <Bind>
  292. <BindItem id="item0" compid="div_search.edt_emplno" propid="value" datasetid="ds_search" columnid="userid"/>
  293. <BindItem id="item1" compid="div_search.stt_newpwd" propid="text" datasetid="ds_main_result" columnid="newpwd"/>
  294. </Bind>
  295. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs";
  296. function SMZSE00200_oninit(obj:Form, e:InitEventInfo)
  297. {
  298. frmf_initForm(obj);
  299. grdf_initGrid(div_search.grd_search_oper);
  300. grdf_initGrid(grd_accountlist);
  301. div_search.grd_search_oper.setCellProperty("head", 0, "text", true);
  302. }
  303. function SMZSE00200_onload(obj:Form, e:LoadEventInfo)
  304. {
  305. fInitialize();
  306. }
  307. function div_search_edt_emplno_onkeydown(obj:Edit, e:KeyEventInfo)
  308. {
  309. if(e.keycode == 13) {
  310. obj.updateToDataset();
  311. div_search.btn_search.click();
  312. }
  313. }
  314. function div_search_btn_search_onclick(obj:Button, e:ClickEventInfo)
  315. {
  316. ds_main_result.setColumn(0, "newpwd", "");
  317. fSearch();
  318. }
  319. function btn_lock_clear_onclick(obj:Button, e:ClickEventInfo)
  320. {
  321. ds_main_result.setColumn(0, "newpwd", "");
  322. if(!fCheckSelectedItem())
  323. return;
  324. ds_accountlist.enableevent = false;
  325. ds_accountlist.filter("flag == true");
  326. ds_send_releaselock.copyData(ds_accountlist, true);
  327. ds_accountlist.filter("");
  328. ds_accountlist.enableevent = true;
  329. var oParam = {};
  330. oParam.id = "TXZSE00201";
  331. oParam.service = "securityapp.AccountMngt";
  332. oParam.method = "reqSetReleaseAccountLock";
  333. oParam.inds = "req=ds_send_releaselock";
  334. oParam.alert = true;
  335. oParam.async = false;
  336. tranf_submit(oParam);
  337. fSearch();
  338. }
  339. function btn_pwd_init_onclick(obj:Button, e:ClickEventInfo)
  340. {
  341. ds_main_result.setColumn(0, "newpwd", "");
  342. if(!fCheckSelectedItem())
  343. return;
  344. ds_accountlist.enableevent = false;
  345. ds_accountlist.filter("flag == true");
  346. ds_send_initializepwd.copyData(ds_accountlist, true);
  347. ds_accountlist.filter("");
  348. ds_accountlist.enableevent = true;
  349. var oParam = {};
  350. oParam.id = "TXZSE00202";
  351. oParam.service = "securityapp.AccountMngt";
  352. oParam.method = "reqExeInitializePwd";
  353. oParam.inds = "req=ds_send_initializepwd";
  354. oParam.outds = "ds_main_result=result";
  355. oParam.alert = true;
  356. oParam.async = false;
  357. tranf_submit(oParam);
  358. fSearch();
  359. }
  360. function ds_maindb_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  361. {
  362. if(e.columnid == "value")
  363. obj.setColumn(e.row, e.columnid, (e.newvalue == "true" || e.newvalue == 1) ? "true" : "false");
  364. }
  365. function fInitialize() {
  366. var systeminstnm = sysf_getUserInfo("systeminstnm");
  367. if(systeminstnm.indexOf("운영") >= 0) {
  368. if(systeminstnm.indexOf("치과") >= 0) {
  369. ds_maindb.copyData(ds_init_operdb_dent);
  370. } else {
  371. ds_maindb.copyData(ds_init_operdb);
  372. }
  373. div_search.grd_search_oper.setCellProperty("head", 1, "text", "운영");
  374. } else {
  375. if(systeminstnm.indexOf("치과") >= 0) {
  376. ds_maindb.copyData(ds_init_edudb_dent);
  377. } else {
  378. ds_maindb.copyData(ds_init_edudb);
  379. }
  380. div_search.grd_search_oper.setCellProperty("head", 1, "text", "교육");
  381. }
  382. div_search.edt_emplno.setFocus();
  383. }
  384. function fSearch() {
  385. ds_send_operdb.copyData(ds_maindb);
  386. var oParam = {};
  387. oParam.id = "TRZSE00201";
  388. oParam.service = "securityapp.AccountMngt";
  389. oParam.method = "reqGetAccountList";
  390. oParam.inds = "req_operdb=ds_send_operdb req=ds_search";
  391. oParam.outds = "ds_accountlist=accountlist";
  392. oParam.async = true;
  393. oParam.callback = "cf_TRZSE00201";
  394. tranf_submit(oParam);
  395. }
  396. function cf_TRZSE00201(sSvcId, nErrorCode, sErrorMsg) {
  397. if(nErrorCode < 0) return;
  398. ds_accountlist.rowposition = -1;
  399. }
  400. function fCheckSelectedItem() {
  401. if(ds_accountlist.getCaseCount("flag == true") > 0) {
  402. return true;
  403. } else {
  404. sysf_messageBox("선택된 아이템이 없습니다.\n변경 할 아이템을 체크 하시고 버튼을 눌러주세요.", "I999");
  405. return false;
  406. }
  407. }]]></Script>
  408. </Form>
  409. </FDL>