2d65447297206f94523d2559c4731db593426d4e.svn-base 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. BemsWebApplication.UserCheck = function (params, viewInfo) {
  2. 'use strict';
  3. var companyDataSource = BemsWebApplication.db.createDataSource('CmCompany', true, true),
  4. departmentDataSource = BemsWebApplication.db.createDataSource('CmDepartment', true, true),
  5. positionDataSource = BemsWebApplication.db.createDataSource('CmPosition', true, true),
  6. businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),
  7. userGroupDataSource = BemsWebApplication.db.createDataSource('CmUserGroup', true);
  8. var companies = ko.observableArray(),
  9. departments = ko.observableArray(),
  10. positions = ko.observableArray(),
  11. businessFields = ko.observableArray(),
  12. userGroups = ko.observableArray();
  13. var eq = BWA.DataUtil.constructEqualFilter;
  14. var noteq = BWA.DataUtil.constructNotEqualFilter;
  15. var PermissionForBrowse = ko.observableArray(false);
  16. var PassWord = ko.observableArray();
  17. function chckchar(obj) {
  18. var check1 = /^(?=.*[a-zA-Z])(?=.*[0-9]).{10,20}$/.test(obj); //영문,숫자
  19. var check2 = /^(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,20}$/.test(obj); //영문,특수문자
  20. var check3 = /^(?=.*[^a-zA-Z0-9])(?=.*[0-9]).{10,20}$/.test(obj); //특수문자, 숫자
  21. if (!(check1 || check2 || check3))
  22. return false; // 비밀번호 정책에 부합하지 않은 경우 (기존 비밀번호인 경우 복호화없이 출력하기 위함)
  23. else
  24. return true;
  25. }
  26. // ******** 20190826 복호화 *********** //
  27. function unEncrypt(theText) {
  28. var output = new String,
  29. Temp = new Array(),
  30. Temp2 = new Array(),
  31. TextSize = theText.length;
  32. for (var i = 0; i < TextSize; i++) {
  33. Temp[i] = theText.charCodeAt(i);
  34. Temp2[i] = theText.charCodeAt(i + 1);
  35. }
  36. for (i = 0; i < TextSize; i = i + 2) {
  37. output += String.fromCharCode(Temp[i] - Temp2[i]);
  38. }
  39. if (chckchar(output))
  40. return output;
  41. else
  42. return theText;
  43. }
  44. // ******** 20190826 복호화 *********** //
  45. var cnt = 0;
  46. function clickOn() {
  47. cnt++;
  48. if (cnt == 3)
  49. PermissionForBrowse(true);
  50. }
  51. function PopupButtonClose() {
  52. PermissionForBrowse(false);
  53. viewModel.popupVisible(false);
  54. cnt = 0;
  55. }
  56. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmUser', {
  57. dataSourceOptions: {
  58. select: [
  59. 'SiteId', 'CompanyId', 'DepartmentId', 'UserId', 'Name', 'UserGroupId', 'Certificated', 'BusinessFieldId', 'EmploymentType', 'EmploymentStatus',
  60. 'CmPosition/Name', 'CmDepartment/Name', 'CmCompany/Name', 'CmBusinessField/Name', 'CmUserGroup/Name', 'IsScheduleUser', 'IsSI', 'IsMobile', 'Passwd'
  61. ],
  62. expand: ['CmPosition', 'CmDepartment', 'CmCompany', 'CmBusinessField', 'CmUserGroup'],
  63. filter: [
  64. //['UserId', '<>', 'admin']
  65. eq('SiteId', BWA.UserInfo.SiteId()),
  66. 'and',
  67. noteq('UserId', 'admin'),
  68. ],
  69. extendOptions: {
  70. forceOriginalField: true
  71. }
  72. },
  73. columns: [
  74. { caption: $G('number'), width: '10%', alignment: 'center' },
  75. { dataField: 'UserId', caption: $G('userId'), width: '15%', alignment: 'center' },
  76. { dataField: 'Name', caption: $G('userName'), width: '15%', alignment: 'center' },
  77. {
  78. dataField: 'CmUserGroup/Name', caption: $G('permissionGroupName'), width: '15%', alignment: 'center',
  79. //customizeText: function(cellInfo) {
  80. // return $Name($G.EmploymentTypeNames, cellInfo.value);
  81. //}
  82. },
  83. {
  84. dataField: 'EmploymentStatus', caption: $G('employmentStatus'), width: '15%', alignment: 'center',
  85. customizeText: function (cellInfo) {
  86. return $Name($G.EmploymentStatusNames, cellInfo.value);
  87. }
  88. },
  89. { dataField: 'CmCompany/Name', caption: $G('companyName'), width: '15%', alignment: 'center' },
  90. { dataField: 'CmDepartment/Name', caption: $G('departmentName'), width: '15%', alignment: 'center' }
  91. // { caption: $G( 'affiliation' ), width: '15%', alignment: 'center' }
  92. ],
  93. popupWidth: 720,
  94. NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제
  95. handleViewShown: function () {
  96. businessFieldDataSource.load().done(function (dbBusinessFields) {
  97. businessFields(dbBusinessFields);
  98. });
  99. userGroupDataSource.load().done(function (dbUserGroups) {
  100. userGroups(dbUserGroups);
  101. });
  102. companyDataSource.load().done(function (dbCompanies) {
  103. companies(dbCompanies);
  104. });
  105. cnt = 0;
  106. },
  107. handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
  108. if (!isNewInPopup()) {
  109. BWA.DataUtil.setArrayDataSourceFilter(departmentDataSource, 'CompanyId', dataViewModel.CompanyId(), departments);
  110. }
  111. else {
  112. }
  113. },
  114. handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
  115. dataGrid.clearSelection();
  116. viewModel.isNewInPopup(false);
  117. var data = clickRow.data;
  118. var dataModel = viewModel.dataModel;
  119. dataModel.CompanyName = $KoSet(dataModel.CompanyName, data['CmCompany/Name']);
  120. dataModel.DepartmentName = $KoSet(dataModel.DepartmentName, data['CmDepartment/Name']);
  121. dataModel.BusinessFieldName = $KoSet(dataModel.BusinessFieldName, data['CmBusinessField/Name']);
  122. dataModel.UserGroupName = $KoSet(dataModel.UserGroupName, data['CmUserGroup/Name']);
  123. dataModel.IsScheduleUser = $KoSet(dataModel.IsScheduleUser, data.IsScheduleUser());
  124. dataModel.IsSI = $KoSet(dataModel.IsSI, data.IsSI());
  125. dataModel.IsMobile = $KoSet(dataModel.IsMobile, data.IsMobile());
  126. dataModel.Passwd = $KoSet(dataModel.Passwd, data.Passwd());
  127. if (PermissionForBrowse() == true) {
  128. PassWord(unEncrypt(dataModel.Passwd()));
  129. //setTimeout(function () {
  130. //}, 1000)
  131. }
  132. else {
  133. PassWord(dataModel.Passwd);
  134. }
  135. popupVisible(true);
  136. },
  137. handlePopupShowing: function (that) {
  138. positionDataSource.load().done(function (result) {
  139. positions(result);
  140. });
  141. },
  142. });
  143. viewModel.handleSelectBoxChangeCompanyInPopup = function (e) {
  144. BWA.DataUtil.setArrayDataSourceFilter(departmentDataSource, 'CompanyId', e.value, departments);
  145. viewModel.dataModel.DepartmentId(null);
  146. }
  147. viewModel.companyDataSource = companies;
  148. viewModel.departmentDataSource = departments;
  149. viewModel.positionDataSource = positions;
  150. viewModel.businessFieldDataSource = businessFields;
  151. viewModel.userGroupDataSource = userGroups;
  152. viewModel.employmentTypeNames = $G.EmploymentTypeNames;
  153. viewModel.employmentStatusNames = $G.EmploymentStatusNames;
  154. viewModel.userLicensePopup = BWA.Popup.UserLicense.create(viewModel, params);
  155. // 2016 02 18 hcLee 등록팝업 최초 수행후 안보이는 현상 해결
  156. viewModel.dataModel.CompanyName = ko.observable();
  157. viewModel.dataModel.DepartmentName = ko.observable();
  158. viewModel.dataModel.BusinessFieldName = ko.observable();
  159. viewModel.dataModel.UserGroupName = ko.observable();
  160. //$SearchView.searchViewItems.EmploymentStatus.check(true);
  161. //viewModel.searchViewItems.EmploymentStatus.check(true);
  162. //viewModel.handleSearchInSearchView = handleSearchInSearchView;
  163. var toolbarItems = [
  164. { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: PopupButtonClose } } //
  165. ];
  166. viewModel.toolbarItems = toolbarItems;
  167. viewModel.PermissionForBrowse = PermissionForBrowse;
  168. viewModel.clickOn = clickOn;
  169. viewModel.PassWord = PassWord;
  170. return viewModel;
  171. };