Esempio n. 1
0
 def createInProductFolder(self):
     homefolder = IHomeFolder(self.principal).homeFolder
     if not homefolder:
         utility = getUtility(IHomeFolderManager)
         utility.assignHomeFolder(uvcsite.IMasterUser(self.principal).id)
     if self.folderURI and not self.folderURI in homefolder.keys():
         pf = self.productfolder
         homefolder[self.folderURI] = pf()
         uvcsite.log('Add Productfolders %s to Homefolder: %s' % (self.folderURI, self.principal.id), severity=logging.DEBUG)
Esempio n. 2
0
class MyRoles(grok.Adapter):
    grok.context(IPrincipal)
    grok.implements(uvcsite.IMyRoles)

    def __init__(self, principal):
        self.principal = principal
        self.homefolder = IHomeFolder(IMasterUser(self.principal)).homeFolder

    def getAllRoles(self):
        hfr = IPrincipalRoleMap(self.homefolder)
        masteruser = False
        ret = []
        for rolesetting in hfr.getRolesForPrincipal(self.principal.id):
            role, setting = rolesetting
            if 'uvc.Editor' == role and setting is Allow:
                masteruser = True
                ret.append('ENMS')
        for name, productfolder in self.homefolder.items():
            if not name.startswith('__'):
                if masteruser:
                    ret.append(name)
                else:
                    prm = IPrincipalRoleMap(productfolder)
                    for rolesetting in prm.getRolesForPrincipal(self.principal.id):
                        role, setting = rolesetting
                        if 'uvc.Editor' == role and setting is Allow:
                            ret.append(name)
        return ret
Esempio n. 3
0
 def update(self):
     """ Wir müssen zunächst eine Instanz der Unfallanzeige
         anlegen. Diese Instanz dient als Context für den
         Wizard.
     """
     hf = IHomeFolder(self.request.principal).homeFolder
     self.uaz = uaz = Unfallanzeige()
     hf['Unfallanzeigen'].add(uaz)
Esempio n. 4
0
def applyPermissionsForExistentCoUsers(factory):
    principal = factory.object
    createProductFolders(principal)
    homefolder = IHomeFolder(principal).homeFolder
    if not homefolder:
        return
    um = getUtility(IUserManagement)
    user = um.getUser(principal.id)
    rollen = user['rollen']
    if user['az'] != '00':
        pid = "%s-%s" % (user['mnr'], user['az'])
    else:
        pid = user['mnr']
    if homefolder.__name__ != pid:
        for pf in homefolder.keys():
            if pf in rollen:
                prm = IPrincipalRoleManager(homefolder.get(pf))
                if prm.getSetting('uvc.Editor', pid).getName() == 'Unset':
                    prm.assignRoleToPrincipal('uvc.Editor', pid)
                    uvcsite.log('Give uvc.Editor to %s in folder %s' % (pid, pf))
Esempio n. 5
0
 def __init__(self, principal):
     self.principal = principal
     self.homefolder = IHomeFolder(IMasterUser(self.principal)).homeFolder
Esempio n. 6
0
 def action(self):
     return self.view.url(
         IHomeFolder(self.request.principal).homeFolder, 'request_token')