Commit d23b1a891e648b0b2b0ea3aed799c43f8767a93e
1 parent
e5834726
fixed issue in user session
Showing
14 changed files
with
97 additions
and
77 deletions
400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs
... | ... | @@ -119,10 +119,10 @@ namespace AIAHTML5.ADMIN.API.Controllers |
119 | 119 | bool Status = false; |
120 | 120 | int userId = jsonData["userId"].Value<Int32>(); |
121 | 121 | string tagName = jsonData["tagName"].Value<string>(); |
122 | - bool isAlreadyLoggedIn = jsonData["isAlreadyLoggedIn"].Value<bool>(); | |
122 | + long SessionId = jsonData["SessionId"].Value<long>(); | |
123 | 123 | try |
124 | 124 | { |
125 | - Status = UserModel.ManageUserLoginStatus(dbContext, userId, tagName, isAlreadyLoggedIn); | |
125 | + Status = UserModel.ManageUserLoginStatus(dbContext, userId, tagName, SessionId); | |
126 | 126 | |
127 | 127 | return Request.CreateResponse(HttpStatusCode.OK, Status.ToString()); |
128 | 128 | } | ... | ... |
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs
... | ... | @@ -4995,7 +4995,7 @@ namespace AIAHTML5.ADMIN.API.Entity |
4995 | 4995 | return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("usp_InsertAIAUser", sLoginIdParameter, sPasswordParameter, sFirstnameParameter, sLastnameParameter, iUserTypeIdParameter, sEmailIdParameter, iSecurityQuesIdParameter, sSecurityAnswerParameter, iCreatorIdParameter, iLicenseIdParameter, iEditionIdParameter, status); |
4996 | 4996 | } |
4997 | 4997 | |
4998 | - public virtual ObjectResult<Nullable<bool>> usp_ManageUserLoginStatus(Nullable<int> userId, string tag, Nullable<bool> isAlreadyLogin) | |
4998 | + public virtual ObjectResult<Nullable<bool>> usp_ManageUserLoginStatus(Nullable<int> userId, string tag, Nullable<long> sessionId) | |
4999 | 4999 | { |
5000 | 5000 | var userIdParameter = userId.HasValue ? |
5001 | 5001 | new ObjectParameter("userId", userId) : |
... | ... | @@ -5005,11 +5005,11 @@ namespace AIAHTML5.ADMIN.API.Entity |
5005 | 5005 | new ObjectParameter("tag", tag) : |
5006 | 5006 | new ObjectParameter("tag", typeof(string)); |
5007 | 5007 | |
5008 | - var isAlreadyLoginParameter = isAlreadyLogin.HasValue ? | |
5009 | - new ObjectParameter("isAlreadyLogin", isAlreadyLogin) : | |
5010 | - new ObjectParameter("isAlreadyLogin", typeof(bool)); | |
5008 | + var sessionIdParameter = sessionId.HasValue ? | |
5009 | + new ObjectParameter("sessionId", sessionId) : | |
5010 | + new ObjectParameter("sessionId", typeof(long)); | |
5011 | 5011 | |
5012 | - return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<bool>>("usp_ManageUserLoginStatus", userIdParameter, tagParameter, isAlreadyLoginParameter); | |
5012 | + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<bool>>("usp_ManageUserLoginStatus", userIdParameter, tagParameter, sessionIdParameter); | |
5013 | 5013 | } |
5014 | 5014 | } |
5015 | 5015 | } | ... | ... |
400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx
... | ... | @@ -1410,7 +1410,7 @@ |
1410 | 1410 | <Function Name="usp_ManageUserLoginStatus" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo"> |
1411 | 1411 | <Parameter Name="userId" Type="int" Mode="In" /> |
1412 | 1412 | <Parameter Name="tag" Type="varchar" Mode="In" /> |
1413 | - <Parameter Name="isAlreadyLogin" Type="bit" Mode="In" /> | |
1413 | + <Parameter Name="sessionId" Type="bigint" Mode="In" /> | |
1414 | 1414 | </Function> |
1415 | 1415 | <Function Name="usp_SaveLabExerciseAttempts" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo"> |
1416 | 1416 | <Parameter Name="UserId" Type="int" Mode="In" /> |
... | ... | @@ -3006,7 +3006,7 @@ |
3006 | 3006 | <FunctionImport Name="usp_ManageUserLoginStatus" ReturnType="Collection(Boolean)"> |
3007 | 3007 | <Parameter Name="userId" Mode="In" Type="Int32" /> |
3008 | 3008 | <Parameter Name="tag" Mode="In" Type="String" /> |
3009 | - <Parameter Name="isAlreadyLogin" Mode="In" Type="Boolean" /> | |
3009 | + <Parameter Name="sessionId" Mode="In" Type="Int64" /> | |
3010 | 3010 | </FunctionImport> |
3011 | 3011 | </EntityContainer> |
3012 | 3012 | <ComplexType Name="DA_GetBaseLayer_Result"> | ... | ... |
400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserModel.cs
... | ... | @@ -65,12 +65,12 @@ namespace AIAHTML5.ADMIN.API.Models |
65 | 65 | return false; |
66 | 66 | } |
67 | 67 | } |
68 | - public static bool ManageUserLoginStatus(AIADatabaseV5Entities dbContext, int userId, string tagName, bool isAlreadyLoggedIn) | |
68 | + public static bool ManageUserLoginStatus(AIADatabaseV5Entities dbContext, int userId, string tagName, long SessionId) | |
69 | 69 | { |
70 | 70 | bool loginStatus = false; |
71 | 71 | try |
72 | 72 | { |
73 | - loginStatus = Convert.ToBoolean(dbContext.usp_ManageUserLoginStatus(userId, tagName, isAlreadyLoggedIn).FirstOrDefault()); | |
73 | + loginStatus = Convert.ToBoolean(dbContext.usp_ManageUserLoginStatus(userId, tagName, SessionId).FirstOrDefault()); | |
74 | 74 | |
75 | 75 | return loginStatus; |
76 | 76 | } | ... | ... |
400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs
... | ... | @@ -370,9 +370,9 @@ namespace AIAHTML5.API.Controllers |
370 | 370 | { |
371 | 371 | int userId = jsonData["userId"].Value<int>(); |
372 | 372 | string tagName = jsonData["tagName"].Value<string>(); |
373 | - bool isAlreadyLoggedIn = jsonData["isAlreadyLoggedIn"].Value<bool>(); | |
373 | + long SessionId = jsonData["SessionId"].Value<long>(); | |
374 | 374 | |
375 | - loginStatus = AIAHTML5.API.Models.Users.GetUserLoginStatus(userId, tagName, isAlreadyLoggedIn); | |
375 | + loginStatus = AIAHTML5.API.Models.Users.GetUserLoginStatus(userId, tagName, SessionId); | |
376 | 376 | |
377 | 377 | return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(loginStatus) }; |
378 | 378 | } | ... | ... |
400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
... | ... | @@ -310,7 +310,7 @@ namespace AIAHTML5.API.Models |
310 | 310 | return objUser; |
311 | 311 | } |
312 | 312 | |
313 | - internal static string GetUserLoginStatus(int userId,string tagName,bool isAlreadyLoggedIn) | |
313 | + internal static string GetUserLoginStatus(int userId,string tagName, long SessionId) | |
314 | 314 | { |
315 | 315 | string status=string.Empty; |
316 | 316 | DBModel objModel = new DBModel(); |
... | ... | @@ -325,7 +325,7 @@ namespace AIAHTML5.API.Models |
325 | 325 | cmd.CommandType = CommandType.StoredProcedure; |
326 | 326 | cmd.Parameters.AddWithValue("@userId", userId); |
327 | 327 | cmd.Parameters.AddWithValue("@tag", tagName); |
328 | - cmd.Parameters.AddWithValue("@isAlreadyLogin", isAlreadyLoggedIn); | |
328 | + cmd.Parameters.AddWithValue("@sessionId", SessionId); | |
329 | 329 | adapter = new SqlDataAdapter(cmd); |
330 | 330 | adapter.Fill(ds); |
331 | 331 | ... | ... |
400-SOURCECODE/AIAHTML5.API/Models/Users.cs
... | ... | @@ -306,10 +306,10 @@ namespace AIAHTML5.API.Models |
306 | 306 | } |
307 | 307 | |
308 | 308 | |
309 | - internal static string GetUserLoginStatus(int userId, string tagName,bool isAlreadyLoggedIn) | |
309 | + internal static string GetUserLoginStatus(int userId, string tagName, long SessionId) | |
310 | 310 | { |
311 | 311 | string status = null; |
312 | - status = DBModel.GetUserLoginStatus(userId, tagName, isAlreadyLoggedIn); | |
312 | + status = DBModel.GetUserLoginStatus(userId, tagName, SessionId); | |
313 | 313 | |
314 | 314 | return status; |
315 | 315 | } | ... | ... |
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
... | ... | @@ -78,32 +78,11 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
78 | 78 | //$rootScope.errorMessage = ''; // Commented initialization to retain message when coming to login after password reset success screen |
79 | 79 | $rootScope.disableFileMenu = "disableFileMenu"; |
80 | 80 | |
81 | - $rootScope.userInfo = { | |
82 | - username: null, | |
83 | - password: null, | |
84 | - emailId: null, | |
85 | - newPassword: null, | |
86 | - confirmPassword: null, | |
87 | - userMessage: null, | |
88 | - unblockUser: false, | |
89 | - isMailForForgotPassword:false | |
90 | - }; | |
91 | 81 | $rootScope.userLicenseInfo = { |
92 | 82 | userLicenseId: 0, |
93 | 83 | licenseeAccountNumber: null |
94 | 84 | }; |
95 | 85 | |
96 | - $rootScope.siteUrlInfo = { | |
97 | - siteIP: null, | |
98 | - remoteIPAddress:null, | |
99 | - status: null, | |
100 | - accountNumber: null, | |
101 | - edition: null, | |
102 | - urlReferer: null, | |
103 | - calsCreds: null, | |
104 | - userId: null, | |
105 | - password:null | |
106 | - } | |
107 | 86 | $rootScope.userData; |
108 | 87 | $rootScope.userModules; |
109 | 88 | $rootScope.passwordMismatchMessage; |
... | ... | @@ -134,7 +113,35 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
134 | 113 | } |
135 | 114 | |
136 | 115 | $rootScope.initializeAIA = function () { |
137 | - if (params != null && params != undefined && params!="") { | |
116 | + var date = new Date(); | |
117 | + $rootScope.userInfo = { | |
118 | + username: null, | |
119 | + password: null, | |
120 | + emailId: null, | |
121 | + newPassword: null, | |
122 | + confirmPassword: null, | |
123 | + userMessage: null, | |
124 | + unblockUser: false, | |
125 | + isMailForForgotPassword: false, | |
126 | + SessionId:date.getTime() | |
127 | + }; | |
128 | + | |
129 | + $rootScope.siteUrlInfo = { | |
130 | + siteIP: null, | |
131 | + remoteIPAddress: null, | |
132 | + status: null, | |
133 | + accountNumber: null, | |
134 | + edition: null, | |
135 | + urlReferer: null, | |
136 | + calsCreds: null, | |
137 | + userId: null, | |
138 | + password: null, | |
139 | + mtype:null, | |
140 | + id:null, | |
141 | + SessionId:date.getTime() | |
142 | + } | |
143 | + | |
144 | + if (params != null && params != undefined && params != "") { | |
138 | 145 | |
139 | 146 | $scope.ValidateClientSiteUrl(); |
140 | 147 | } |
... | ... | @@ -166,6 +173,7 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
166 | 173 | $scope.currentUserDetails = $rootScope.getLocalStorageValue('loggedInUserDetails'); |
167 | 174 | if ($scope.currentUserDetails != undefined) { |
168 | 175 | $rootScope.isVisibleLogin = false; |
176 | + $location.url('/'); | |
169 | 177 | ConfigurationService.getCofigValue() |
170 | 178 | .then( |
171 | 179 | function (configresult) { |
... | ... | @@ -181,7 +189,7 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
181 | 189 | $scope.checkuserstatus = { |
182 | 190 | userId: userId, |
183 | 191 | tagName: loggedInUser.Id==0?'logout':'update', |
184 | - isAlreadyLoggedIn:true | |
192 | + SessionId:loggedInUser.SessionId | |
185 | 193 | } |
186 | 194 | |
187 | 195 | // this case found when browser closed by user after login. after long time (after 20 min) open site again |
... | ... | @@ -259,6 +267,12 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
259 | 267 | $('#spinnerLogin').css('visibility', 'hidden'); |
260 | 268 | $('.loginPanel').css('pointer-events', 'auto'); |
261 | 269 | $('.loginPanel').css('opacity', '1'); |
270 | + | |
271 | + $rootScope.isLoading = false; | |
272 | + $('#spinner').css('visibility', 'hidden'); | |
273 | + $('#HomeContainerDiv').css('pointer-events', 'auto'); | |
274 | + $('#HomeContainerDiv').css('opacity', '1'); | |
275 | + | |
262 | 276 | } |
263 | 277 | $rootScope.LoginDisableUI=function() |
264 | 278 | { |
... | ... | @@ -266,8 +280,14 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
266 | 280 | $('#spinnerLogin').css('visibility', 'visible'); |
267 | 281 | $('.loginPanel').css('pointer-events', 'none'); |
268 | 282 | $('.loginPanel').css('opacity', '0.7'); |
283 | + | |
284 | + $rootScope.isLoading = true; | |
285 | + $('#spinner').css('visibility', 'visible'); | |
286 | + $('#HomeContainerDiv').css('pointer-events', 'none'); | |
287 | + $('#HomeContainerDiv').css('opacity', '0.7'); | |
288 | + | |
269 | 289 | } |
270 | - $rootScope.AuthenticateUser = function (userInfo,isAlreadyLoggedIn) { | |
290 | + $rootScope.AuthenticateUser = function (userInfo) { | |
271 | 291 | if (navigator.cookieEnabled) { |
272 | 292 | $rootScope.errorMessage = ""; |
273 | 293 | if (userInfo.username == "" || userInfo.username == null || userInfo.username == undefined || userInfo.password == "" || userInfo.password == null || userInfo.password == undefined) { |
... | ... | @@ -299,7 +319,8 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
299 | 319 | result.aiaIdleTime=$rootScope.aiaIdleTime; |
300 | 320 | result.aiaIdleTimeOut=$rootScope.aiaIdleTimeOut; |
301 | 321 | result.aiaPingInterval=$rootScope.aiaPingInterval; |
302 | - $rootScope.isAlreadyLoggedIn=isAlreadyLoggedIn==undefined?false:isAlreadyLoggedIn; | |
322 | + result.SessionId=userInfo.SessionId; | |
323 | + | |
303 | 324 | //display user name |
304 | 325 | $rootScope.userName=result.FirstName+" "+result.LastName; |
305 | 326 | |
... | ... | @@ -684,17 +705,21 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
684 | 705 | //maintain user session by licenseid of site login |
685 | 706 | if(loggedInUser!==null && loggedInUser.AccountNumber==sitedetail.accountNumber) |
686 | 707 | { |
687 | - $rootScope.AuthenticateClientSiteUser(sitedetail,true); | |
708 | + //using old session id | |
709 | + sitedetail.SessionId = loggedInUser.SessionId; | |
710 | + $rootScope.AuthenticateClientSiteUser(sitedetail); | |
688 | 711 | } |
689 | 712 | else |
690 | 713 | { |
691 | - $rootScope.AuthenticateClientSiteUser(sitedetail,false); | |
714 | + //using new sessionid | |
715 | + $rootScope.AuthenticateClientSiteUser(sitedetail); | |
692 | 716 | } |
693 | 717 | }); |
694 | 718 | } |
695 | 719 | } |
696 | 720 | |
697 | - $rootScope.AuthenticateClientSiteUser = function (siteInfo,isAlreadyLoggedIn) { | |
721 | + $rootScope.AuthenticateClientSiteUser = function (siteInfo) { | |
722 | + $rootScope.LoginDisableUI(); | |
698 | 723 | AuthenticationService.validateClientSite(siteInfo) |
699 | 724 | .then( |
700 | 725 | function (result) { |
... | ... | @@ -745,7 +770,7 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
745 | 770 | result.aiaIdleTime=$rootScope.aiaIdleTime; |
746 | 771 | result.aiaIdleTimeOut=$rootScope.aiaIdleTimeOut; |
747 | 772 | result.aiaPingInterval=$rootScope.aiaPingInterval; |
748 | - $rootScope.isAlreadyLoggedIn=isAlreadyLoggedIn==undefined?false:isAlreadyLoggedIn; | |
773 | + result.SessionId=siteInfo.SessionId; | |
749 | 774 | //display user name |
750 | 775 | $rootScope.userName=result.FirstName+" "+result.LastName; |
751 | 776 | if (typeof result.FirstName != undefined || result.FirstName != "" || result.FirstName != null) { |
... | ... | @@ -1047,11 +1072,10 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
1047 | 1072 | $rootScope.userStatus = { |
1048 | 1073 | userId: null, |
1049 | 1074 | tagName: null, |
1050 | - loginStatus: null, | |
1051 | - isAlreadyLoggedIn:null | |
1075 | + SessionId:null | |
1052 | 1076 | } |
1053 | 1077 | console.log('user session start'); |
1054 | - $rootScope.CheckUserSession('insert',$rootScope.isAlreadyLoggedIn); | |
1078 | + $rootScope.CheckUserSession('insert'); | |
1055 | 1079 | |
1056 | 1080 | $rootScope.$on('IdleStart', function() { |
1057 | 1081 | // this event fire when idle time finish and time out start |
... | ... | @@ -1069,14 +1093,14 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
1069 | 1093 | // config set in AIA.js -:IdleProvider.timeout(15); |
1070 | 1094 | $rootScope.isSessionTimeout=true; |
1071 | 1095 | console.log('session is timeout'); |
1072 | - $rootScope.CheckUserSession('logout',true); | |
1096 | + $rootScope.CheckUserSession('logout'); | |
1073 | 1097 | }); |
1074 | 1098 | $rootScope.$on('Keepalive', function() { |
1075 | 1099 | // it watch the session on perticular time interval during idle time period |
1076 | 1100 | // config set in AIA.js -: KeepaliveProvider.interval(10); |
1077 | 1101 | //we will use it to recieve request from databse if user logout from admin activity |
1078 | 1102 | console.log('ping user session'); |
1079 | - $rootScope.CheckUserSession('update',true); | |
1103 | + $rootScope.CheckUserSession('update'); | |
1080 | 1104 | }); |
1081 | 1105 | |
1082 | 1106 | |
... | ... | @@ -1103,7 +1127,7 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
1103 | 1127 | $rootScope.isSessionTimeout=true; |
1104 | 1128 | localStorage.removeItem('loggedInUserDetails'); |
1105 | 1129 | localStorage.clear(); |
1106 | - $rootScope.CheckUserSession('logout',true); | |
1130 | + $rootScope.CheckUserSession('logout'); | |
1107 | 1131 | $timeout(function(){ |
1108 | 1132 | document.location = '/'; |
1109 | 1133 | $rootScope.isVisibleLogin = true; |
... | ... | @@ -1118,15 +1142,15 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
1118 | 1142 | $rootScope.isVisibleLogin = true; |
1119 | 1143 | } |
1120 | 1144 | |
1121 | - $rootScope.CheckUserSession = function (tagName,isAlreadyLoggedIn) { | |
1145 | + $rootScope.CheckUserSession = function (tagName) { | |
1122 | 1146 | //console.log('user login id: '+$rootScope.userData.Id); |
1123 | 1147 | //console.log('user login activity tag: '+tagName); |
1124 | 1148 | if($rootScope.userData==undefined) return; |
1125 | 1149 | //incase site user login userid is 0 so then using license id |
1126 | 1150 | $rootScope.userStatus.userId=$rootScope.userData.Id==0?$rootScope.userData.LicenseId:$rootScope.userData.Id; |
1127 | 1151 | $rootScope.userStatus.tagName=tagName; |
1128 | - $rootScope.userStatus.isAlreadyLoggedIn=isAlreadyLoggedIn; | |
1129 | - $rootScope.isAlreadyLoggedIn=true; | |
1152 | + $rootScope.userStatus.SessionId=$rootScope.userData.SessionId; | |
1153 | + | |
1130 | 1154 | AuthenticationService.ManageUserLoginStatus($rootScope.userStatus) |
1131 | 1155 | .then( |
1132 | 1156 | function (loginStatus) { |
... | ... | @@ -1162,20 +1186,7 @@ function ($rootScope, $scope, Modules, $log, $location, $timeout, DataService, A |
1162 | 1186 | userInfo["password"] = userInfo.Password; |
1163 | 1187 | |
1164 | 1188 | |
1165 | - $rootScope.AuthenticateUser(userInfo,true); | |
1166 | - | |
1167 | - if ($rootScope.refreshcheck == null) { | |
1168 | - | |
1169 | - if ($location.path() == "/lab-exercises-detail") { | |
1170 | - | |
1171 | - $location.url('/'); | |
1172 | - } | |
1173 | - else { | |
1174 | - | |
1175 | - $location.url('/'); | |
1176 | - } | |
1177 | - $rootScope.isVisibleLogin = false; | |
1178 | - } | |
1189 | + $rootScope.AuthenticateUser(userInfo); | |
1179 | 1190 | } |
1180 | 1191 | |
1181 | 1192 | ... | ... |
400-SOURCECODE/AIAHTML5.Web/app/services/AuthenticationService.js
... | ... | @@ -57,8 +57,8 @@ |
57 | 57 | }).error(function (data, status, headers, config) { |
58 | 58 | console.log('error') |
59 | 59 | deferred.reject(data); |
60 | - $rootScope.errorMessage = data; | |
61 | - $("#messageModal").modal('show'); | |
60 | + // $rootScope.errorMessage = data; | |
61 | + // $("#messageModal").modal('show'); | |
62 | 62 | |
63 | 63 | }); |
64 | 64 | return deferred.promise; | ... | ... |
400-SOURCECODE/AIAHTML5.Web/index.aspx
... | ... | @@ -308,7 +308,7 @@ |
308 | 308 | </div> |
309 | 309 | </div> |
310 | 310 | <div id="index" ng-hide="isVisibleLogin"> |
311 | - <div class="container-fluid "> | |
311 | + <div class="container-fluid " id="HomeContainerDiv"> | |
312 | 312 | <!--Header--> |
313 | 313 | |
314 | 314 | <nav class="navbar navbar-inverse navbar-fixed-top"> | ... | ... |
400-SOURCECODE/Admin/src/app/app.component.ts
... | ... | @@ -81,6 +81,11 @@ export class AppComponent implements OnInit { |
81 | 81 | // console.log("You\'ve gone idle!"); |
82 | 82 | // }); |
83 | 83 | |
84 | + if(window.location.hostname=="localhost") | |
85 | + { | |
86 | + //insert new session | |
87 | + this.loginManageStatus('insert'); | |
88 | + } | |
84 | 89 | this.idle.watch(); |
85 | 90 | |
86 | 91 | } |
... | ... | @@ -134,7 +139,7 @@ export class AppComponent implements OnInit { |
134 | 139 | this.userservice.ManageUserLoginStatus({ |
135 | 140 | userId: this.global.UserId, |
136 | 141 | tagName: tagname, |
137 | - isAlreadyLoggedIn:true | |
142 | + SessionId:this.global.SessionId | |
138 | 143 | }).subscribe(status => { |
139 | 144 | console.log(status); |
140 | 145 | if(status=='False') | ... | ... |
400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts
... | ... | @@ -56,7 +56,7 @@ export class UserService { |
56 | 56 | |
57 | 57 | //////////Manage UserLogin Status/////////// |
58 | 58 | ManageUserLoginStatus(obj: any) { |
59 | - var jsonData = { 'userId': obj.userId, 'tagName': obj.tagName,'isAlreadyLoggedIn': obj.isAlreadyLoggedIn }; | |
59 | + var jsonData = { 'userId': obj.userId, 'tagName': obj.tagName,'SessionId': obj.SessionId }; | |
60 | 60 | console.log(obj); |
61 | 61 | var headers = new Headers({ |
62 | 62 | 'Content-Type': 'application/json' | ... | ... |
400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts
... | ... | @@ -392,8 +392,8 @@ export class UsersList implements OnInit, AfterViewChecked { |
392 | 392 | this._loadingService.ShowLoading("global-loading"); |
393 | 393 | this.userservice.ManageUserLoginStatus({ |
394 | 394 | userId: this.selectedId, |
395 | - tagName: 'logout', | |
396 | - isAlreadyLoggedIn:true | |
395 | + tagName: 'adminlogout', | |
396 | + SessionId:this.global.SessionId | |
397 | 397 | }).subscribe(x => { |
398 | 398 | console.log(x); |
399 | 399 | this.EditbuttonStatus=undefined; | ... | ... |
400-SOURCECODE/Admin/src/app/shared/global.ts
... | ... | @@ -27,6 +27,7 @@ export class GlobalService { |
27 | 27 | aiaIdleTime:number=0; |
28 | 28 | aiaIdleTimeOut:number=0; |
29 | 29 | aiaPingInterval:number=0; |
30 | + SessionId:number=0; | |
30 | 31 | RemoveColumns: Array<string> = ["Serial_No", "LicenseId","RowNum"] |
31 | 32 | error; |
32 | 33 | public href: string = ""; |
... | ... | @@ -41,6 +42,7 @@ export class GlobalService { |
41 | 42 | this.aiaIdleTime=this.loggedInUser.aiaIdleTime; |
42 | 43 | this.aiaIdleTimeOut=this.loggedInUser.aiaIdleTimeOut; |
43 | 44 | this.aiaPingInterval=this.loggedInUser.aiaPingInterval; |
45 | + this.SessionId=this.loggedInUser.SessionId; | |
44 | 46 | |
45 | 47 | } |
46 | 48 | |
... | ... | @@ -72,9 +74,11 @@ export class GlobalService { |
72 | 74 | { |
73 | 75 | // for 'ng serve --open' command |
74 | 76 | //**** for localhost:4200 *****// |
77 | + var date = new Date(); | |
78 | + var newsessionid = date.getTime();//timestamp is the number of milliseconds that have passed since January 1, 1970 | |
75 | 79 | localStorage.setItem('loggedInUserDetails', JSON.stringify( |
76 | 80 | { |
77 | - "Id": 1, "FirstName": "Maribel", "LastName": "sfsfsfsfsfsfs", "EmailId": "ravi.vishwakarma@ebix.com", "LoginId": "superadmin", "Password": "ebix@2016","aiaIdleTime": 300,"aiaIdleTimeOut": 30,"aiaPingInterval": 10, "SecurityQuestionId": 1, "SecurityAnswer": "boxer", "CreatorId": 1, "CreationDate": "2009-03-02T00:00:00", "DeactivationDate": null, "ModifierId": 1, "ModifiedDate": "2017-01-24T02:03:19", "UserType": "Super Admin", "UserTypeId": 1, "IsActive": true, "IsCorrectPassword": false, "IncorrectLoginAttemptCount": 0, "IsBlocked": false, "LicenseId": 0, "EditionId": 0, "LoginFailureCauseId": 0, "Modules": [{ "slug": "da-view-list", "name": "Dissectible Anatomy", "id": 1 }, { "slug": "tile-view-list", "name": "Atlas Anatomy", "id": 2 }, { "slug": "3d-anatomy-list", "name": "3D Anatomy", "id": 3 }, { "slug": "clinical-illustrations", "name": "Clinical Illustrations", "id": 4 }, { "slug": "clinical-animations", "name": "Clinical Animations", "id": 5 }, { "slug": "Link/encyclopedia", "name": "Encyclopedia", "id": 6 }, { "slug": "curriculum-builder", "name": "Curriculum Builder", "id": 7 }, { "slug": "anatomy-test", "name": "Anatomy Test", "id": 8 }, { "slug": "Link/IP-10", "name": "IP 10", "id": 9 }, { "slug": "lab-exercises", "name": "Lab Exercises", "id": 10 }, { "slug": "Link/indepth-reports", "name": "In-Depth Reports", "id": 11 }, { "slug": "Link/complementary-and-alternate-medicine", "name": "CAM", "id": 12 }, { "slug": "ADAM-images", "name": "A.D.A.M. Images", "id": 13 }, { "slug": "Link/bodyguide", "name": "Body Guide", "id": 14 }, { "slug": "Link/health-navigator", "name": "Symptom Navigator", "id": 15 }, { "slug": "Link/wellness-tools", "name": "The Wellness Tools", "id": 16 }, { "slug": "Link/aod", "name": "A.D.A.M. OnDemand", "id": 1017 }], "LicenseInfo": { "Id": 0, "AccountNumber": "AIAS000319" }, "LicenseSubscriptions": null, "IsSubscriptionExpired": false, "SubscriptionExpirationDate": null, "TermsAndConditionsTitle": null, "TermsAndConditionsText": null | |
81 | + "Id": 1, "FirstName": "Maribel", "LastName": "sfsfsfsfsfsfs", "EmailId": "ravi.vishwakarma@ebix.com", "LoginId": "superadmin", "Password": "ebix@2016","aiaIdleTime": 300,"aiaIdleTimeOut": 30,"aiaPingInterval": 10,"SessionId":newsessionid, "SecurityQuestionId": 1, "SecurityAnswer": "boxer", "CreatorId": 1, "CreationDate": "2009-03-02T00:00:00", "DeactivationDate": null, "ModifierId": 1, "ModifiedDate": "2017-01-24T02:03:19", "UserType": "Super Admin", "UserTypeId": 1, "IsActive": true, "IsCorrectPassword": false, "IncorrectLoginAttemptCount": 0, "IsBlocked": false, "LicenseId": 0, "EditionId": 0, "LoginFailureCauseId": 0, "Modules": [{ "slug": "da-view-list", "name": "Dissectible Anatomy", "id": 1 }, { "slug": "tile-view-list", "name": "Atlas Anatomy", "id": 2 }, { "slug": "3d-anatomy-list", "name": "3D Anatomy", "id": 3 }, { "slug": "clinical-illustrations", "name": "Clinical Illustrations", "id": 4 }, { "slug": "clinical-animations", "name": "Clinical Animations", "id": 5 }, { "slug": "Link/encyclopedia", "name": "Encyclopedia", "id": 6 }, { "slug": "curriculum-builder", "name": "Curriculum Builder", "id": 7 }, { "slug": "anatomy-test", "name": "Anatomy Test", "id": 8 }, { "slug": "Link/IP-10", "name": "IP 10", "id": 9 }, { "slug": "lab-exercises", "name": "Lab Exercises", "id": 10 }, { "slug": "Link/indepth-reports", "name": "In-Depth Reports", "id": 11 }, { "slug": "Link/complementary-and-alternate-medicine", "name": "CAM", "id": 12 }, { "slug": "ADAM-images", "name": "A.D.A.M. Images", "id": 13 }, { "slug": "Link/bodyguide", "name": "Body Guide", "id": 14 }, { "slug": "Link/health-navigator", "name": "Symptom Navigator", "id": 15 }, { "slug": "Link/wellness-tools", "name": "The Wellness Tools", "id": 16 }, { "slug": "Link/aod", "name": "A.D.A.M. OnDemand", "id": 1017 }], "LicenseInfo": { "Id": 0, "AccountNumber": "AIAS000319" }, "LicenseSubscriptions": null, "IsSubscriptionExpired": false, "SubscriptionExpirationDate": null, "TermsAndConditionsTitle": null, "TermsAndConditionsText": null | |
78 | 82 | })); |
79 | 83 | } |
80 | 84 | ... | ... |