--- basket/basket.py 2006/03/02 19:57:32 1.2 +++ basket/basket.py 2006/03/19 03:26:56 1.3 @@ -21,7 +21,13 @@ from Globals import Persistent, package_ from Acquisition import Implicit from Products.ZCatalog.CatalogPathAwareness import CatalogAware + +from groups import manage_addGroupFolder + refBasis="http://vlp.mpiwg-berlin.mpg.de/references?id=%s" + +basketMetatypes=['BasketXRef','BasketInternalLink','BasketExternalLink','BasketText'] + #basis url for references publicationStatusList=['private','hidden','open_intern','open','group'] @@ -93,7 +99,7 @@ class BasketBasis(OrderedFolder): def isAuthorized(self,role="read"): """check whether actual user is authorized""" - #TODO implement isAuthorized to do type, read or edit + #TODO replace occurences with checkPermission return True def getActualUserName(self): @@ -148,13 +154,6 @@ class BasketFolder(BasketBasis): ret.append(object) return ret - def checkPermission(self,modus): - """check permission""" - if modus=='open': - return True - elif modus=='private': - return self.isMemberOf('admin') - def getCurrentBasket(self): """select this basket for further work""" @@ -194,9 +193,16 @@ class BasketFolder(BasketBasis): """add a new basket""" id=self.getNewId() username=self.getActualUserName() - publicatonStatus="private" + publicationStatus="private" manage_addBasket(self,str(id),title,"",username,publicationStatus,RESPONSE=None) newObj=getattr(self,str(id)) + #create a groupfolder + + manage_addGroupFolder(newObj,'groupFolder') + + #add current user to admin group of the new set + + newObj.groupFolder.addUserToGroups(str(self.REQUEST['AUTHENTICATED_USER']),['admin']) if RESPONSE: RESPONSE.redirect(newObj.absolute_url()+'/manageBasket') @@ -224,10 +230,46 @@ class Basket(BasketBasis): security=ClassSecurityInfo() + publicationStatusList=publicationStatusList + manage_options=OrderedFolder.manage_options+( {'label':'manage main','action':'changeBasketForm'}, ) + def checkPermission(self,modus): + """check permission""" + if modus=='open': + return True + elif modus=='private': + return self.groupFolder.isMemberOf('admin') + elif modus=='admin': + return self.groupFolder.isMemberOf('admin') + elif modus=='edit': + return self.groupFolder.isMemberOf('edit') + elif modus=='publish': + return self.groupFolder.isMemberOf('publish') + + def manageUserRights_html(self): + """manage user rights""" + if hasattr(self,"Basket_manageUserRights_template"): + obj=getattr(self,"Basket_manageUserRights_template") + return obj() + else: + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','BasketMain_Basket_manageUserRights_standard.zpt')).__of__(self) + pt.content_type="text/html" + return pt() + + + def getBasketObjects(self): + """get all basket objects""" + + objs=self.getObjects() + ret=[] + for x in objs: + if x.meta_type in basketMetatypes: + ret.append(x) + return ret + def checkRef(self,xref): """check if XRef is already in Basket""" @@ -267,6 +309,7 @@ class Basket(BasketBasis): pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeBasket.zpt')).__of__(self) return pt() + def changeBasket(self,title,comment,shortDescription,publicationStatus=None,username=None,accessGroups=None,RESPONSE=None,target=None): ''' init the basket @@ -384,8 +427,8 @@ def manage_addBasket(self,id,title,comme #find username owner=username - newObj=Basket(id,title,comment,owner,publicationStatus,shortDescription,accessGroups) - + newObj=Basket(id,title,comment,owner,publicationStatus,shortDescription) + self._setObject(id,newObj) if RESPONSE is not None: