diff --git a/IRaCIS.Core.API/wwwroot/swagger/ui/abp.swagger.js b/IRaCIS.Core.API/wwwroot/swagger/ui/abp.swagger.js index cf36aa096..7c05c38da 100644 --- a/IRaCIS.Core.API/wwwroot/swagger/ui/abp.swagger.js +++ b/IRaCIS.Core.API/wwwroot/swagger/ui/abp.swagger.js @@ -268,12 +268,12 @@ var abp = abp || {}; } function loginUserInternal(tenantId, callback) { - + var usernameOrEmailAddress = document.getElementById('userName').value; - if (!usernameOrEmailAddress) { - alert('UserName Can Not Be Null'); - return false; - } + // if (!usernameOrEmailAddress) { + // alert('UserName Can Not Be Null'); + // return false; + // } var password = document.getElementById('password').value; var pwdMd5 = document.getElementById('pwdMd5').value; @@ -286,12 +286,12 @@ var abp = abp || {}; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { - + if (xhr.readyState === XMLHttpRequest.DONE) { - debugger; + // debugger; if (xhr.status === 200) { - debugger; - + // debugger; + var resultdata = JSON.parse(xhr.responseText); if (resultdata.ErrorMessage != '') { alert(resultdata.ErrorMessage); @@ -303,18 +303,23 @@ var abp = abp || {}; else { var responseJSON = JSON.parse(xhr.responseText); var result = responseJSON; - var expireDate = new Date(Date.now() + (60*60*24 * 1000)); + var expireDate = new Date(Date.now() + (60 * 60 * 24 * 1000)); abp.auth.setToken(result.Result.JWTStr, expireDate); - callback(); + let selectDom = document.getElementById("roleSelect") + selectDom.options.length = 0; + result.Result.BasicInfo.AccountList.forEach(item => { + selectDom.options.add(new Option(item.UserTypeShortName, item.Id)); + }) + // callback(); } - + } else { alert('Login failed !'); } } }; - - xhr.open('POST', '/user/login', true); + + xhr.open('POST', '/User/getUserLoginRoleList', true); xhr.setRequestHeader('Abp.TenantId', tenantId); xhr.setRequestHeader('Content-type', 'application/json'); var parm = { @@ -330,7 +335,63 @@ var abp = abp || {}; //xhr.send("{" + "userName:'" + usernameOrEmailAddress + "'," + "passWord:'" + password + "'}"); }; + function loginUserInternalRole(tenantId, callback) { + var usernameOrEmailAddress = document.getElementById('roleSelect').value; + //if (!usernameOrEmailAddress) { + // alert('UserName Can Not Be Null'); + // return false; + //} + + var password = document.getElementById('password').value; + var pwdMd5 = document.getElementById('pwdMd5').value; + console.log(pwdMd5); + if (!password && !pwdMd5) { + alert('PassWord And Md5 Can Not Be Null'); + return false; + } + + var xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function () { + + if (xhr.readyState === XMLHttpRequest.DONE) { + // debugger; + if (xhr.status === 200) { + // debugger; + + var resultdata = JSON.parse(xhr.responseText); + if (resultdata.ErrorMessage != '') { + alert(resultdata.ErrorMessage); + return false; + } + if (resultdata.code == 300) { + alert(resultdata.message); + } + else { + var responseJSON = JSON.parse(xhr.responseText); + var result = responseJSON; + var expireDate = new Date(Date.now() + (60 * 60 * 24 * 1000)); + abp.auth.setToken(result.Result, expireDate); + + callback(); + } + + } else { + alert('Login failed !'); + } + } + }; + + xhr.open('get', `/User/loginSelectUserRole?userRoleId=${usernameOrEmailAddress}`, true); + xhr.setRequestHeader('Abp.TenantId', tenantId); + xhr.setRequestHeader('Content-type', 'application/json'); + var authToken = abp.auth.getToken(); + xhr.setRequestHeader('Authorization', `Bearer ${authToken}`); + xhr.send(); + //xhr.send("{" + "userName:'" + usernameOrEmailAddress + "'," + "passWord:'" + password + "'}"); + + }; abp.swagger.login = function (callback) { //Get TenantId first var tenancyName = document.getElementById('tenancyName').value; @@ -356,6 +417,31 @@ var abp = abp || {}; loginUserInternal(null, callback); // Login for host } }; + abp.swagger.loginRole = function (callback) { + //Get TenantId first + var tenancyName = document.getElementById('tenancyName').value; + + if (tenancyName) { + var xhrTenancyName = new XMLHttpRequest(); + xhrTenancyName.onreadystatechange = function () { + if (xhrTenancyName.readyState === XMLHttpRequest.DONE && xhrTenancyName.status === 200) { + var responseJSON = JSON.parse(xhrTenancyName.responseText); + var result = responseJSON.result; + if (result.state === 1) { // Tenant exists and active. + loginUserInternalRole(result.tenantId, callback); // Login for tenant + } else { + alert('There is no such tenant or tenant is not active !'); + } + } + }; + + xhrTenancyName.open('POST', '/api/services/app/Account/IsTenantAvailable', true); + xhrTenancyName.setRequestHeader('Content-type', 'application/json'); + xhrTenancyName.send("{" + "tenancyName:'" + tenancyName + "'}"); + } else { + loginUserInternalRole(null, callback); // Login for host + } + }; abp.swagger.logout = function () { abp.auth.clearToken(); @@ -419,9 +505,10 @@ var abp = abp || {}; //Inputs createInput(modalUxContent, 'tenancyName', 'Tenancy Name (Leave empty for Host)'); - createInput(modalUxContent, 'userName', 'Username or email address','text','cyldev'); + createInput(modalUxContent, 'userName', 'Username or email address', 'text', 'cyldev'); createInput(modalUxContent, 'password', 'Password', 'password', '123456'); createInput(modalUxContent, 'pwdMd5', 'PwdMd5', 'text', ''); + createSelect(modalUxContent, 'roleSelect', 'role', []) //Buttons var authBtnWrapper = document.createElement('div'); @@ -444,9 +531,18 @@ var abp = abp || {}; abp.swagger.login(loginCallback); }; authBtnWrapper.appendChild(authorizeButton); + + // login role + var authorizeButton = document.createElement('button'); + authorizeButton.className = 'btn modal-btn auth authorize button'; + authorizeButton.innerText = 'LoginRole'; + authorizeButton.onclick = function () { + abp.swagger.loginRole(loginCallback); + }; + authBtnWrapper.appendChild(authorizeButton); } - function createInput(container, id, title, type, value="") { + function createInput(container, id, title, type, value = "") { var wrapper = document.createElement('div'); wrapper.className = 'wrapper'; if (id == "tenancyName") { @@ -470,6 +566,31 @@ var abp = abp || {}; input.autocomplete = "off"; + section.appendChild(input); + } + function createSelect(container, id, title, option = []) { + var wrapper = document.createElement('div'); + wrapper.className = 'wrapper'; + if (id == "tenancyName") { + wrapper.style.display = 'none'; + } + container.appendChild(wrapper); + + var label = document.createElement('label'); + label.innerText = title; + wrapper.appendChild(label); + + var section = document.createElement('section'); + section.className = 'block-tablet col-10-tablet block-desktop col-10-desktop'; + wrapper.appendChild(section); + + var input = document.createElement('select'); + input.id = id; + input.style.width = '100%'; + option.forEach(item => { + input.options.add(new Option(item.UserTypeShortName, item.Id)); + }) + section.appendChild(input); }