Projet

Général

Profil

Télécharger (1,75 ko) Statistiques
| Branche: | Tag: | Révision:

root / auquotidien / modules / backoffice.py @ 80784d04

1
import os
2

    
3
from quixote import get_publisher, redirect
4
from quixote.directory import Directory
5
from quixote.html import TemplateIO, htmltext
6

    
7
from qommon import _
8
from qommon.publisher import get_publisher_class
9

    
10
import wcs.backoffice.management
11
import wcs.root
12
from wcs.categories import Category
13
from wcs.formdef import FormDef
14

    
15
from qommon import get_cfg, errors
16
from qommon.form import *
17

    
18
CURRENT_USER = object()
19

    
20
def check_visibility(target, user=CURRENT_USER):
21
    if not get_publisher().has_site_option('auquotidien-%s' % target):
22
        # option not explicitely enabled, -> off.
23
        return False
24
    if user is CURRENT_USER:
25
        user = get_request().user
26
    if not user:
27
        return False
28
    target = target.strip('/')
29
    if target == 'management':
30
        target = 'forms'
31
    if target == 'strongbox':
32
        if not get_publisher().has_site_option(target):
33
            # strongbox disabled in site-options.cfg
34
            return False
35
        if not get_cfg('misc', {}).get('aq-strongbox'):
36
            # strongbox disabled in settings panel
37
            return False
38
    admin_role = get_cfg('aq-permissions', {}).get(target, None)
39
    if not admin_role:
40
        return False
41
    if not (user.is_admin or admin_role in (user.roles or [])):
42
        return False
43
    return True
44

    
45

    
46
class BackofficeRootDirectory(wcs.backoffice.root.RootDirectory):
47
    def get_intro_text(self):
48
        return _('Welcome on Publik back office interface')
49

    
50
    def _q_index(self):
51
        if len(self.get_menu_items()) == 1:
52
            return redirect(self.get_menu_items()[0]['url'])
53
        return wcs.backoffice.root.RootDirectory._q_index(self)
54

    
55
    def home(self):
56
        return redirect('management/')
57

    
58
get_publisher_class().backoffice_directory_class = BackofficeRootDirectory
(11-11/27)