"""cubicweb post creation script, set user's workflow"""activatedeid=add_state(_('activated'),'EUser',initial=True)deactivatedeid=add_state(_('deactivated'),'EUser')add_transition(_('deactivate'),'EUser',(activatedeid,),deactivatedeid,requiredgroups=('managers',))add_transition(_('activate'),'EUser',(deactivatedeid,),activatedeid,requiredgroups=('managers',))# need this since we already have at least one user in the database (the default admin)rql('SET X in_state S WHERE X is EUser, S eid %s'%activatedeid)# create anonymous user if all-in-one config and anonymous user has been specifiedifhasattr(config,'anonymous_user'):anonlogin,anonpwd=config.anonymous_user()ifanonlogin:rql('INSERT EUser X: X login %(login)s, X upassword %(pwd)s,''X in_state S, X in_group G WHERE G name "guests", S name "activated"',{'login':unicode(anonlogin),'pwd':anonpwd})cfg=config.persistent_options_configuration()ifinteractive_mode:cfg.input_config(inputlevel=0)forsection,optionsincfg.options_by_section():foroptname,optdict,valueinoptions:key='%s.%s'%(section,optname)default=cfg.option_default(optname,optdict)# only record values differing from defaultifvalue!=default:rql('INSERT EProperty X: X pkey %(k)s, X value %(v)s',{'k':key,'v':value})# add PERM_USE_TEMPLATE_FORMAT permissionfromcubicweb.schemaimportPERM_USE_TEMPLATE_FORMATeid=add_entity('EPermission',name=PERM_USE_TEMPLATE_FORMAT,label=_('use template languages'))rql('SET X require_group G WHERE G name "managers", X eid %(x)s',{'x':eid},'x')