浏览代码

Ability to turn metasearch login on or off

Bob Mottram 7 年前
父节点
当前提交
a51f70e424
共有 1 个文件被更改,包括 34 次插入5 次删除
  1. 34
    5
      src/freedombone-app-searx

+ 34
- 5
src/freedombone-app-searx 查看文件

@@ -147,6 +147,33 @@ function searx_set_background_image {
147 147
     esac
148 148
 }
149 149
 
150
+function searx_enable_login {
151
+    dialog --title $"Enable Searx login" \
152
+           --backtitle $"Freedombone Control Panel" \
153
+           --defaultno \
154
+           --yesno $"\nDo you want to add a login so that random web users can't use your metasearch engine?" 10 60
155
+    sel=$?
156
+    case $sel in
157
+        0) if grep -q '#auth_basic' /etc/nginx/sites-available/searx; then
158
+               sed -i 's|#auth_basic|auth_basic|g' /etc/nginx/sites-available/searx
159
+               systemctl restart nginx
160
+           fi
161
+           read_config_param $MY_USERNAME
162
+           SEARX_LOGIN_PASS=$(${PROJECT_NAME}-pass -u $MY_USERNAME -a searx)
163
+           dialog --title $"Enable Searx login" \
164
+                  --msgbox $"Searx logins are now enabled with the password $SEARX_LOGIN_PASS" 6 40
165
+           SEARX_LOGIN_PASS=
166
+           ;;
167
+        1) if ! grep -q '#auth_basic' /etc/nginx/sites-available/searx; then
168
+               sed -i 's|auth_basic|#auth_basic|g' /etc/nginx/sites-available/searx
169
+               systemctl restart nginx
170
+           fi
171
+           dialog --title $"Disable Searx login" \
172
+                  --msgbox $"Searx logins are now disabled. Anyone can access your metasearch engine." 6 40
173
+           ;;
174
+    esac
175
+}
176
+
150 177
 function configure_interactive_searx {
151 178
     while true
152 179
     do
@@ -154,9 +181,10 @@ function configure_interactive_searx {
154 181
         trap "rm -f $data" 0 1 2 5 15
155 182
         dialog --backtitle $"Freedombone Control Panel" \
156 183
                --title $"SearX Metasearch" \
157
-               --radiolist $"Choose an operation:" 11 70 2 \
184
+               --radiolist $"Choose an operation:" 12 70 3 \
158 185
                1 $"Set a background image" off \
159
-               2 $"Exit" on 2> $data
186
+               2 $"Enable login" off \
187
+               3 $"Exit" on 2> $data
160 188
         sel=$?
161 189
         case $sel in
162 190
             1) return;;
@@ -164,7 +192,8 @@ function configure_interactive_searx {
164 192
         esac
165 193
         case $(cat $data) in
166 194
             1) searx_set_background_image;;
167
-            2) break;;
195
+            2) searx_enable_login;;
196
+            3) break;;
168 197
         esac
169 198
     done
170 199
 }
@@ -942,8 +971,8 @@ function install_searx {
942 971
     function_check nginx_limits
943 972
     nginx_limits searx '1M'
944 973
     echo '        proxy_pass http://localhost:8888;' >> /etc/nginx/sites-available/searx
945
-    echo "        auth_basic \"${SEARX_LOGIN_TEXT}\";" >> /etc/nginx/sites-available/searx
946
-    echo '        auth_basic_user_file /etc/nginx/.htpasswd;' >> /etc/nginx/sites-available/searx
974
+    echo "        #auth_basic \"${SEARX_LOGIN_TEXT}\";" >> /etc/nginx/sites-available/searx
975
+    echo '        #auth_basic_user_file /etc/nginx/.htpasswd;' >> /etc/nginx/sites-available/searx
947 976
     echo '    }' >> /etc/nginx/sites-available/searx
948 977
     echo '' >> /etc/nginx/sites-available/searx
949 978
     echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/searx