Selaa lähdekoodia

Fixed oAuth GUI issues

TC pushbot 5 4 vuotta sitten
vanhempi
commit
08270c7c11
2 muutettua tiedostoa jossa 36 lisäystä ja 11 poistoa
  1. 19 7
      mod/auth/oauth2/oauth2.go
  2. 17 4
      web/SystemAO/advance/oauth.html

+ 19 - 7
mod/auth/oauth2/oauth2.go

@@ -82,6 +82,7 @@ func (oh *OauthHandler) HandleAuthorize(w http.ResponseWriter, r *http.Request)
 	uuid, err := r.Cookie("uuid_login")
 	if err != nil {
 		sendTextResponse(w, "Invalid redirect URI.")
+		return
 	}
 
 	state := r.FormValue("state")
@@ -169,30 +170,41 @@ func (oh *OauthHandler) ReadConfig(w http.ResponseWriter, r *http.Request) {
 func (oh *OauthHandler) WriteConfig(w http.ResponseWriter, r *http.Request) {
 	enabled, err := mv(r, "enabled", true)
 	if err != nil {
-		sendTextResponse(w, "enabled field can't be empty'")
+		sendErrorResponse(w, "enabled field can't be empty'")
+		return
+	}
+
+	oh.coredb.Write("oauth", "enabled", enabled)
+
+	if enabled != "true" {
+		return
 	}
+
 	idp, err := mv(r, "idp", true)
 	if err != nil {
-		sendTextResponse(w, "idp field can't be empty'")
+		sendErrorResponse(w, "idp field can't be empty'")
+		return
 	}
 	redirecturl, err := mv(r, "redirecturl", true)
 	if err != nil {
-		sendTextResponse(w, "redirecturl field can't be empty'")
+		sendErrorResponse(w, "redirecturl field can't be empty'")
+		return
 	}
 	clientid, err := mv(r, "clientid", true)
 	if err != nil {
-		sendTextResponse(w, "clientid field can't be empty'")
+		sendErrorResponse(w, "clientid field can't be empty'")
 	}
 	clientsecret, err := mv(r, "clientsecret", true)
 	if err != nil {
-		sendTextResponse(w, "clientsecret field can't be empty'")
+		sendErrorResponse(w, "clientsecret field can't be empty'")
+		return
 	}
 	defaultusergroup, err := mv(r, "defaultusergroup", true)
 	if err != nil {
-		sendTextResponse(w, "defaultusergroup field can't be empty'")
+		sendErrorResponse(w, "defaultusergroup field can't be empty'")
+		return
 	}
 
-	oh.coredb.Write("oauth", "enabled", enabled)
 	oh.coredb.Write("oauth", "idp", idp)
 	oh.coredb.Write("oauth", "redirecturl", redirecturl)
 	oh.coredb.Write("oauth", "clientid", clientid)

+ 17 - 4
web/SystemAO/advance/oauth.html

@@ -56,14 +56,22 @@
     <div class="ui container">
         <div class="ui basic segment">
             <div class="ui header">
-                <i class="tv icon"></i>
+                <i class="key icon"></i>
                 <div class="content">
-                    OAuth
-                    <div class="sub header">Allow external account access to the services</div>
+                    OAuth Access
+                    <div class="sub header">Allow external account to access ArozOS with OAuth 2.0</div>
                 </div>
             </div>
         </div>
         <div class="ui divider"></div>
+        <div class="ui green inverted segment" style="display:none;" id="updateSet">
+            <h5 class="ui header">
+                <i class="checkmark icon"></i>
+                <div class="content">
+                    Setting Updated
+                </div>
+            </h5>
+        </div>
         <div class="ui form">
             <div class="field">
                 <div class="ui toggle checkbox">
@@ -148,7 +156,12 @@
                     defaultusergroup: $("#group").val()
                 })
                 .done(function(data) {
-                    alert(data);
+                    if (data.error != undefined){
+                        alert(data.error);
+                    }else{
+                        //OK!
+                        $("#updateSet").stop().finish().slideDown("fast").delay(3000).slideUp('fast');
+                    }
                 });
         }