mò ,á¸Ec@sdZdkZdkZdkZdklZlZdklZdkl Z dk l Z l Z dk l Z dklZdklZd klZd klZd eifd „ƒYZeeƒd eifd„ƒYZedeƒƒZeiidƒeedeƒeeƒdS(s\Standard management interface support $Id: Management.py 40300 2005-11-21 16:54:03Z efge $ N(sDTMLFilesHTMLFile(sInitializeClass(sRedirect(sgetSecurityManagers Unauthorized(sClassSecurityInfo(sview_management_screens(sescape(s implements(s INavigationtTabscBs˜tZdZeƒZeidƒedeƒƒZfZ eidƒe d„Z d Z d„Z eid„Zeid„Zeid ƒd „ZRS( s.Mix-in provides management folder tab support.t manage_tabssdtml/manage_tabstfiltered_manage_optionsc Csötƒi}g}yt|iƒ}Wn%tj ot|iƒƒ}nXx¢|D]š}|i ddƒ}|dj o||ƒ oqTn|i ddƒ}|djo|d}n|i |dƒ}|djoqTn|i|ƒqTW|S(Ntfiltertpathtaction(tgetSecurityManagertvalidatetresultttupletselftmanage_optionstoptionst TypeErrortdtgettNoneRRtrestrictedTraversetotappend( R tREQUESTRRRRRRR ((t-/data/zmath/zope/lib/python/App/Management.pyR+s&   t AuthenticatedcCsž|i|ƒ}y)|dd}|djo t‚nWn"ttfj otd‚nX|i dƒot d|d|f‚nt ||ƒ||ƒS( s6Dispatch to first interface in manage_options iRtmanage_workspaces+You are not authorized to view this object.t/s%s/%stURL1N( R RRR tmR t IndexErrortKeyErrort UnauthorizedtfindtRedirecttgetattr(R RRR ((RRJs c Cs÷|id }|d}d}g} |t|dƒdf}|p|Sn|iƒ}xJ|D]B}d||f}| i |t|dƒt||ƒƒfƒq^Wd||f}| i dt|dƒt||ƒƒfƒd|d i | ƒfS( Niÿÿÿÿt BASEPATH1s$%sis /s%s/%ss8%ss%s%sR(Rt_stepststepstscripttlinkpattouttescapeturltpoptlasttstepRtunquotetjoin( R RR,R*R$R(R%R+R#R&((Rttabs_path_default\s   0,cCs;g}x |d djo|d}q Wx |ddjo|d }q,Wx |d djo|d}qOWx |ddjo|d }qrW|idƒd }|o|g|}n|pdSnd}|d}|d=x;|D]3}d|||ƒf}|id||fƒqêW|i|ƒdi|ƒS(NiRiÿÿÿÿts%s/%ss$%s( R&RR$tsplitR*tptquoteRR-(R R$RR2R*R1R&((Rttabs_path_infops6  tclass_manage_pathcCs¿|iid djodSnt|iddƒ}|djog|i}xC|iƒidƒD]}|d|joPq`q`Wd|i_ dSd|}|i_ n|o d|SndS( Nit*t_v_manage_path_rolestzclassest meta_typeR/s%(product)s/%(id)ss+/Control_Panel/Products/%s/manage_workspace( R t __class__t __module__R RRR8tgetPhysicalRoott_getProductRegistryDatatzclassR6(R R=R8R((RR4Œs    (R(t__name__R:t__doc__tClassSecurityInfotsecurityt declarePublictDTMLFiletglobalsRR RRtmanage_workspace__roles__RturllibR,R.R2R3R4(((RRs       t Navigationc BstZdZeeƒeƒZeiedƒe de ƒƒZ eiedƒe de ƒƒZ eiedƒe de ƒƒZ eiedƒe de ƒƒZeied ƒe d e ƒƒZeid ƒe d e ƒd ddedeƒZeiddƒeidƒe de ƒƒZeidƒe de ƒƒZeidƒd„Zeidƒe de ƒƒZRS(sBasic navigation UI supporttmanages dtml/managet manage_menus dtml/menutmanage_top_framesdtml/manage_top_frametmanage_page_headersdtml/manage_page_headertmanage_page_footersdtml/manage_page_footertmanage_form_titlesdtml/manage_form_titlet form_titlesAdd Formt help_productt help_topictvarnamestzope_quick_startsdtml/zope_quick_starttmanage_copyrightsdtml/copyrighttmanage_zmi_logoutcCstt|ddƒ}|dj ot|i|ƒƒSn|i}|i dƒ|i dd|dƒ|i dƒdS(sLogout current usert _logout_pathi‘sWWW-Authenticatesbasic realm="%s"isc Logout

You have been logged out.

N( R RRR1tapplyR RtRESPONSEtrealmt setStatust setHeadertsetBody(R RRWRXR1((RRTÆs    tmanage_zmi_prefssdtml/manage_zmi_prefs(RNRORP(R>R:R?t implementst INavigationR@RAtdeclareProtectedtview_management_screensRCRDRHRIRJRKRLRBRRMt_setFuncSignatureRRRSRTR\(((RRG¡s6           sdtml/manage_page_style.csssmanage_page_style.css(R?tsystExtensionClassRFtGlobalsRCtHTMLFiletInitializeClasst zExceptionsRt AccessControlRRR@tAccessControl.PermissionsR`tcgiR'tzope.interfaceR]t interfacesR^tBaseRRGRDtfileRARBtsetattr(RR]R`RcR^RRReR@R'RCRFRfRbRnRRG((Rt?s"        >