Browse Source

websetting

star7th 4 years ago
parent
commit
75043c281e

+ 46 - 20
server/Application/Api/Controller/AdminSettingController.class.php

@@ -8,17 +8,58 @@ class AdminSettingController extends BaseController {
         $login_user = $this->checkLogin();
         $this->checkAdmin();
         $register_open = intval(I("register_open")) ;
-        $ldap_open = intval(I("ldap_open")) ;
         $oss_open = intval(I("oss_open")) ;
         $home_page = intval(I("home_page")) ;
         $home_item = intval(I("home_item")) ;
-        $ldap_form = I("ldap_form") ;
         $oss_setting = I("oss_setting") ;
         D("Options")->set("register_open" ,$register_open) ;
         D("Options")->set("home_page" ,$home_page) ;
         D("Options")->set("home_item" ,$home_item) ;
         
+        if ($oss_open) {
+            D("Options")->set("oss_setting" , json_encode( $oss_setting)) ;
+        }
+        D("Options")->set("oss_open" ,$oss_open) ;
+
+        $this->sendResult(array());
+
+    }
+
+    //加载配置
+    public function loadConfig(){
+        $login_user = $this->checkLogin();
+        $this->checkAdmin();
+        $oss_open = D("Options")->get("oss_open" ) ;
+        $register_open = D("Options")->get("register_open" ) ;
+        $oss_setting = D("Options")->get("oss_setting" ) ;
+        $home_page = D("Options")->get("home_page" ) ;
+        $home_item = D("Options")->get("home_item" ) ;
+        $ldap_form = json_decode($ldap_form,1);
+        $oss_setting = json_decode($oss_setting,1);
+        
+        //如果强等于false,那就是尚未有数据。关闭注册应该是有数据且数据为字符串0
+        if ($register_open === false) {
+            $this->sendResult(array());
+        }else{
+            $array = array(
+                "oss_open"=>$oss_open ,
+                "register_open"=>$register_open ,
+                "home_page"=>$home_page ,
+                "home_item"=>$home_item ,
+                "oss_setting"=>$oss_setting ,
+                );
+            $this->sendResult($array);
+        }
 
+    }
+
+    //保存配置
+    public function saveLdapConfig(){
+        $login_user = $this->checkLogin();
+        $this->checkAdmin();
+        $ldap_open = intval(I("ldap_open")) ;
+        $ldap_form = I("ldap_form") ;
+        
         if ($ldap_open) {
             if (!$ldap_form['user_field']) {
                 $ldap_form['user_field'] = 'cn';
@@ -56,29 +97,17 @@ class AdminSettingController extends BaseController {
             D("Options")->set("ldap_form" , json_encode( $ldap_form)) ;
         }
         D("Options")->set("ldap_open" ,$ldap_open) ;
-
-        if ($oss_open) {
-            D("Options")->set("oss_setting" , json_encode( $oss_setting)) ;
-        }
-        D("Options")->set("oss_open" ,$oss_open) ;
-
         $this->sendResult(array());
 
     }
 
     //加载配置
-    public function loadConfig(){
+    public function loadLdapConfig(){
         $login_user = $this->checkLogin();
         $this->checkAdmin();
         $ldap_open = D("Options")->get("ldap_open" ) ;
-        $oss_open = D("Options")->get("oss_open" ) ;
-        $register_open = D("Options")->get("register_open" ) ;
         $ldap_form = D("Options")->get("ldap_form" ) ;
-        $oss_setting = D("Options")->get("oss_setting" ) ;
-        $home_page = D("Options")->get("home_page" ) ;
-        $home_item = D("Options")->get("home_item" ) ;
         $ldap_form = json_decode($ldap_form,1);
-        $oss_setting = json_decode($oss_setting,1);
         
         //如果强等于false,那就是尚未有数据。关闭注册应该是有数据且数据为字符串0
         if ($register_open === false) {
@@ -86,18 +115,15 @@ class AdminSettingController extends BaseController {
         }else{
             $array = array(
                 "ldap_open"=>$ldap_open ,
-                "oss_open"=>$oss_open ,
-                "register_open"=>$register_open ,
-                "home_page"=>$home_page ,
-                "home_item"=>$home_item ,
                 "ldap_form"=>$ldap_form ,
-                "oss_setting"=>$oss_setting ,
                 );
             $this->sendResult($array);
         }
 
     }
 
+
+
     public function checkLdapLogin(){
             $username = 'admin';
             $password = '123456';

+ 8 - 1
web_src/src/components/admin/Index.vue

@@ -29,6 +29,10 @@
               <i class="el-icon-tickets"></i>
               <span slot="title">{{ $t('attachment_manage') }}</span>
             </el-menu-item>
+            <el-menu-item index="7">
+              <i class="el-icon-tickets"></i>
+              <span slot="title">{{ $t('ext_login') }}</span>
+            </el-menu-item>
             <el-menu-item index="3">
               <i class="el-icon-tickets"></i>
               <span slot="title">{{ $t('web_setting') }}</span>
@@ -50,6 +54,7 @@
             <Setting v-if="open_menu_index == 3"></Setting>
             <Attachment v-if="open_menu_index == 5"></Attachment>
             <SystemUpdate v-if="open_menu_index == 6"></SystemUpdate>
+            <ExtLogin v-if="open_menu_index == 7"></ExtLogin>
           </el-main>
           <el-footer>
             <!-- something -->
@@ -130,6 +135,7 @@ import User from '@/components/admin/user/Index'
 import Setting from '@/components/admin/setting/Index'
 import Attachment from '@/components/admin/attachment/Index'
 import SystemUpdate from '@/components/admin/systemUpdate/Index'
+import ExtLogin from '@/components/admin/extLogin/Index'
 export default {
   data() {
     return {
@@ -142,7 +148,8 @@ export default {
     User,
     Setting,
     Attachment,
-    SystemUpdate
+    SystemUpdate,
+    ExtLogin
   },
   methods: {
     select_menu(index, indexPath) {

+ 144 - 0
web_src/src/components/admin/extLogin/Index.vue

@@ -0,0 +1,144 @@
+<template>
+  <div class="hello">
+    <el-tabs type="border-card">
+      <el-tab-pane label="LDAP">
+        <el-form ref="form" :model="form" label-width="150px">
+          <el-form-item :label="$t('ldap_open_label')">
+            <el-switch v-model="form.ldap_open"></el-switch>
+          </el-form-item>
+
+          <div>
+            <el-form-item label="ldap host">
+              <el-input
+                v-model="form.ldap_form.host"
+                class="form-el"
+              ></el-input>
+            </el-form-item>
+
+            <el-form-item label="ldap port">
+              <el-input
+                v-model="form.ldap_form.port"
+                style="width:90px"
+              ></el-input>
+            </el-form-item>
+
+            <el-form-item label="ldap base dn ">
+              <el-input
+                v-model="form.ldap_form.base_dn"
+                class="form-el"
+                placeholder="例如 dc=showdoc,dc=com"
+              ></el-input>
+            </el-form-item>
+
+            <el-form-item label="ldap bind dn ">
+              <el-input
+                v-model="form.ldap_form.bind_dn"
+                class="form-el"
+                placeholder="cn=admin,dc=showdoc,dc=com"
+              ></el-input>
+            </el-form-item>
+
+            <el-form-item label="ldap bind password ">
+              <el-input
+                v-model="form.ldap_form.bind_password"
+                class="form-el"
+                placeholder="例如 123456"
+              ></el-input>
+            </el-form-item>
+
+            <el-form-item label="ldap version">
+              <el-select v-model="form.ldap_form.version" class="form-el">
+                <el-option label="3" value="3"></el-option>
+                <el-option label="2" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+
+            <el-form-item label="ldap user filed">
+              <el-input
+                v-model="form.ldap_form.user_field"
+                class="form-el"
+                placeholder="例如 cn 或者 sAMAccountName"
+              ></el-input>
+            </el-form-item>
+          </div>
+
+          <br />
+          <el-form-item>
+            <el-button type="primary" @click="saveLdapConfig">{{
+              $t('save')
+            }}</el-button>
+            <el-button>{{ $t('cancel') }}</el-button>
+          </el-form-item>
+        </el-form>
+      </el-tab-pane>
+      <el-tab-pane label="OAuth2">OAuth2</el-tab-pane>
+      <el-tab-pane label="通用接入">
+        <div style="min-height:600px;margin-top:20px;">
+          通用接入提供的是一种自动登录showdoc的能力,需要自己根据文档开发集成,详情请看:这里
+        </div>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<style scoped>
+.form-el {
+  width: 230px;
+}
+</style>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {
+        ldap_open: false,
+        ldap_form: {
+          host: '',
+          port: '389',
+          version: '3',
+          base_dn: '',
+          bind_dn: '',
+          bind_password: '',
+          user_field: ''
+        }
+      },
+      itemList: []
+    }
+  },
+  methods: {
+    saveLdapConfig() {
+      var url = DocConfig.server + '/api/adminSetting/saveLdapConfig'
+      this.axios.post(url, this.form).then(response => {
+        if (response.data.error_code === 0) {
+          this.$alert(this.$t('success'))
+        } else {
+          this.$alert(response.data.error_message)
+        }
+      })
+    },
+    loadLdapConfig() {
+      var url = DocConfig.server + '/api/adminSetting/loadLdapConfig'
+      this.axios.post(url, this.form).then(response => {
+        if (response.data.error_code === 0) {
+          if (response.data.data.length === 0) {
+            return
+          }
+          this.form.ldap_open = response.data.data.ldap_open > 0
+          this.form.ldap_form = response.data.data.ldap_form
+            ? response.data.data.ldap_form
+            : this.form.ldap_form
+        } else {
+          this.$alert(response.data.error_message)
+        }
+      })
+    }
+  },
+  mounted() {
+    this.loadLdapConfig()
+  },
+  beforeDestroy() {
+    this.$message.closeAll()
+  }
+}
+</script>

+ 25 - 75
web_src/src/components/admin/setting/Index.vue

@@ -29,59 +29,6 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item :label="$t('ldap_open_label')">
-        <el-switch v-model="form.ldap_open"></el-switch>
-      </el-form-item>
-
-      <div v-if="form.ldap_open" style="margin-left:50px">
-        <el-form-item label="ldap host">
-          <el-input v-model="form.ldap_form.host" class="form-el"></el-input>
-        </el-form-item>
-
-        <el-form-item label="ldap port">
-          <el-input v-model="form.ldap_form.port" style="width:90px"></el-input>
-        </el-form-item>
-
-        <el-form-item label="ldap base dn ">
-          <el-input
-            v-model="form.ldap_form.base_dn"
-            class="form-el"
-            placeholder="例如 dc=showdoc,dc=com"
-          ></el-input>
-        </el-form-item>
-
-        <el-form-item label="ldap bind dn ">
-          <el-input
-            v-model="form.ldap_form.bind_dn"
-            class="form-el"
-            placeholder="cn=admin,dc=showdoc,dc=com"
-          ></el-input>
-        </el-form-item>
-
-        <el-form-item label="ldap bind password ">
-          <el-input
-            v-model="form.ldap_form.bind_password"
-            class="form-el"
-            placeholder="例如 123456"
-          ></el-input>
-        </el-form-item>
-
-        <el-form-item label="ldap version">
-          <el-select v-model="form.ldap_form.version" class="form-el">
-            <el-option label="3" value="3"></el-option>
-            <el-option label="2" value="2"></el-option>
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label="ldap user filed">
-          <el-input
-            v-model="form.ldap_form.user_field"
-            class="form-el"
-            placeholder="例如 cn 或者 sAMAccountName"
-          ></el-input>
-        </el-form-item>
-      </div>
-
       <el-form-item :label="$t('oss_open')">
         <el-switch v-model="form.oss_open"></el-switch>
       </el-form-item>
@@ -99,7 +46,10 @@
           <el-input v-model="form.oss_setting.key" class="form-el"></el-input>
         </el-form-item>
 
-        <el-form-item label="secret" v-if="form.oss_setting.oss_type != 'qcloud'">
+        <el-form-item
+          label="secret"
+          v-if="form.oss_setting.oss_type != 'qcloud'"
+        >
           <el-input
             v-model="form.oss_setting.secret"
             class="form-el"
@@ -116,19 +66,28 @@
           ></el-input>
         </el-form-item>
 
-        <el-form-item label="region"  v-if="form.oss_setting.oss_type == 'qcloud'">
+        <el-form-item
+          label="region"
+          v-if="form.oss_setting.oss_type == 'qcloud'"
+        >
           <el-input
             v-model="form.oss_setting.region"
             class="form-el"
           ></el-input>
         </el-form-item>
-          <el-form-item label="secretId" v-if="form.oss_setting.oss_type == 'qcloud'">
+        <el-form-item
+          label="secretId"
+          v-if="form.oss_setting.oss_type == 'qcloud'"
+        >
           <el-input
             v-model="form.oss_setting.secretId"
             class="form-el"
           ></el-input>
         </el-form-item>
-        <el-form-item label="secretKey" v-if="form.oss_setting.oss_type == 'qcloud'">
+        <el-form-item
+          label="secretKey"
+          v-if="form.oss_setting.oss_type == 'qcloud'"
+        >
           <el-input
             v-model="form.oss_setting.secretKey"
             class="form-el"
@@ -175,17 +134,7 @@ export default {
     return {
       form: {
         register_open: true,
-        ldap_open: false,
         home_page: '1',
-        ldap_form: {
-          host: '',
-          port: '389',
-          version: '3',
-          base_dn: '',
-          bind_dn: '',
-          bind_password: '',
-          user_field: ''
-        },
         home_item: '',
         oss_open: false,
         oss_setting: {
@@ -199,7 +148,6 @@ export default {
           region: '',
           secretId: '',
           secretKey: ''
-
         }
       },
       itemList: []
@@ -225,20 +173,22 @@ export default {
           }
           this.form.register_open = response.data.data.register_open > 0
           this.form.oss_open = response.data.data.oss_open > 0
-          this.form.ldap_open = response.data.data.ldap_open > 0
           this.form.home_page =
             response.data.data.home_page > 0 ? response.data.data.home_page : 1
           this.form.home_item =
             response.data.data.home_item > 0 ? response.data.data.home_item : ''
-          this.form.ldap_form = response.data.data.ldap_form
-            ? response.data.data.ldap_form
-            : this.form.ldap_form
           this.form.oss_setting = response.data.data.oss_setting
             ? response.data.data.oss_setting
             : this.form.oss_setting
-          this.form.oss_setting.region = this.form.oss_setting.region ? this.form.oss_setting.region : ''
-          this.form.oss_setting.secretId = this.form.oss_setting.secretId ? this.form.oss_setting.secretId : ''
-          this.form.oss_setting.secretKey = this.form.oss_setting.secretKey ? this.form.oss_setting.secretKey : ''
+          this.form.oss_setting.region = this.form.oss_setting.region
+            ? this.form.oss_setting.region
+            : ''
+          this.form.oss_setting.secretId = this.form.oss_setting.secretId
+            ? this.form.oss_setting.secretId
+            : ''
+          this.form.oss_setting.secretKey = this.form.oss_setting.secretKey
+            ? this.form.oss_setting.secretKey
+            : ''
         } else {
           this.$alert(response.data.error_message)
         }