__doc__ = """IEEShare product module.""" __version__ = '0.1' import nis,traceback from Globals import HTMLFile,MessageDialog,Persistent from Products.CARS.IEEFolder import IEEFolder from Products.CARS.NisLogin import NisLogin from Products.LoginManager.LoginManager import manage_addLoginManager from Globals import HTMLFile manage_addIEEShareForm = HTMLFile('ieeshareAdd', globals()) def manage_addIEEShare(self, id, title=None, REQUEST=None): """Add an IEE Share to a folder.""" ob=IEEShare() ob.id=str(id) ob.title=title self._setObject(id, ob) ob=self._getOb(id) ob.manage_role('Read Access', permissions=('Read Access',)) ob.manage_role('Write Access', permissions=('Write Access',)) # manage_addLoginManager(ob, usource='NIS User Source') if REQUEST is not None: return self.manage_main(self, REQUEST, update_menu=1) class IEEShare(IEEFolder.IEEFolder): meta_type = 'IEE Share' read_access_roles=None write_access_roles=None def __init__(self): self.read_access_roles=[] self.write_access_roles=[] def add_user_access(self, user, lst, access='Some'): try: nis.match(user, 'passwd.byname') except nis.error: return MessageDialog( title = 'Error!', message = '%s: No such user' % user, action = 'manage_main') if user in lst: return MessageDialog( title = 'Error!', message = 'User %s already has %s access.' % (access, user), action = 'manage_main') lst.append(str(user)) get_transaction().commit() return MessageDialog( title = 'Success!', message = '%s access for %s has been successfully added.' \ % (access, user), action = 'manage_main') def manage_addReadAccess(self, user, REQUEST=None): """foo""" return self.add_user_access(user, self.read_access_roles, access='Read') def manage_addWriteAccess(self, user, REQUEST=None): """bar""" return self.add_user_access(user, self.write_access_roles, access='Write') manage_addReadAccessForm=HTMLFile('addAccessForm', globals(), type='Read') manage_addWriteAccessForm=HTMLFile('addAccessForm', globals(), type='Write') manage_showAccessForm=HTMLFile('showAccessForm', globals())