Merge "YANG Model update for A1 Adapter"
[ccsdk/features.git] / sdnr / wt / odlux / framework / src / services / forceLogoutService.ts
1 /**
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt odlux
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18
19 import { ApplicationStore } from "../store/applicationStore";
20 import { UpdateAuthentication } from "../actions/authentication";
21 import { ReplaceAction } from "../actions/navigationActions";
22
23 const maxMinutesTillLogout = 15;
24 let applicationStore: ApplicationStore | null;
25 let tickTimer = 15;
26
27
28 export const startForceLogoutService = (store: ApplicationStore) => {
29     applicationStore = store;
30     createForceLogoutInterval();
31 };
32
33 const createForceLogoutInterval = () => {
34     console.log("logout timer running...")
35
36     return setInterval(function () {
37         if (applicationStore && applicationStore.state.framework.authenticationState.user) {
38             tickTimer--;
39
40             if (tickTimer === 0) {
41                 console.log("got logged out by timer")
42                 if (applicationStore) {
43                     applicationStore.dispatch(new UpdateAuthentication(null));
44                     applicationStore.dispatch(new ReplaceAction("/login"));
45                 }
46             }
47         }
48
49     }, 1 * 60000)
50 }
51
52 document.addEventListener("mousemove", function () { tickTimer = maxMinutesTillLogout; }, false)