|
@@ -317,8 +317,8 @@ def pre_request():
|
317
|
317
|
allowed_plugins = request.cookies.get('allowed_plugins', '').split(',')
|
318
|
318
|
disabled_plugins = request.cookies.get('disabled_plugins', '').split(',')
|
319
|
319
|
for plugin in plugins:
|
320
|
|
- if ((plugin.default_on and plugin.name not in disabled_plugins)
|
321
|
|
- or plugin.name in allowed_plugins):
|
|
320
|
+ if ((plugin.default_on and plugin.id not in disabled_plugins)
|
|
321
|
+ or plugin.id in allowed_plugins):
|
322
|
322
|
request.user_plugins.append(plugin)
|
323
|
323
|
|
324
|
324
|
|
|
@@ -508,6 +508,7 @@ def preferences():
|
508
|
508
|
blocked_engines = get_blocked_engines(engines, request.cookies)
|
509
|
509
|
else: # on save
|
510
|
510
|
selected_categories = []
|
|
511
|
+ post_disabled_plugins = []
|
511
|
512
|
locale = None
|
512
|
513
|
autocomplete = ''
|
513
|
514
|
method = 'POST'
|
|
@@ -534,14 +535,34 @@ def preferences():
|
534
|
535
|
safesearch = pd
|
535
|
536
|
elif pd_name.startswith('engine_'):
|
536
|
537
|
if pd_name.find('__') > -1:
|
537
|
|
- engine_name, category = pd_name.replace('engine_', '', 1).split('__', 1)
|
|
538
|
+ # TODO fix underscore vs space
|
|
539
|
+ engine_name, category = [x.replace('_', ' ') for x in
|
|
540
|
+ pd_name.replace('engine_', '', 1).split('__', 1)]
|
538
|
541
|
if engine_name in engines and category in engines[engine_name].categories:
|
539
|
542
|
blocked_engines.append((engine_name, category))
|
540
|
543
|
elif pd_name == 'theme':
|
541
|
544
|
theme = pd if pd in themes else default_theme
|
|
545
|
+ elif pd_name.startswith('plugin_'):
|
|
546
|
+ plugin_id = pd_name.replace('plugin_', '', 1)
|
|
547
|
+ if not any(plugin.id == plugin_id for plugin in plugins):
|
|
548
|
+ continue
|
|
549
|
+ post_disabled_plugins.append(plugin_id)
|
542
|
550
|
else:
|
543
|
551
|
resp.set_cookie(pd_name, pd, max_age=cookie_max_age)
|
544
|
552
|
|
|
553
|
+ disabled_plugins = []
|
|
554
|
+ allowed_plugins = []
|
|
555
|
+ for plugin in plugins:
|
|
556
|
+ if plugin.default_on:
|
|
557
|
+ if plugin.id in post_disabled_plugins:
|
|
558
|
+ disabled_plugins.append(plugin.id)
|
|
559
|
+ elif plugin.id not in post_disabled_plugins:
|
|
560
|
+ allowed_plugins.append(plugin.id)
|
|
561
|
+
|
|
562
|
+ resp.set_cookie('disabled_plugins', ','.join(disabled_plugins), max_age=cookie_max_age)
|
|
563
|
+
|
|
564
|
+ resp.set_cookie('allowed_plugins', ','.join(allowed_plugins), max_age=cookie_max_age)
|
|
565
|
+
|
545
|
566
|
resp.set_cookie(
|
546
|
567
|
'blocked_engines', ','.join('__'.join(e) for e in blocked_engines),
|
547
|
568
|
max_age=cookie_max_age
|
|
@@ -591,6 +612,8 @@ def preferences():
|
591
|
612
|
autocomplete_backends=autocomplete_backends,
|
592
|
613
|
shortcuts={y: x for x, y in engine_shortcuts.items()},
|
593
|
614
|
themes=themes,
|
|
615
|
+ plugins=plugins,
|
|
616
|
+ allowed_plugins=[plugin.id for plugin in request.user_plugins],
|
594
|
617
|
theme=get_current_theme_name())
|
595
|
618
|
|
596
|
619
|
|