|
1 """cubicweb post creation script, set user's workflow""" |
|
2 |
|
3 activatedeid = add_state(_('activated'), 'EUser', initial=True) |
|
4 deactivatedeid = add_state(_('deactivated'), 'EUser') |
|
5 add_transition(_('deactivate'), 'EUser', |
|
6 (activatedeid,), deactivatedeid, |
|
7 requiredgroups=('managers',)) |
|
8 add_transition(_('activate'), 'EUser', |
|
9 (deactivatedeid,), activatedeid, |
|
10 requiredgroups=('managers',)) |
|
11 |
|
12 # need this since we already have at least one user in the database (the default admin) |
|
13 rql('SET X in_state S WHERE X is EUser, S eid %s' % activatedeid) |
|
14 |
|
15 # create anonymous user if all-in-one config and anonymous user has been specified |
|
16 if hasattr(config, 'anonymous_user'): |
|
17 anonlogin, anonpwd = config.anonymous_user() |
|
18 if anonlogin: |
|
19 rql('INSERT EUser X: X login %(login)s, X upassword %(pwd)s,' |
|
20 'X in_state S, X in_group G WHERE G name "guests", S name "activated"', |
|
21 {'login': unicode(anonlogin), 'pwd': anonpwd}) |
|
22 |
|
23 cfg = config.persistent_options_configuration() |
|
24 if interactive_mode: |
|
25 cfg.input_config(inputlevel=0) |
|
26 |
|
27 for section, options in cfg.options_by_section(): |
|
28 for optname, optdict, value in options: |
|
29 key = '%s.%s' % (section, optname) |
|
30 default = cfg.option_default(optname, optdict) |
|
31 # only record values differing from default |
|
32 if value != default: |
|
33 rql('INSERT EProperty X: X pkey %(k)s, X value %(v)s', {'k': key, 'v': value}) |
|
34 |
|
35 # add PERM_USE_TEMPLATE_FORMAT permission |
|
36 from cubicweb.schema import PERM_USE_TEMPLATE_FORMAT |
|
37 eid = add_entity('EPermission', name=PERM_USE_TEMPLATE_FORMAT, |
|
38 label=_('use template languages')) |
|
39 rql('SET X require_group G WHERE G name "managers", X eid %(x)s', |
|
40 {'x': eid}, 'x') |