summaryrefslogtreecommitdiff
path: root/internal/server/instituteaccess.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-10-11 15:27:46 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-10-11 15:37:54 +0200
commit242903aa810797102b14e27dda988fff7ab833cc (patch)
treedb9e567306b4923b81eda7a38084c322b683c98e /internal/server/instituteaccess.go
parent565237c14a303a46d62d240b35c6f0082424256a (diff)
Client + Server: Set the current institute / custom server on adding
Diffstat (limited to 'internal/server/instituteaccess.go')
-rw-r--r--internal/server/instituteaccess.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/server/instituteaccess.go b/internal/server/instituteaccess.go
index f2669b8..bf0e2bc 100644
--- a/internal/server/instituteaccess.go
+++ b/internal/server/instituteaccess.go
@@ -1,6 +1,7 @@
package server
import (
+ "errors"
"fmt"
"github.com/eduvpn/eduvpn-common/internal/oauth"
@@ -21,6 +22,26 @@ type InstituteAccessServers struct {
CurrentURL string `json:"current_url"`
}
+func (servers *Servers) SetInstituteAccess(server Server) error {
+ errorMessage := "failed setting institute access server"
+ base, baseErr := server.GetBase()
+ if baseErr != nil {
+ return &types.WrappedErrorMessage{Message: errorMessage, Err: baseErr}
+ }
+
+ if base.Type != "institute_access" {
+ return &types.WrappedErrorMessage{Message: errorMessage, Err: errors.New("Not an institute access server")}
+ }
+
+ if _, ok := servers.InstituteServers.Map[base.URL]; ok {
+ servers.InstituteServers.CurrentURL = base.URL
+ servers.IsType = InstituteAccessServerType
+ } else {
+ return &types.WrappedErrorMessage{Message: errorMessage, Err: errors.New("No such institute access server")}
+ }
+ return nil
+}
+
func (servers *Servers) GetInstituteAccess(url string) (*InstituteAccessServer, error) {
if server, ok := servers.InstituteServers.Map[url]; ok {
return server, nil