diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-08-24 14:37:05 +0200 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-08-24 14:37:05 +0200 |
| commit | 03f0fc68168de8db1735cc7d1c4d328c4bdd03f2 (patch) | |
| tree | 53218a27cbfbfccf8fb792835e31f28d36aadbfa /state.go | |
| parent | fea086334359e715ee388e01c4a4a00f5f379fe4 (diff) | |
State + Server + Exports: Implement removing a server
Diffstat (limited to 'state.go')
| -rw-r--r-- | state.go | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -212,6 +212,51 @@ func (state *VPNState) addSecureInternetHomeServer(orgID string) (server.Server, return server, nil } +func (state *VPNState) RemoveSecureInternet() error { + if state.InFSMState(fsm.DEREGISTERED) { + return &types.WrappedErrorMessage{ + Message: "failed to remove Secure Internet", + Err: fsm.DeregisteredError{}.CustomError(), + } + } + // No error because we can only have one secure internet server and if there are no secure internet servers, this is a NO-OP + state.Servers.RemoveSecureInternet() + state.FSM.GoTransitionWithData(fsm.NO_SERVER, state.GetSavedServers(), false) + // Save the config + state.Config.Save(&state) + return nil +} + +func (state *VPNState) RemoveInstituteAccess(url string) error { + if state.InFSMState(fsm.DEREGISTERED) { + return &types.WrappedErrorMessage{ + Message: "failed to remove Institute Access", + Err: fsm.DeregisteredError{}.CustomError(), + } + } + // No error because this is a NO-OP if the server doesn't exist + state.Servers.RemoveInstituteAccess(url) + state.FSM.GoTransitionWithData(fsm.NO_SERVER, state.GetSavedServers(), false) + // Save the config + state.Config.Save(&state) + return nil +} + +func (state *VPNState) RemoveCustomServer(url string) error { + if state.InFSMState(fsm.DEREGISTERED) { + return &types.WrappedErrorMessage{ + Message: "failed to remove Custom Server", + Err: fsm.DeregisteredError{}.CustomError(), + } + } + // No error because this is a NO-OP if the server doesn't exist + state.Servers.RemoveCustomServer(url) + state.FSM.GoTransitionWithData(fsm.NO_SERVER, state.GetSavedServers(), false) + // Save the config + state.Config.Save(&state) + return nil +} + func (state *VPNState) GetConfigSecureInternet( orgID string, forceTCP bool, |
