ZEXPɾ((U OFS.FolderqUFolderqtqNt.}q(U+_Open_Close_Database_Connections_Permissionq(UManagerqU config_zwookqtqUzwo_libq (UÊq (hUFolderq ttQU_View_History_Permissionq (hhtq U_Add_Page_Templates_Permissionq(hhtqU!_Import_Export_objects_Permissionq(hhtqU#_Manage_ZCatalog_Entries_Permissionq(hhtqU_Add_Zope_Tutorials_Permissionq(hhtqU __ac_roles__q(hUOwnerqU AnonymousqU AuthenticatedqhUadminqU inscriptionqtqU_Add_Vocabularies_Permissionq(hhtqU_Edit_Factories_Permissionq(hhtq Utitleq!UU zwo_modulesq"(UËq#(hUFolderq$ttQU_Manage_Z_Classes_Permissionq%(hhtq&U_Delete_objects_Permissionq'(hhtq(U_Add_Versions_Permissionq)(hhtq*U _Use_Database_Methods_Permissionq+(hhtq,U type_zwookq-Usystemq.U_Copy_or_Move_Permissionq/(hhtq0U!_Add_ZODB_Mount_Points_Permissionq1)U_Change_Versions_Permissionq2(hhtq3U(_Manage_ZCatalogIndex_Entries_Permissionq4(hhtq5U"_Create_class_instances_Permissionq6(hhtq7Uzwo_boq8(UÌq9(hUFolderq:ttQU(_Save_discard_Version_changes_Permissionq;(hhtqU _Add_Temporary_Folder_Permissionq?(hhtq@U_Add_Python_Scripts_PermissionqA(hhtqBU_Define_permissions_PermissionqC(htqDU zwo_upgradeqE(UÍqF(hUFolderqGttQU!_Change_cache_managers_PermissionqH(hhtqIU-_Add_Z_Gadfly_Database_Connections_PermissionqJ(hhtqKU/_Add_Accelerated_HTTP_Cache_Managers_PermissionqL(hhtqMU._Access_arbitrary_user_session_data_PermissionqN(hhtqOU _Log_to_the_Event_Log_PermissionqP(hhtqQU index_htmlqR(UÎqS(U#Products.PythonScripts.PythonScriptqTU PythonScriptqUttQU_Search_ZCatalog_PermissionqV(hhtqWU%_Add_Virtual_Host_Monsters_PermissionqX(hhtqYU _Change_configuration_PermissionqZ(hhtq[U_Add_Folders_Permissionq\(hhtq]U_Manage_Vocabulary_Permissionq^(hhtq_U!_Change_Python_Scripts_Permissionq`(hhtqaU_Use_external_editor_Permissionqb(hhtqcU$_Create_Transient_Objects_Permissionqd(hhtqeU zwo_imagesqf(UÏqg(hUFolderqhttQU_Change_DTML_Methods_Permissionqi(hhtqjU_Access_session_data_Permissionqk(hhhhtqlU _Add_MailHost_objects_Permissionqm(hhtqnU__allow_groups__qo(UÐqp(UAccessControl.UserqqU UserFolderqrttQU,_Add_Z_MySQL_Database_Connections_Permissionqs)U_Query_Vocabulary_Permissionqt(hhtquU_Add_Pluggable_Index_Permissionqv(hhtqwU#_Change_External_Methods_Permissionqx(hhtqyU_Add_User_Folders_Permissionqz(hhtq{U_objectsq|(}q}(U meta_typeq~U DTML DocumentqUidq€Utest_connectionqu}q‚(U meta_typeqƒUScript (Python)q„Uidq…Uacl_objq†u}q‡(U meta_typeqˆUScript (Python)q‰UidqŠhRu}q‹(U meta_typeqŒU DTML DocumentqUidqŽUCOPYINGqu}q(U meta_typeq‘UFolderq’Uidq“Uzwo_libq”u}q•(U meta_typeq–UFolderq—Uidq˜Uzwo_boq™u}qš(h–h—h˜hfu}q›(U meta_typeqœUFolderqUidqžU zwo_modulesqŸu}q (U meta_typeq¡U User Folderq¢Uidq£U acl_usersq¤u}q¥(h¡UFolderq¦h£Uzwo_infoq§u}q¨(h¡h¦h£Uzwookq©u}qª(U meta_typeq«UFolderq¬Uidq­U zwo_upgradeq®u}q¯(U meta_typeq°U Mail Hostq±Uidq²UMailHostq³utq´U*_Add_Transient_Object_Container_Permissionqµ(hhtq¶U_query_Permissionq·]q¸(hhhheU_Change_proxy_roles_Permissionq¹(hhtqºU"_Add_Browser_Id_Manager_Permissionq»(hhtq¼U!_Change_cache_settings_Permissionq½(hhtq¾U'_Change_Session_Data_Manager_Permissionq¿(hhtqÀU!_Edit_ReStructuredText_PermissionqÁ(htqÂU_WebDAV_Lock_items_PermissionqÃ(htqÄU-_Manage_Transient_Object_Container_PermissionqÅ(hhtqÆU_Manage_WebDAV_Locks_PermissionqÇ(hhtqÈU!_Change_Page_Templates_PermissionqÉ(hhtqÊU$_Add_Session_Data_Manager_PermissionqË(hhtqÌU*_Open_Close_Database_Connection_PermissionqÍ(hhtqÎU_Take_ownership_PermissionqÏ(hhtqÐU_WebDAV_access_PermissionqÑ(htqÒU*_Add_ReStructuredText_Documents_PermissionqÓ(htqÔU_Change_bindings_PermissionqÕ(hhtqÖUacl_objq×(UÑqØ(hTU PythonScriptqÙttQU%_Test_Database_Connections_PermissionqÚ(hhtqÛUsystemqÜUracineqÝU$_Access_Transient_Objects_PermissionqÞ(hhhhtqßU_Log_Site_Errors_Permissionqà(hhtqáU_Add_Site_Roots_Permissionqâ(hhtqãU _Add_External_Methods_Permissionqä(hhtqåUtest_connectionqæ(UÒqç(UOFS.DTMLDocumentqèU DTMLDocumentqéttQU_Add_ZCatalogs_Permissionqê(hhtqëU#_View_management_screens_Permissionqì(hhtqíU!_Use_mailhost_services_Permissionqî(hhtqïU#_Change_Database_Methods_Permissionqð(hhtqñU _Add_Database_Methods_Permissionqò(hhtqóU_Manage_properties_Permissionqô(hhtqõU_Add_ChatItems_Permissionqö(hhhtq÷Uzwo_infoqø(UÓqù(hUFolderqúttQh¤(hp(hqU UserFolderqûttQU%_Change_Browser_Id_Manager_Permissionqü(hhtqýU,_Add_Documents__Images__and_Files_Permissionqþ(hhtqÿU_FTP_access_Permissionr(hhtrU_Use_Factories_Permissionr(hhtrU'_Change_Database_Connections_Permissionr(hhtrU!_Change_DTML_Documents_Permissionr(hhtrh³(U›Fr(UProducts.MailHost.MailHostr UMailHostr ttQUCOPYINGr (UÕr (hèU DTMLDocumentr ttQU'_Access_contents_information_Permissionr(hhhhtrU#_Change_Images_and_Files_Permissionr(hhtrUidrUzwook_active_rc6_beta3rU"_Add_RAM_Cache_Managers_Permissionr(hhtrU#_Change_Lock_Information_Permissionr(hhtrU_View_Permissionr(hhhhtrU_WebDAV_Unlock_items_Permissionr(htrUzwookr(UÖr(hUFolderrttQU_Add_ZRTChats_Permissionr(hhhtr U_Join_leave_Versions_Permissionr!(hhtr"U_Undo_changes_Permissionr#(hhtr$U_ownerr%(]r&U acl_usersr'aUadminr(tr)U_Manage_Access_Rules_Permissionr*(hhtr+U _propertiesr,(}r-(Utyper.Ustringr/Uidr0Utitler1Umoder2Uwu}r3(j.Ustringr4j0U type_zwookr5u}r6(j.Ustringr7j0Usystemr8utr9U_Change_permissions_Permissionr:(hhtr;U__ac_local_roles__r<}r=u.Ê ø((U OFS.FolderqUFolderqtqNt.}q(U&standard_html_header_avant_patch_metasq(U×q(U#Products.PythonScripts.PythonScriptqU PythonScriptqttQUzwo_droits_folderq (UØq (hU PythonScriptq ttQUparseq (UÙq (hUFolderqttQUstandard_print_headerq(Uóq(hU PythonScriptqttQUstandard_img_homeq(UÚq(hU PythonScriptqttQUidqUzwo_libqUzwo_user_groupsq(UÛq(hU PythonScriptqttQU tab_to_valq(UÜq(hU PythonScriptqttQUzwo_cpyq(UÝq(hU PythonScriptqttQU mem_mod_dataq (UÞq!(hU PythonScriptq"ttQUmem_dataq#(Ußq$(hU PythonScriptq%ttQUtitleq&Unoyau - bibliothequeq'Uepozq((Uàq)(hUFolderq*ttQUsystemq+Ulibq,U type_zwookq-Usystemq.U_objectsq/(}q0(U meta_typeq1UScript (Python)q2Uidq3U mix_id_zopeq4u}q5(U meta_typeq6UScript (Python)q7Uidq8hu}q9(U meta_typeq:UScript (Python)q;Uidq(U meta_typeq?UScript (Python)q@UidqAUmem_dataqBu}qC(U meta_typeqDUScript (Python)qEUidqFU secure_skinqGu}qH(U meta_typeqIUScript (Python)qJUidqKUzwo_droits_folderqLu}qM(U meta_typeqNUScript (Python)qOUidqPUzwo_cpyqQu}qR(hNhOhPU zwo_renameqSu}qT(hNhOhPUzwo_user_groupsqUu}qV(hNhOhPUstandard_img_footerqWu}qX(hNhOhPUstandard_img_headerqYu}qZ(hNhOhPhu}q[(hNhOhPUstandard_print_footerq\u}q](hNhOhPhu}q^(hNhOhPUstandard_print_homeq_u}q`(U meta_typeqaUScript (Python)qbUidqcUzwo_initialise_passwordqdu}qe(U meta_typeqfUScript (Python)qgUidqhUcheck_edit_repqiu}qj(U meta_typeqkUScript (Python)qlUidqmUstandard_html_footerqnu}qo(hkhlhmUstandard_html_homeqpu}qq(U meta_typeqrUFolderqsUidqtUinstallquu}qv(hrUScript (Python)qwhtUstandard_minimal_footerqxu}qy(hrhwhtUstandard_minimal_headerqzu}q{(U meta_typeq|UFolderq}Uidq~Uparsequ}q€(U meta_typeqUFolderq‚UidqƒUusersq„u}q…(U meta_typeq†UScript (Python)q‡UidqˆU get_headerq‰u}qŠ(h†h‡hˆU get_footerq‹u}qŒ(h†UFolderqhˆU trackbackqŽu}q(U meta_typeqUFolderq‘Uidq’Uepozq“u}q”(U meta_typeq•UScript (Python)q–Uidq—hu}q˜(h•h–h—Ustandard_html_headerq™utqšU get_headerq›(Uâqœ(hU PythonScriptqttQhd(Uãqž(hU PythonScriptqŸttQUusersq (Uäq¡(hUFolderq¢ttQhY(Uåq£(hU PythonScriptq¤ttQhW(Uæq¥(hU PythonScriptq¦ttQU trackbackq§(Uçq¨(hUFolderq©ttQUstandard_html_footerqª(Uèq«(hU PythonScriptq¬ttQUstandard_html_homeq­(Uéq®(hU PythonScriptq¯ttQUinstallq°(Uðq±(hUFolderq²ttQU secure_skinq³(Uêq´(hU PythonScriptqµttQU zwo_renameq¶(Uëq·(hU PythonScriptq¸ttQh_(Uìq¹(hU PythonScriptqºttQh\(Uíq»(hU PythonScriptq¼ttQU mix_id_zopeq½(Uîq¾(hU PythonScriptq¿ttQh‹(UïqÀ(hU PythonScriptqÁttQUstandard_minimal_headerqÂ(UáqÃ(hU PythonScriptqÄttQU _propertiesqÅ(}qÆ(UtypeqÇUstringqÈhh&UmodeqÉUwu}qÊ(hÇUstringqËhh-u}qÌ(hÇUstringqÍhUsystemqÎutqÏUstandard_minimal_footerqÐ(UñqÑ(hU PythonScriptqÒttQhi(UòqÓ(hU PythonScriptqÔttQU__ac_local_roles__qÕ}qÖUstandard_html_headerq×(UôqØ(hU PythonScriptqÙttQu.ËÛ((U OFS.FolderqUFolderqtqNt.}q(U inscriptionq(Uõq(hUFolderqttQUannuaire_liensq(U‚ q (hUFolderq ttQU rss_readerq (U÷q (hUFolderq ttQUtextq(Uùq(hUFolderqttQUimageq(Uúq(hUFolderqttQU simplepollq(Uûq(hUFolderqttQU text_epozq(Uüq(hUFolderqttQU faqs_historyq(U‚ q(hUFolderqttQU folderbarq(Uýq(hUFolderqttQU mailgroupq (Uþq!(hUFolderq"ttQUvideoq#(Uÿq$(hUFolderq%ttQUproduits_dispatchesq&(U‚q'(hUFolderq(ttQUtotalq)(U‚q*(U#Products.PythonScripts.PythonScriptq+U PythonScriptq,ttQUtodoq-(U‚q.(hUFolderq/ttQUidq0U zwo_modulesq1Uforums_historyq2(U¢“q3(hUFolderq4ttQU documentsq5(U‚q6(hUFolderq7ttQU preferencesq8(U‚q9(hUFolderq:ttQU tell_a_fiendq;(U‚q<(hUFolderq=ttQUscriptq>(U‚q?(hUFolderq@ttQU news_historyqA(UœAqB(hUFolderqCttQU album_photoqD(U‚qE(hUFolderqFttQUflashqG(UöqH(hUFolderqIttQUsystemqJUlibqKU catalogueqL(UøqM(hUFolderqNttQU minicalendarqO(U‚#qP(hUFolderqQttQU type_zwookqRUsystemqSUproduits_dispatches_selectorqT(U‚ qU(hUFolderqVttQUtext_fckqW(U‚ qX(hUFolderqYttQU_objectsqZ(}q[(U meta_typeq\UScript (Python)q]Uidq^Utotalq_u}q`(U meta_typeqaUFolderqbUidqcU folderbarqdu}qe(hahbhcUscriptqfu}qg(U meta_typeqhUFolderqiUidqjU documentsqku}ql(hhhihjUexample_moduleqmu}qn(U meta_typeqoUFolderqpUidqqUbrowsing_modesqru}qs(hohphqU mesevenementsqtu}qu(hohphqU calendrierqvu}qw(hohphqU speedblogqxu}qy(U meta_typeqzUFolderq{Uidq|U locatebarq}u}q~(U meta_typeqUFolderq€UidqUrecherche_googleq‚u}qƒ(U meta_typeq„UFolderq…Uidq†Utitreq‡u}qˆ(U meta_typeq‰UFolderqŠUidq‹hGu}qŒ(U meta_typeqUFolderqŽUidqUhitsqu}q‘(hhŽhUtraitq’u}q“(U meta_typeq”UFolderq•Uidq–U mp3_playlistq—u}q˜(U meta_typeq™UFolderqšUidq›Utodoqœu}q(U meta_typeqžUFolderqŸUidq U members_listq¡u}q¢(hžhŸh h8u}q£(U meta_typeq¤UFolderq¥Uidq¦Utextq§u}q¨(U meta_typeq©UFolderqªUidq«hu}q¬(U meta_typeq­UFolderq®Uidq¯U navigationq°u}q±(U meta_typeq²UFolderq³Uidq´h u}qµ(h²h³h´Urss_aggregatorq¶u}q·(U meta_typeq¸UFolderq¹UidqºU logs_crawlerq»u}q¼(U meta_typeq½UFolderq¾Uidq¿hDu}qÀ(U meta_typeqÁUFolderqÂUidqÃUcontactqÄu}qÅ(U meta_typeqÆUFolderqÇUidqÈhu}qÉ(U meta_typeqÊUFolderqËUidqÌhWu}qÍ(U meta_typeqÎUFolderqÏUidqÐhu}qÑ(hÎhÏhÐUsimplepoll4skinqÒu}qÓ(hÎhÏhÐU directfriendsqÔu}qÕ(U meta_typeqÖUFolderq×UidqØUsubmited_monitorqÙu}qÚ(U meta_typeqÛUFolderqÜUidqÝU login_managerqÞu}qß(hÛhÜhÝhOu}qà(U meta_typeqáUFolderqâUidqãhTu}qä(háhâhãUproduits_dispatchesqåu}qæ(U meta_typeqçUFolderqèUidqéh;u}qê(hçhèhéUfile_v2qëu}qì(hçhèhéUimageqíu}qî(U meta_typeqïUFolderqðUidqñUconges_scolairesqòu}qó(hïhðhñhLu}qô(hïhðhñhu}qõ(hïhðhñU mailgroupqöu}q÷(hïhðhñU newsletterqøu}qù(U meta_typeqúUFolderqûUidqüh#u}qý(U meta_typeqþUFolderqÿUidrUforumru}r(U meta_typerUFolderrUidrUfaqru}r(jjjU faqs_historyru}r (U meta_typer UFolderr Uidr Unewsr u}r(U meta_typerUFolderrUidrU news_historyru}r(U meta_typerUFolderrUidrUforums_historyrutrU login_managerr(U‚r(hUFolderrttQhÔ(U‚r(hUFolderrttQh»(U‚r(hUFolderrttQh’(U‚r (hUFolderr!ttQj(U‚r"(hUFolderr#ttQhr(U‚r$(hUFolderr%ttQhë(U‚r&(hUFolderr'ttQhÒ(U‚r((hUFolderr)ttQUtitrer*(U‚r+(hUFolderr,ttQUnewsr-(U›‘r.(hUFolderr/ttQhÙ(U‚r0(hUFolderr1ttQh—(U‚"r2(hUFolderr3ttQhx(U‚r4(hUFolderr5ttQUhitsr6(U‚r7(hUFolderr8ttQhø(U‚r9(hUFolderr:ttQj(U‚r;(hUFolderr<ttQU calendrierr=(U‚r>(hUFolderr?ttQU locatebarr@(U‚ rA(hUFolderrBttQU__ac_local_roles__rC}rDhm(U‚(rE(hUFolderrFttQUcontactrG(U‚ rH(hUFolderrIttQht(U‚$rJ(hUFolderrKttQh¶(U‚%rL(hUFolderrMttQU _propertiesrN(}rO(UtyperPUstringrQUidrRUtitlerSUmoderTUwu}rU(jPUstringrVjRU type_zwookrWu}rX(jPUstringrYjRUsystemrZutr[h¡(U‚&r\(hUFolderr]ttQUtitler^Umodulesr_h‚(U‚'r`(hUFolderrattQU navigationrb(U‚!rc(hUFolderrdttQhò(U‚re(hUFolderrfttQu.ÌŒ((U OFS.FolderqUFolderqtqNt.}q(Uautourq(U‚)q(U#Products.PythonScripts.PythonScriptqU PythonScriptqttQUtitleq Unoyau : back officeq Uadminq (U‚*q (hUFolderq ttQUmenuq(U‚+q(hU PythonScriptqttQUskinq(U‚/q(hUFolderqttQU presentationq(U‚2q(hU PythonScriptqttQU configboxq(U‚,q(hU PythonScriptqttQUeditq(U‚-q(hUFolderqttQUeditionq(U‚.q(hU PythonScriptqttQU type_zwookq Usystemq!U _propertiesq"(}q#(Utypeq$Ustringq%Uidq&Utitleq'Umodeq(Uwu}q)(h$Ustringq*h&U type_zwookq+utq,Uarboq-(U‚0q.(hUFolderq/ttQU_objectsq0(}q1(U meta_typeq2UFolderq3Uidq4Uadminq5u}q6(U meta_typeq7UScript (Python)q8Uidq9Umenuq:u}q;(U meta_typeqhu}q?(U meta_typeq@UScript (Python)qAUidqBU configboxqCu}qD(U meta_typeqEUScript (Python)qFUidqGU choixcouleurqHu}qI(U meta_typeqJUFolderqKUidqLUskinqMu}qN(U meta_typeqOUScript (Python)qPUidqQU presentationqRu}qS(hOhPhQUautourqTu}qU(U meta_typeqVUFolderqWUidqXUarboqYu}qZ(U meta_typeq[UFolderq\Uidq]Ueditq^utq_hH(U‚1q`(hU PythonScriptqattQU__ac_local_roles__qb}qch4Uzwo_boqdu.ÍÝ((U OFS.FolderqUFolderqtqNt.}q(UtitleqUUmeta_data_and_titleq(U‚3q(hUFolderqttQU_objectsq (}q (U meta_typeq UFolderq Uidq hutqU__ac_local_roles__q}qUsantiagoq]qUOwnerqash U zwo_upgradequ.Î{((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)U Script_magicq KU_bodyq T„#Affiche un dossier ou un objet. #recupération des données utiles (mem). mem=context.zwo_lib.mem_data() #test pour verifier que l'utilisateur n'est pas un user Zope non Zwook. if not mem: return 'Vous utilisez un User Zope qui n\'est pas enregistré dans Zwook !!!
Mettez cette page en bookmark
Delogger vous ICI.
Vous devez ensuite cliquer sur Annuler/Cancel...
Revenez ensuite sur votre page bookmarkée
' #Check de premiere configuration. #pour réactivé cette premiere configuration (changement de password root) # mettre a 0 la propriété checkproperty de zwo_info. if not mem['racine_obj'].zwo_info.hasProperty("checkpasswd") or mem['racine_obj'].zwo_info.checkpasswd<>1: try: return context.zwo_lib.zwo_initialise_password(mem) except: #affichage avant premiere connection d'un message indiquant le login/password temporaire. return '

Se connecter avec l\'utilisateur "admin" et le mot de passe "admin"

Cliquer ici pour se connecter

' #Test si l'utilisateur a le droit de voir la page (ou l'objet) if mem['droit_vue_dossier']==0: print '



Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed # selon le mode d'affichage, appelle les fonctions header / home / footer correspondantes. if view=='html': print context.zwo_lib.standard_html_header(mem) print context.zwo_lib.standard_html_home(mem) print context.zwo_lib.standard_html_footer(mem) elif view=='print': print context.zwo_lib.standard_print_header(mem) print context.zwo_lib.standard_print_home(mem) print context.zwo_lib.standard_print_footer(mem) elif view=='img': print context.zwo_lib.standard_img_header(mem) print context.zwo_lib.standard_img_home(mem) print context.zwo_lib.standard_img_footer(mem) else: print 'type view inconnu.' return printed q Utitleq Unoyauq U _filepathqU'Script (Python):/kzexp_zwook/index_htmlqU_codeqTÍc@sdd„ZdS(NshtmlcCsªtƒ}tttdƒdƒƒ}| odSnttt|dƒdƒdƒdƒ p%ttt|dƒdƒdƒdjoTy tttdƒd ƒ|ƒSWqÙd t|d ƒd t|d ƒdSqÙXnt|dƒdjoA|dIJ|dt|d ƒd t|d ƒdIJ|ƒSn|djoj|tttdƒdƒ|ƒIJ|tttdƒdƒ|ƒIJ|tttdƒdƒ|ƒIJnù|djoj|tttdƒdƒ|ƒIJ|tttdƒdƒ|ƒIJ|tttdƒdƒ|ƒIJn‚|djoj|tttdƒdƒ|ƒIJ|tttdƒdƒ|ƒIJ|tttdƒdƒ|ƒIJn |d IJ|ƒSdS(!Nszwo_libsmem_datas Vous utilisez un User Zope qui n'est pas enregistré dans Zwook !!!
Mettez cette page en bookmark
Delogger vous ICI.
Vous devez ensuite cliquer sur Annuler/Cancel...
Revenez ensuite sur votre page bookmarkée
s racine_objszwo_infos hasPropertys checkpasswdiszwo_initialise_passwords

Se connecter avec l'utilisateur "admin" et le mot de passe "admin"

Cliquer ici pour se connecter

sdroit_vue_dossieris^



Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
shtmlsstandard_html_headersstandard_html_homesstandard_html_footersprintsstandard_print_headersstandard_print_homesstandard_print_footersimgsstandard_img_headersstandard_img_homesstandard_img_footerstype view inconnu.(s_print_s_prints _getattr_scontextsmems _getitem_sview(sviews_print_s_prints _getattr_scontextsmems _getitem_((sScript (Python)s index_htmls2 H#. ,  ""& ""& ""& (s index_html(s index_html((sScript (Python)ssqU func_defaultsq(UhtmlqtqU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_contextqUcontextqU name_subpathqUtraverse_subpathq U name_m_selfq!Uscriptq"usbU func_codeq#(cShared.DC.Scripts.Signature FuncCode q$oq%}q&(U co_argcountq'KU co_varnamesq((Uviewq)U_print_q*U_printq+U _getattr_q,Ucontextq-Umemq.U _getitem_q/tq0ubU__ac_local_roles__q1}q2Uxavq3]q4UOwnerq5asUidq6U index_htmlq7U_paramsq8U view='html'q9U_dav_writelocksq:(U‚4q;(U PersistenceqsqU func_defaultsq(NtqU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_m_selfqUscriptqU name_contextqUcontextqU name_subpathqUtraverse_subpathqUname_containerq U containerq!usbU_dav_writelocksq"(U‚9q#(U Persistenceq$UPersistentMappingq%ttQU__ac_local_roles__q&}q'Uxavq(]q)UOwnerq*asUidq+Uacl_objq,U_paramsq-Uurl=Noneq.U func_codeq/(cShared.DC.Scripts.Signature FuncCode q0oq1}q2(U co_argcountq3KU co_varnamesq4(Uurlq5U AccessControlq6UgetSecurityManagerq7UaU _getattr_q8U containerq9tq:ubu.ÒÍ((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_FTP_access_Permissionq(UManagerqtqU_WebDAV_access_Permissionq(htq U_View_History_Permissionq (htq U_Take_ownership_Permissionq (htq U!_Change_DTML_Documents_Permissionq(htqUrawqT5 ">




Vous êtes connecté
Redirection automatique.

Pour une redirection manuelle : cliquer ici Pour une redirection manuelle : ">cliquer ici
qUglobalsq}qU#_View_management_screens_Permissionq(htqU'_Access_contents_information_Permissionq(U AnonymousqU AuthenticatedqhtqUtitleqUnoyauqU_Change_DTML_Methods_Permissionq(htqUsystemqUlibqU_Delete_objects_Permissionq (htq!U type_zwookq"Usystemq#U_varsq$}q%U_Change_proxy_roles_Permissionq&(htq'U_Copy_or_Move_Permissionq((htq)U__name__q*Utest_connectionq+U!_Change_cache_settings_Permissionq,(htq-U_View_Permissionq.(hhtq/U_dav_writelocksq0(U‚:q1(U Persistenceq2UPersistentMappingq3ttQU_WebDAV_Unlock_items_Permissionq4(htq5U_Manage_properties_Permissionq6(htq7U_WebDAV_Lock_items_Permissionq8(htq9U_Undo_changes_Permissionq:(htq;U_Manage_WebDAV_Locks_Permissionq<(htq=U _propertiesq>(}q?(Utypeq@UstringqAUidqBUtitleqCUmodeqDUwu}qE(h@UstringqFhBU type_zwookqGu}qH(h@UstringqIhBUsystemqJutqKU_Change_permissions_PermissionqL(htqMU__ac_local_roles__qN}qOu.ÓA((U OFS.FolderqUFolderqtqNt.}q(Uusersq(U‚;q(hUFolderqttQUtitleqUInformation sur le zwookq Upacksq (U‚q:(hUFolderq;ttQU_objectsq<(}q=(U meta_typeq>UFolderq?Uidq@UskinsqAu}qB(U meta_typeqCUFolderqDUidqEUusersqFu}qG(hChDhEUgroupsqHu}qI(U meta_typeqJUFolderqKUidqLUimagesqMu}qN(U meta_typeqOUFolderqPUidqQUcssqRu}qS(U meta_typeqTUFolderqUUidqVh u}qW(hThUhVUstandby_contentqXu}qY(U meta_typeqZUFolderq[Uidq\h utq]Uskinsq^(U‚Aq_(hUFolderq`ttQU__ac_local_roles__qa}qbh#Uzwo_infoqcUcssqd(U‚Bqe(hUFolderqfttQu.›Fü((UProducts.MailHost.MailHostqUMailHostqtqNt.}q(UtitleqUMailHost du siteqU smtp_portqKU smtp_hostqU localhostq U_ownerq (]q (Uzwook_active_rc6_beta3q U acl_usersq eUadminqtqU__ac_local_roles__q}qh]qUOwnerqasUidqUMailHostqu.Õï((UOFS.DTMLDocumentqU DTMLDocumentqtqNt.}q(U_varsq}qUtitleqUGPLqUrawq T>KZEXP-ZWOOK version beta 1, Copyright (C) 2001-2004 Xavier Manach (xav@1et0.org). This file is part of KZEXP-ZWOOK. KZEXP-ZWOOK is the kernel of ZWOOK. KZEXP-ZWOOK is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA q Uglobalsq }q U__name__q UCOPYINGqU__ac_local_roles__q}qUadminq]qUOwnerqasu.Ö!Ò((U OFS.FolderqUFolderqtqNt.}q(U+_Open_Close_Database_Connections_Permissionq(UManagerqU config_zwookqUblogqtq U_Access_session_data_Permissionq (hU Anonymousq U Authenticatedq U config_zwookq U pages_managerqU skin_editorqU e-cours_zwookqUblogqtqU_View_History_Permissionq(hU AuthenticatedqU AnonymousqhhtqU_Add_Page_Templates_Permissionq(htqU!_Import_Export_objects_Permissionq(hhhtqU#_Manage_ZCatalog_Entries_Permissionq(hhhtqU_Add_Zope_Tutorials_Permissionq(htqU*_Access_inactive_portal_content_Permissionq(UManagerq tq!U _Add_CMFDefault_Tools_Permissionq"(h tq#U_Change_Photo_Permissionq$(h tq%U_Add_Vocabularies_Permissionq&(hhhtq'U_Edit_Factories_Permissionq((hhhtq)Utitleq*UAccueilq+U_Manage_Z_Classes_Permissionq,(hhhtq-U3_Add_Issue_Tracker_Notifyable_Containers_Permissionq.(h tq/U)_Add_Controller_Python_Scripts_Permissionq0(h tq1U_Delete_objects_Permissionq2(hhhhhtq3U_Add_TTWObjects_Permissionq4(h tq5U_Add_Versions_Permissionq6(htq7U_Manage_Groups_Permissionq8(h tq9U _Use_Database_Methods_Permissionq:(hhhtq;U _Add_Formulator_Forms_Permissionq<(h tq=U type_zwookq>Usystemq?U&_Add_PortalTransforms_Tools_Permissionq@(h tqAU_Copy_or_Move_PermissionqB(hhhhhtqCU!_Add_ZODB_Mount_Points_PermissionqD(htqEU _Add_Cookie_Crumblers_PermissionqF(h tqGU_Change_Versions_PermissionqH(htqIU _Add_Archetypes_Tools_PermissionqJ(h tqKU"_Create_class_instances_PermissionqL(hhhtqMU_Add_BTreeFolder2s_PermissionqN(UManagerqOtqPU(_Save_discard_Version_changes_PermissionqQ(htqRU _Change_portal_events_PermissionqS(h tqTU_Manage_users_PermissionqU(htqVU%_Moderate_COREBlog_Entries_PermissionqW(h tqXU _Add_Temporary_Folder_PermissionqY(htqZU_Add_Python_Scripts_Permissionq[(htq\U_Add_Issue_Trackers_Permissionq](h tq^U_Set_own_properties_Permissionq_(h tq`U_Add_Groups_Permissionqa(h tqbU_Zwiki__Add_wikis_Permissionqc(h tqdU_Define_permissions_Permissionqe(htqfU'_Change_Session_Data_Manager_Permissionqg(htqhU_Add_portal_member_Permissionqi(h tqjU!_Change_cache_managers_Permissionqk(htqlU_Add_WebMails_Permissionqm(h tqnU-_Add_Z_Gadfly_Database_Connections_Permissionqo(hhhtqpU_Manage_Site_Permissionqq(h tqrU)_Add_Controller_Page_Templates_Permissionqs(h tqtU._Access_arbitrary_user_session_data_Permissionqu(hh h h hhhhtqvU _Log_to_the_Event_Log_Permissionqw(htqxU_Add_COREBlogs_Permissionqy(h tqzU_Search_ZCatalog_Permissionq{(hhhhhtq|U#_Modify_Cookie_Crumblers_Permissionq}(hOtq~U%_Add_Virtual_Host_Monsters_Permissionq(htq€U&_Add_CMF_Action_Icons_Tools_Permissionq(h tq‚U _Change_configuration_Permissionqƒ(hhhtq„U_Add_Folders_Permissionq…(hhhhhtq†U_Manage_Vocabulary_Permissionq‡(hhhtqˆU!_Change_Python_Scripts_Permissionq‰(htqŠU_Use_external_editor_Permissionq‹(hUblogqŒU config_zwookqtqŽU$_Create_Transient_Objects_Permissionq(hhhtqU_Change_DTML_Methods_Permissionq‘(hhhtq’U_View_Groups_Permissionq“(h tq”U _Add_MailHost_objects_Permissionq•(hhhtq–U,_Add_Z_MySQL_Database_Connections_Permissionq—(h tq˜U_Query_Vocabulary_Permissionq™(hhhhhtqšU_Add_Pluggable_Index_Permissionq›(htqœU#_Change_External_Methods_Permissionq(htqžU_Add_User_Folders_PermissionqŸ(htq U_Zwiki__Edit_pages_Permissionq¡(h tq¢U_objectsq£(}q¤(U meta_typeq¥UFolderq¦Uidq§U zwo_dossierq¨u}q©(U meta_typeqªUFolderq«Uidq¬Umodulesq­u}q®(U meta_typeq¯UFolderq°Uidq±U texte_fckq²u}q³(U meta_typeq´UFolderqµUidq¶Usupportq·utq¸U_Add_GroupUserFolder_Permissionq¹(h tqºU%_Add_Form_Controller_Tools_Permissionq»(h tq¼U*_Add_Transient_Object_Container_Permissionq½(hhhtq¾U/_Add_Accelerated_HTTP_Cache_Managers_Permissionq¿(htqÀU_Change_proxy_roles_PermissionqÁ(htqÂU_Zwiki__Delete_pages_PermissionqÃ(h tqÄU_Add_portal_topics_PermissionqÅ(h tqÆU"_Add_Browser_Id_Manager_PermissionqÇ(htqÈU!_Change_cache_settings_PermissionqÉ(htqÊU!_Edit_ReStructuredText_PermissionqË(htqÌU)_Access_Issue_User_Information_PermissionqÍ(h tqÎU_Zwiki__Add_pages_PermissionqÏ(h tqÐU_Add_portal_folders_PermissionqÑ(h tqÒU_WebDAV_Lock_items_PermissionqÓ(htqÔU-_Manage_Transient_Object_Container_PermissionqÕ(hhhhhtqÖU_Manage_WebDAV_Locks_Permissionq×(hhhtqØU*_Add_Issue_Tracker_User_Folders_PermissionqÙ(h tqÚU!_Change_Page_Templates_PermissionqÛ(hhhtqÜU!_Add_CMFCalendar_Tools_PermissionqÝ(h tqÞU$_Add_Session_Data_Manager_Permissionqß(htqàU_Request_review_Permissionqá(h tqâU*_Open_Close_Database_Connection_Permissionqã(hhhtqäh¨(U‚Eqå(hUFolderqættQU_Take_ownership_Permissionqç(hhhtqèU_WebDAV_access_Permissionqé(htqêU texte_fckqë(U‚Cqì(hUFolderqíttQU*_Add_ReStructuredText_Documents_Permissionqî(htqïU_Change_bindings_Permissionqð(htqñU_Zwiki__Rename_pages_Permissionqò(h tqóU+_Add_CMF_Caching_Policy_Managers_Permissionqô(h tqõU_Zwiki__Add_comments_Permissionqö(h tq÷U%_Test_Database_Connections_Permissionqø(hhhtqùU _Change_portal_topics_Permissionqú(h tqûU._Add_Z_Psycopg_Database_Connections_Permissionqü(h tqýh·(U‚Dqþ(hUFolderqÿttQUsystemrUracinerU$_Access_Transient_Objects_Permissionr(hh h h hhhhtrU&_Add_Content_Type_Registrys_Permissionr(h trU_Log_Site_Errors_Permissionr(htrU_Manage_COREBlog_Permissionr(h tr U_Add_Site_Roots_Permissionr (htr U _Add_External_Methods_Permissionr (htr U&_Add_CMFQuickInstallerTools_Permissionr(h trU#_Change_Database_Methods_Permissionr(hhhtrU_Manage_portal_Permissionr(h trU'_Change_Database_Connections_Permissionr(hhhtrU$_Change_Formulator_Fields_Permissionr(h trU_Add_ZCatalogs_Permissionr(hhhtrU_Zwiki__Rate_pages_Permissionr(h trU!_Zwiki__Reparent_pages_Permissionr(h trU!_Modify_portal_content_Permissionr(h trU#_View_management_screens_Permissionr (hhhtr!U_Add_Photo_Folders_Permissionr"(h tr#U!_List_undoable_changes_Permissionr$(h tr%U(_Manage_ZCatalogIndex_Entries_Permissionr&(hhhtr'U_Add_Plone_Tools_Permissionr((h tr)U _Add_Database_Methods_Permissionr*(hhhtr+U_Manage_properties_Permissionr,(hhhhhtr-U _Add_GroupUserFolders_Permissionr.(h tr/U_Add_portal_events_Permissionr0(h tr1U_Delete_Groups_Permissionr2(h tr3U_Add_CMF_Core_Tools_Permissionr4(h tr5U_Reply_to_item_Permissionr6(h tr7U%_Change_Browser_Id_Manager_Permissionr8(htr9U_Add_Photos_Permissionr:(h tr;U,_Add_Documents__Images__and_Files_Permissionr<(hhhhhtr=U_FTP_access_Permissionr>(hhhhhtr?U_Use_Factories_Permissionr@(hhhtrAU_Set_Group_Ownership_PermissionrB(h trCU!_Change_DTML_Documents_PermissionrD(hhhhhtrEU_List_portal_members_PermissionrF(h trGU*_Add_Filesystem_Directory_Views_PermissionrH(h trIU_Undo_changes_PermissionrJ(hhhhhtrKU'_Access_contents_information_PermissionrL(hh h h hhhhtrMU#_Change_Images_and_Files_PermissionrN(hhhhhtrOU_Set_own_password_PermissionrP(h trQU!_Add_COREBlog_Comments_PermissionrR(h trSU_Add_TTWFolders_PermissionrT(h trUU_Add_portal_content_PermissionrV(h trWh§UzwookrXU_IssueTracker_Access_PermissionrY(h trZU!_Use_mailhost_services_Permissionr[(hhhhhtr\U(_Add_CMF_QuickInstaller_Tools_Permissionr](h tr^U!_Review_portal_content_Permissionr_(h tr`U _Add_CMF_Groups_Tools_Permissionra(h trbU"_Add_RAM_Cache_Managers_Permissionrc(htrdU#_Change_Lock_Information_Permissionre(hhhtrfU(_Access_future_portal_content_Permissionrg(h trhU_Add_CMF_Sites_Permissionri(h trjU_Join_leave_Versions_Permissionrk(htrlU_View_Permissionrm(hhhhhtrnU#_Change_Formulator_Forms_Permissionro(h trpU_WebDAV_Unlock_items_Permissionrq(htrrU__ac_local_roles__rs}rt(Uadminru]rv(Uadminrw(UOwnerrxttryaUsantiagorz]r{(Uadminr|(UOwnerr}ttr~aUmanur]r€(Uadminr(UOwnerr‚ttrƒauUmodulesr„(U‚Fr…(hUFolderr†ttQU-_Add_Cookie_Crumbler__Standalone_s_Permissionr‡(hOtrˆU _List_folder_contents_Permissionr‰(h trŠU _Add_COREBlog_Entries_Permissionr‹(h trŒU_Manage_Access_Rules_Permissionr(hhhtrŽU%_Add_Controller_Validators_Permissionr(h trU _propertiesr‘(}r’(Utyper“Ustringr”h§h*Umoder•Uwdr–u}r—(j“j”h§h>u}r˜(j“Ustringr™h§Usystemršutr›U_Change_permissions_Permissionrœ(hhhtrU$_Zwiki__Change_page_types_Permissionrž(h trŸU#_Mail_forgotten_password_Permissionr (h tr¡u.×_((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)UtitleqUnoyauq U Script_magicq KU_bodyq Tª+# mode debug : mettre debug=0 pour l'enlever debug_mode=1 #affichage du header ################################################ # controle des droits ################################################ #demande de se connecter si l'utilisateur n'as pas le droit d'acces. if mem['droit_vue_dossier']==0: print '



' print '

' print 'Cette page nécessite une identification.


' print '

Pour vous identifier cliquer sur ' print '[ Se connecter ]

' print '

[ Accueil ]

' return printed ################################################ ses=context.REQUEST.SESSION if ses.has_key('vprint'): if ses['vprint']=='1': aff='' aff=aff+'' aff=aff+''+context.title+'' aff=aff+'' aff=aff+'' aff=aff+'') return 1 #printintcase : affiche l'interieur d'une case def printintcase(aff,idcase,writeok): # recuperation du contenu de la case(cc) cc=val['cc'][idcase] #quelques tests sur contenu de la case #pour detecter les deux cas spéciaux. if len(cc)==1: tabinlist=cc[0].split('T') if len(tabinlist)>1: #1er cas spécial détecté : case contient tableau return printtab(aff,'T'+tabinlist[1],writeok) if cc[0]=='######': #2nd cas spécial détecté : detection de la zone principale return action_zone_principale if writeok==0: return 0 kkch=0 # affichage de case standart. # on affiche les elements (el = id element) ncc=[] for el in cc: if el in obj_in_conteneur: #zelem = element a afficher zelem=conteneur[el] #on essaye d'afficher l'element try: af=context.zwo_modules[zelem.element].view_html(mem,zelem) if af<>'': kkch=1 aff.append(af) except Exception, e_txt: if debug_mode==1: aff.append(str(e_txt)) else: aff.append("BgMd[%s]" % zelem.element) kkch=1 #on affiche l'espacement entre elements, #grace à la propriété disposition des elements. if zelem.hasProperty('disposition'): sp=zelem.disposition else: sp='*' if sp=="+": aff.append("
") kkch=1 if sp=="-": aff.append(" ") kkch=1 if sp=="--": aff.append("  ") kkch=1 if sp=="++": aff.append("

") kkch=1 #affichage point si rien dans la case. if kkch==0: aff.append('') return 1 #affiche un tableau def printtab(aff,tab,writeok): pt=val['pt'][tab] table=val['ct'][tab] ppt=[] if tab=='T1': if pt['hauteur'].strip()<>'': ppt.append(' height="%s"' % pt['hauteur']) else: ppt.append(' height="100%"') if pt['largeur'].strip()<>'': ppt.append(' width="%s"' % pt['largeur']) else: ppt.append(' width="100%"') else: ppt.append(' height="100%"') ppt.append(' width="100%"') ppt.append(' cellspacing="0" cellpadding="0" border="0"') ptcadre=pt['cadre'] if ptcadre<>'0' and ptcadre<>'': aff.append('') ppt.append(' class=Skinbordure%s' % tab) margetab="0" if pt['marge']<>'': margetab=pt['marge'] couleurfondtab="" if pt['couleurfond']<>'': couleurfondtab=pt['couleurfond'] couleurtextetab="" if pt['couleurtexte']<>'': couleurtextetab=pt['couleurtexte'] aligntab="left" if pt['align']<>'': aligntab=pt['align'] valigntab="top" if pt['valign']<>'': valigntab=pt['valign'] if writeok==1: aff.append('\n' % ''.join(ppt)) for ligne in table: if len(ligne)>0: if writeok==1: aff.append(' ') for idcase in ligne: if idcase<>'': writeok=printtdcase(aff,idcase,margetab,couleurfondtab,couleurtextetab,aligntab,valigntab,writeok) if writeok==1: aff.append(' \n') if writeok==1: aff.append('\n
' return aff #aff est la liste de chaine a afficher. aff=[] #mem['inskin'] : variable utile aux elements pour savoir # si ils appartiennet au skin ou à la page. mem['inskin']=1 #indique que la zone principale desactive l'affichage action_zone_principale=0 #position de depart de writeok initwriteok=1 #conteneur est le dossier qui contient les elements à afficher. conteneur=mem['skin_obj'] #liste des object du conteneur obj_in_conteneur=conteneur.objectIds() ################################################ # affichage balises , and cie... ################################################ ################################################ #titre de la page titre_page=mem['rep_toi'] #nom du site titre_site=mem['zwo_obj'].zwo_info.site aff.append('\n') aff.append('%s - %s\n'% (titre_site,titre_page)) ################################################ #meta tags if mem['config_obj'].hasProperty('metas'): for l in mem['config_obj'].metas: dico={} ok=0 for ch in l.split('!!'): dec2=ch.split('=') if len(dec2)>1: dico[dec2[0]]=dec2[1] if dec2[0]=='content' and dec2[1]<>'': ok=1 if ok==1: aff.append('\n') #fin meta tags ################################################ #affichage feuille de style aff.append('\n') aff.append('\n') ################################################ #recuperation des options du body (dans tpp) tpp={} for a in conteneur.page.split('/'): if a<>'': dec=a.split('=') if len(dec)>1: tpp[dec[0]]=dec[1] #fp : fonction acces tpp sans erreur. def fp(key): if tpp.has_key(key): return tpp[key] else: return '' #affichage de la balise body aff.append(''': aff.append(' topmargin="%s" marginheight="%s"' % (fp('decv'),fp('decv'))) else: aff.append(' topmargin="0" marginheight="0"') if fp('dech')<>'': aff.append(' leftmargin="%s" marginwidth="%s"' % (fp('dech'),fp('dech'))) else: aff.append(' leftmargin="0" marginwidth="0"') if fp('couleurpage')<>'': aff.append(' bgcolor="%s"' % (fp('couleurpage'))) if fp('image')<>'': aff.append(' background="%s/zwo_info/images/fonds/%s"' % (mem['zwo_url'],fp('image'))) aff.append('>') ################################################ #affichage du javascript pour rollover js=""" """ aff.append(js) ################################################ # align global if fp('align')=='center': aff.append('
') if fp('align')=='right': aff.append('
') ################################################ ################################################ # affichage du skin ################################################ #recuperation de la structure de positionement (val) #elle indique la structure du tableau a afficher #ainsi que le contenu des cases. val=context.zwo_lib.tab_to_val(conteneur) # la fonction printtab affiche un tableau #en utilisant la fonction printtdcase et printintcase #qui affiche une case (les balises td et l'interieur). #descriptions des parametres des fonctions #englobant la case, et donc la couleur par défaut de la case. #margetab : marge du tableau #couleurfondtab : couleur de fond du tableau #couleurtextetab : couleur de text du tableau #aligntab : alignement horizontale du tableau #valigntab : alignement vertical du tableau #writeok : le flag qui indique si on est avant #la zone principale (c'est a dire ce qui doit être #afficher. La fonction retourne un nouvelle valeur pour writeok #idcase : identifiant de case #printtdcase : affiche la balise tds et appelle printintcase def printtdcase(aff,idcase,margetab,couleurfondtab,couleurtextetab,aligntab,valigntab,writeok): #affichage ouverture balises pc=val['pc'][idcase] margeint=margetab if pc['marge']<>'': margeint=pc['marge'] if writeok==1: pccc=[] if pc['colspan']<>'' and pc['colspan']<>'1': pccc.append(' colspan="%s"' % pc['colspan']) if pc['rowspan']<>'' and pc['rowspan']<>'1': pccc.append(' rowspan="%s"' % pc['rowspan']) ppc=[] if pc['hauteur']<>'': ppc.append(' height="%s"' % pc['hauteur']) if pc['largeur']<>'': ppc.append(' width="%s"' % pc['largeur']) if pc['align']<>'': ppc.append(' align="%s"' % pc['align']) else : ppc.append(' align="%s"' % aligntab) if pc['valign']<>'': ppc.append(' valign="%s"' % pc['valign']) else : ppc.append(' valign="%s"' % valigntab) if pc['couleurfond']<>'': ppc.append(' bgcolor="%s"' % pc['couleurfond']) elif couleurfondtab<>'': ppc.append(' bgcolor="%s"' % couleurfondtab) textcolor=couleurtextetab if pc['couleurtexte']<>'': textcolor=pc['couleurtexte'] ppc.append(' style="color:%s"' % textcolor) ppcc=[] pcase=pc['cadre'] if pcase<>'0' and pcase<>'': aff.append('') ppcc.append(' class="Skinbordure%s"' % idcase) afppc=''.join(ppc) afpccc=''.join(pccc) afppcc=''.join(ppcc) if margeint<>'0': aff.append('') else: aff.append('\n' % (afppc,afppcc,afpccc)) #Affichage cellule writeok=printintcase(aff,idcase,writeok) if writeok==0: return 0 #affichage fermetures balises if margeint<>'0': aff.append('\n \n
') aff.append('
') return writeok printtab(aff,'T1',initwriteok) return ''.join(aff) q Uwarningsq )UidqU&standard_html_header_avant_patch_metasqU_codeqTâ.c@s d„ZdS(Nc$=sïtƒ}d‰tˆdƒdjoi|dIJ|dIJ|dIJ|dIJ|dtˆd ƒd IJ|d tˆd ƒd IJ|ƒSntttdƒdƒ}t|dƒdƒokt|dƒdjoQd}|d}|dttdƒd}|d}|d}|d}|Sq'ng}dt ˆƒdƒdjo-t|d"ƒd?|d>ƒ|d>ƒfƒnt|d"ƒd@ƒ|dAƒdjo-t|d"ƒdB|dAƒ|dAƒfƒnt|d"ƒdCƒ|dDƒdjo!t|d"ƒdE|dDƒƒn|dFƒdjo0t|d"ƒdGtˆd ƒ|dFƒfƒnt|d"ƒdHƒdI}t|d"ƒ|ƒ|dJƒdKjot|d"ƒdLƒn|dJƒdMjot|d"ƒdNƒntttdOƒdPƒˆƒ‰‡‡dQ†‰‡‡‡‡‡‡‡ dR†‰‡‡dS†‰ˆ|dT| ƒtddUƒ|ƒSdS(VNisdroit_vue_dossieris



s†

s2Cette page nécessite une identification.


s3

Pour vous identifier cliquer sur s [ Se connecter ]

s

[ Accueil ]

sREQUESTsSESSIONshas_keysvprints1sss s���titles���sDs>s"(s _getitem_svalsidcasespcsmargetabsmargeintswriteokspcccs _getattr_sppcsaligntabs valigntabscouleurfondtabscouleurtextetabs textcolorsppccspcasesaffsafppcsafpcccsafppccs printintcase(saffsidcasesmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabswriteoks _getitem_svalspcsmargeintspcccs _getattr_sppcs textcolorsppccspcasesafppcsafpcccsafppccs printintcase(s printintcasesval(sScript (Python)s printtdcase¼sb  ,$,!!!$$!)7! csÃttˆdƒ|ƒ}t|ƒdjottt|dƒdƒdƒ}t|ƒdjo!ˆ|dt|dƒ|ƒSnt|dƒdjoˆSqŸn|djodSnd} g} xÔt |ƒD]Æ}|ˆjo³tˆ|ƒ}yattttdƒt|dƒƒd ƒˆ|ƒ}|d jod} t|d ƒ|ƒnWnetj oY}ˆdjot|d ƒt|ƒƒn!t|d ƒd t|dƒƒd} nXt|d ƒdƒot|dƒ}nd}|djot|d ƒdƒd} n|djot|d ƒdƒd} n|djot|d ƒdƒd} n|djot|d ƒdƒd} q“qÍqÍW| djot|d ƒdƒndSdS(NscciissplitsTs######s zwo_modulesselements view_htmlssappendsBgMd[%s]s hasPropertys dispositions*s+s
s-s s--s   s++s

s5(s _getitem_svalsidcasesccslens _getattr_s tabinlistsprinttabsaffswriteoksaction_zone_principaleskkchsnccs _getiter_selsobj_in_conteneurs conteneurszelemscontextsmemsafs Exceptionse_txts debug_modesstrssp(saffsidcaseswriteoks _getitem_svalsccslens _getattr_s tabinlistsprinttabsaction_zone_principaleskkchsnccs _getiter_selsobj_in_conteneurs conteneurszelemscontextsmemsafs Exceptionse_txts debug_modesstrssp(svalsmemsaction_zone_principales conteneursprinttabs debug_modesobj_in_conteneur(sScript (Python)s printintcaseÿsV!    3     c+sÒttˆdƒ|ƒ}ttˆdƒ|ƒ}g}|djo¶tt|dƒdƒƒdjo$t|dƒdt|dƒƒnt|dƒd ƒtt|d ƒdƒƒdjo$t|dƒd t|d ƒƒqt|dƒd ƒn't|dƒd ƒt|dƒd ƒt|dƒd ƒt|dƒ} | djo | djojt|dƒdƒt|dƒd|| t|dƒfƒt|dƒdƒt|dƒd|ƒnd} t|dƒdjot|dƒ} nd} t|dƒdjot|dƒ} nd} t|dƒdjot|dƒ} nd} t|dƒdjot|dƒ} nd}t|dƒdjot|dƒ}n|djo*t|dƒdtddƒ|ƒƒnx¼t|ƒD]®}t|ƒdjo•|djot|dƒd ƒnxFt|ƒD]8}|djo%ˆ||| | | | ||ƒ}q>q>W|djot|dƒd!ƒq¢qôqôW|djot|dƒd"ƒn|SdS(#NsptsctsT1shauteursstripssappends height="%s"s height="100%"slargeurs width="%s"s width="100%"s+ cellspacing="0" cellpadding="0" border="0"scadres0ss class=Skinbordure%ssmarges couleurfonds couleurtextesleftsalignstopsvalignis
sinskinsskin_objs objectIdssrep_toiszwo_objszwo_infossitesappends s%s - %s s config_objs hasPropertysmetasssplits!!s=scontents s s spages/cs/tˆdƒ|ƒotˆ|ƒSndSdS(Nshas_keys(s _getattr_stppskeys _getitem_(skeys _getattr_stpps _getitem_(stpp(sScript (Python)sfpfsssû salignscenters
srights
szwo_libs tab_to_valc,sdttˆdƒ|ƒ} |} t| dƒdjot| dƒ} n|djoªg} t| dƒdjot| dƒdjo$t| dƒdt| dƒƒnt| d ƒdjot| d ƒdjo$t| dƒd t| d ƒƒng}t| d ƒdjo$t|dƒd t| d ƒƒnt| d ƒdjo$t|dƒdt| d ƒƒnt| dƒdjo$t|dƒdt| dƒƒnt|dƒd|ƒt| dƒdjo$t|dƒdt| dƒƒnt|dƒd|ƒt| dƒdjo$t|dƒdt| dƒƒn)|djot|dƒd|ƒn|}t| dƒdjo*t| dƒ}t|dƒd|ƒng}t| dƒ}|djo |djojt|dƒdƒt|dƒd||t| dƒfƒt|dƒdƒt|dƒd|ƒntddƒ|ƒ}tddƒ| ƒ}tddƒ|ƒ}| djo7t|dƒd|||d | d!|d"ƒqþt|dƒd#|||fƒnˆ|||ƒ}|d$jod$Sn| djot|dƒd%ƒnt|dƒd&ƒdSdS('Nspcsmargesiscolspans1sappends colspan="%s"srowspans rowspan="%s"shauteurs height="%s"slargeurs width="%s"saligns align="%s"svaligns valign="%s"s couleurfonds bgcolor="%s"s couleurtextes style="color:%s"scadres0ss class="Skinbordure%s"sjoinss is
s
sjoinis s s
(s _getitem_svalstabsptstablesppts _getattr_sptcadresaffsmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabswriteoks _getiter_sligneslensidcases printtdcase(saffstabswriteoks _getitem_svalsptstablesppts _getattr_sptcadresmargetabscouleurfondtabscouleurtextetabsaligntabs valigntabs _getiter_sligneslensidcases printtdcase(s printtdcasesval(sScript (Python)sprinttab?sd %$%$)'   )sT1sjoin($s_print_s_prints debug_modes _getitem_smems _getattr_scontextssessaffs_write_saction_zone_principales initwriteoks conteneursobj_in_conteneurs titre_pages titre_sites _getiter_slsdicosokschsdec2slensdico2sksstringscrsetstppsasdecsfpsjssvals printtdcases printintcasesprinttab($smems_print_s_prints debug_modes _getitem_s _getattr_scontextssessaffs_write_saction_zone_principales initwriteoks conteneursobj_in_conteneurs titre_pages titre_sites _getiter_slsdicosokschsdec2slensdico2sksstringscrsetstppsasdecsfpsjssvals printintcases printtdcasesprinttab(( smems printintcasesvalsaction_zone_principalesprinttabs conteneurs printtdcases debug_modestppsobj_in_conteneursScript (Python)sstandard_html_headers°           $ %)  $*1% .--0  C@A(sstandard_html_header(sstandard_html_header((sScript (Python)ssqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_contextqUcontextqU name_subpathqUtraverse_subpathqU name_m_selfqUscriptqUname_containerqU containerq usbU func_codeq!(cShared.DC.Scripts.Signature FuncCode q"oq#}q$(U co_argcountq%KU co_varnamesq&(Umemq'U_print_q(U_printq)U debug_modeq*U _getitem_q+U _getattr_q,Ucontextq-Usesq.Uaffq/U_write_q0Uaction_zone_principaleq1U initwriteokq2U conteneurq3Uobj_in_conteneurq4U titre_pageq5U titre_siteq6U _getiter_q7UlUdicoq8Uokq9Uchq:Udec2q;UlenqUcrsetq?Utppq@UaUdecqAUfpqBUjsqCUvalqDU printintcaseqEU printtdcaseqFUprinttabqGtqHubU__ac_local_roles__qI}qJUxavqK]qLUOwnerqMasU _filepathqNUVScript (Python):/zwook_active_rc6_beta2/zwo_lib/standard_html_header_avant_patch_metasqOU_paramsqPUmemqQU_dav_writelocksqR(U‚GqS(U PersistenceqTUPersistentMappingqUtqVtqWQu.Ø#‚((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)U Script_magicq KU_bodyq T¸# Ce script gere les droits locaux. Il est donc critique pour la sécurité. # Ce scrit contient les listes de permissions correspondants aux: # non visiteur / visiteur / editeur de page. # le principe est simple, la carte des droits zwook permet de mappers # ces droits selon les groupes zwooks (qui sont les roles zope). # L'exception étant le role Manager, qui a de toute facon tous les droits. # (ceci peu être réglé en modifiant la liste nonvisible) # Le choix des ces parametres de securité sont critique. # Ils n'ont pas encore assez été étudier a mon avis. # Un perfectionnement et des tests seraient souhaitable. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' ############################## # DEBUT LISTE PERMISSIONS #### ############################## chlistePermNonVisiteur="""Access Transient Objects Access arbitrary user session data Access contents information Access session data""" listePermNonVisiteur=chlistePermNonVisiteur.split('\n') chlistePermVisiteur="""Access Transient Objects Access arbitrary user session data Access contents information Access session data Add Documents, Images, and Files Add Folders Add Transient Object Container Change DTML Documents Change Images and Files Copy or Move Delete objects FTP access Import/Export objects Manage Transient Object Container Manage properties Query Vocabulary Search ZCatalog Undo changes Use mailhost services View View History""" listePermVisiteur=chlistePermVisiteur.split('\n') chlistePermEditeur="""Access Transient Objects Access arbitrary user session data Access contents information Access session data Add ChatItems Add Database Methods Add Documents, Images, and Files Add Folders Add MailHost objects Add Vocabularies Add Z Gadfly Database Connections Add ZCatalogs Change DTML Documents Change DTML Methods Change Database Connections Change Database Methods Change Images and Files Change Lock Information Change Page Templates Change configuration Change permissions Copy or Move Create Transient Objects Create class instances Delete objects Edit Factories FTP access Manage Access Rules Manage Transient Object Container Manage Vocabulary Manage WebDAV Locks Manage Z Classes Manage ZCatalog Entries Manage ZCatalogIndex Entries Manage properties Open/Close Database Connection Open/Close Database Connections Query Vocabulary Search ZCatalog Take ownership Test Database Connections Undo changes Use Database Methods Use Factories Use external editor Use mailhost services View View History View management screens""" listePermEditeur=chlistePermEditeur.split('\n') liste_perm=[] b=rep.permission_settings() for c in b: liste_perm.append(c['name']) ############################## # FIN LISTE PERMISSIONS ###### ############################## #liste des roles qui ne sont pas affectés par la map droits nonvisible=['Manager'] #on determine la listes des groupes zwooks affecté par la map droits. (lg) repgr=context.zwo_info.groups lg=[] for a in repgr.objectIds(): if not a in nonvisible: if a<>'' : lg.append(a) #Test si il y a aquisition des droits if rep.zwo_dossier.new_droits=='0': #Donne tous droits au groupe Manager rep.manage_role('Manager', liste_perm) #Configure tous droits en aquisition #Donne aucun droit au autres groupes. rep.manage_acquiredPermissions(liste_perm) for gr in lg: rep.manage_role(gr, []) return # Si il n'y as pas aquisition : # On recupere les listes de groupes editeurs (ge) et visiteurs (gv). chgv=rep.zwo_dossier.groupes_visiteurs chge=rep.zwo_dossier.groupes_editeurs gv=chgv.split('&') ge=chge.split('&') #on donne tous les droits au groupe Manager rep.manage_role('Manager', liste_perm) #Configure aucun droits en aquisition rep.manage_acquiredPermissions([]) #Donne les droits de non visiteurs a tous les groupes. for gr in lg: rep.manage_role(gr, listePermNonVisiteur) #Accorde les droits de visiteurs aux groupes visiteurs. for g in gv: if g<>'': rep.manage_role(g, listePermVisiteur) #Accorde les droits d'edition aux groupes editeurs. for g in ge: if g<>'': rep.manage_role(g, listePermEditeur) return q Utitleq Unoyauq U _filepathqU6Script (Python):/kzexp_zwook/zwo_lib/zwo_droits_folderqU_codeqT‚c@s d„ZdS(NcCsdkl}|ƒ}t|dƒƒdjodSnd}t|dƒdƒ}d}t|dƒdƒ}d } t| dƒdƒ} g} t|d ƒƒ} x0t | ƒD]"}t| d ƒt|d ƒƒq­Wd g}tttdƒdƒ}g}xVt t|dƒƒƒD]<}||j o(|djot|d ƒ|ƒqOqqWtt|dƒdƒdjo^t|dƒd | ƒt|dƒ| ƒx*t |ƒD]}t|dƒ|gƒq¨WdSntt|dƒdƒ}tt|dƒdƒ}t|dƒdƒ}t|dƒdƒ}t|dƒd | ƒt|dƒgƒx*t |ƒD]}t|dƒ||ƒq`Wx;t |ƒD]-}|djot|dƒ||ƒqqWx;t |ƒD]-}|djot|dƒ|| ƒqËqËWdSdS(N(sgetSecurityManagerscalledByExecutableisnonskAccess Transient Objects Access arbitrary user session data Access contents information Access session datassplits s¬Access Transient Objects Access arbitrary user session data Access contents information Access session data Add Documents, Images, and Files Add Folders Add Transient Object Container Change DTML Documents Change Images and Files Copy or Move Delete objects FTP access Import/Export objects Manage Transient Object Container Manage properties Query Vocabulary Search ZCatalog Undo changes Use mailhost services View View HistorysAccess Transient Objects Access arbitrary user session data Access contents information Access session data Add ChatItems Add Database Methods Add Documents, Images, and Files Add Folders Add MailHost objects Add Vocabularies Add Z Gadfly Database Connections Add ZCatalogs Change DTML Documents Change DTML Methods Change Database Connections Change Database Methods Change Images and Files Change Lock Information Change Page Templates Change configuration Change permissions Copy or Move Create Transient Objects Create class instances Delete objects Edit Factories FTP access Manage Access Rules Manage Transient Object Container Manage Vocabulary Manage WebDAV Locks Manage Z Classes Manage ZCatalog Entries Manage ZCatalogIndex Entries Manage properties Open/Close Database Connection Open/Close Database Connections Query Vocabulary Search ZCatalog Take ownership Test Database Connections Undo changes Use Database Methods Use Factories Use external editor Use mailhost services View View History View management screensspermission_settingssappendsnamesManagerszwo_infosgroupss objectIdsss zwo_dossiers new_droitss0s manage_rolesmanage_acquiredPermissionssgroupes_visiteurssgroupes_editeurss&(s AccessControlsgetSecurityManagersas _getattr_schlistePermNonVisiteurslistePermNonVisiteurschlistePermVisiteurslistePermVisiteurschlistePermEditeurslistePermEditeurs liste_permsrepsbs _getiter_scs _getitem_s nonvisiblescontextsrepgrslgsgrschgvschgesgvsgesg(sreps AccessControlsgetSecurityManagersas _getattr_schlistePermNonVisiteurslistePermNonVisiteurschlistePermVisiteurslistePermVisiteurschlistePermEditeurslistePermEditeurs liste_permsbs _getiter_scs _getitem_s nonvisiblescontextsrepgrslgsgrschgvschgesgvsgesg((sScript (Python)szwo_droits_folders`  2  "    (szwo_droits_folder(szwo_droits_folder((sScript (Python)ssqU func_defaultsqNU _proxy_rolesq(UManagerqtqU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_m_selfqUscriptqU name_subpathq Utraverse_subpathq!U name_contextq"Ucontextq#usbU_dav_writelocksq$(U‚Hq%(U Persistenceq&UPersistentMappingq'tq(tq)QU__ac_local_roles__q*}q+Uxavq,]q-UOwnerq.asUidq/Uzwo_droits_folderq0U_paramsq1Urepq2U func_codeq3(cShared.DC.Scripts.Signature FuncCode q4oq5}q6(U co_argcountq7KU co_varnamesq8(Urepq9U AccessControlq:UgetSecurityManagerq;UaU _getattr_qUchlistePermVisiteurq?UlistePermVisiteurq@UchlistePermEditeurqAUlistePermEditeurqBU liste_permqCUbU _getiter_qDUcU _getitem_qEU nonvisibleqFUcontextqGUrepgrqHUlgqIUgrqJUchgvqKUchgeqLUgvqMUgeqNUgtqOubu.ÙÍ((U OFS.FolderqUFolderqtqNt.}q(U_objectsq(}q(U meta_typeqUFolderqUidq Urssq utq Utitleq UU__ac_local_roles__q }qUjamesq]qUOwnerqash UparseqUrssq(U‚Iq(hUFolderqtqtqQu.ó Æ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)U Script_magicq KU_bodyq TEif mem['droit_vue_dossier']==0: print '



Cette page nécessite une identification.



' print ' Pour vous identifier sur le site,
cliquer sur Se connecter
' return printed aff="" aff=aff+'' aff=aff+''+context.title+'' aff=aff+'' aff=aff+'' aff=aff+'
' return aff q Utitleq Unoyauq U _filepathqU:Script (Python):/kzexp_zwook/zwo_lib/standard_print_headerqU_codeqTHc@s d„ZdS(Nc Cs tƒ}t|dƒdjo0|dIJ|dt|dƒdIJ|ƒSnd}|d}|d ttd ƒd }|d }|d }|d}|SdS(Nsdroit_vue_dossieris^



Cette page nécessite une identification.



s> Pour vous identifier sur le site,
cliquer sur Se connecter
sss s���titles���sDs>s"
(s_print_s_prints _getitem_smemsaffs _getattr_scontext(smems_print_s_prints _getitem_saffs _getattr_scontext((sScript (Python)sstandard_print_headers      (sstandard_print_header(sstandard_print_header((sScript (Python)ssqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_m_selfqUscriptqU name_contextqUcontextqU name_subpathqUtraverse_subpathqUname_containerqU containerq usbU func_codeq!(cShared.DC.Scripts.Signature FuncCode q"oq#}q$(U co_argcountq%KU co_varnamesq&(Umemq'U_print_q(U_printq)U _getitem_q*Uaffq+U _getattr_q,Ucontextq-tq.ubU__ac_local_roles__q/}q0Ugregq1]q2UOwnerq3asUidq4Ustandard_print_headerq5U_paramsq6Umemq7U_dav_writelocksq8(U‚“q9(U Persistenceq:UPersistentMappingq;tq' here_obj=here_obj[elem] """ here_obj=mem['rep_obj'] #~~~~~~~~~ parsing de l'objet courrant ~~~~~~~~~~~~~~~~~~~ parse_obj=here_obj if chemin<>'bui68ddlk44' and chemin<>'': id_list=chemin.split(".") for a in range(len(id_list)): parse_obj=parse_obj[id_list[a]] aff='\n' aff=aff+'' #~~~~~~~~~ cote ~~~~~~~~~~~~~~~~~~~ if cote==1: aff=aff+'' aff=aff+'
' aff=aff+'' aff=aff+'' #aff=aff+'
' aff=aff+' '+parse_obj.getId()+'' aff=aff+'
' for dos in parse_obj.objectIds('Folder'): lieni='' aff=aff+'  '+lieni+' '+lieni+dos+'' aff=aff+'
' aff=aff+'
' aff=aff+'


' aff=aff+'
' #~~~~~~~~~ parsing de l'objet courrant ~~~~~~~~~~~~~~~~~~~ aff=aff+'\n' #~boucle affichage des images last_line=0 n=0 for img in parse_obj.objectValues('Image'): if img.content_type=='image/jpeg' or img.content_type=='image/gif' or img.content_type=='image/png': if n==last_line: aff=aff+'\n' aff=aff+'\n' aff=aff+'\n' n=n+1 if n>last_line+w_line: aff=aff+'\n' aff=aff+'\n' last_line=n aff=aff+'
\n' #aff=aff+'/ n='+str(n)+'/ last_line='+str(last_line)+' / t='+str(last_line+w_line) #if img.width' #else: aff=aff+'
' aff=aff+'' aff=aff+'' aff=aff+'
\n' aff=aff+'' aff=aff+img.getId()[:12]+' '+str(img.width)+'x'+str(img.height) aff=aff+'\n' aff=aff+'
' aff=aff+'
\n' aff=aff+'
' print aff return printed q Utitleq Unoyauq U _filepathqU6Script (Python):/kzexp_zwook/zwo_lib/standard_img_homeqU_codeqT$c@s d„ZdS(NcCsÔtƒ}dkl}|ƒ}t|dƒƒdjodSnd}d}d} d} d } | d} d t |d ƒ}|}|djo |d joTt|d ƒdƒ}x<ttt|ƒƒƒD]}t |t ||ƒƒ}qÉWnd}|d}| djoÄ|d}|d}|d}|dt|dƒƒd}|d}xYtt|dƒdƒƒD]<}d|d}|d|d||d}|d}qnW|d}|d }|d!}n|d"}|d#}d$}d$}x¸tt|d%ƒd&ƒƒD]›}t|d'ƒd(jp)t|d'ƒd)jpt|d'ƒd*joS||jo|d+}|d,}n|d-}|d.}|dt|d/ƒƒd0}|d1t|d/ƒƒd2t|ƒd3t|ƒd4}|d5}|d}|t t|dƒƒdd6…ƒd7tt|d8ƒƒd9tt|d:ƒƒ}|d;}|d<}|d=}|d}||| jo|d>}|d?}|}q§q q W|d@}|d<}||IJ|ƒSdS(AN(sgetSecurityManagerscalledByExecutableisnons bui68ddlk44iKiis#FFFFCCsÔ id_list=context.REQUEST.URL1.split("/") here_obj=context.zwook_obj() #print id_list[4:] #print here_obj.absolute_url() for elem in id_list[4:]: #print here_obj[elem].getId()+'
' here_obj=here_obj[elem] srep_objsssplits.s@ ss<s
ssds; sgetIdss
s objectIdssFolders s   s7 ss
s


s
s3 is objectValuessImages content_types image/jpegs image/gifs image/pngs s6 s$ s s6 s
sv
s absolute_urls">s s2
i s swidthsxsheights s
s
(s_print_s_prints AccessControlsgetSecurityManagersas _getattr_scheminslimgsw_line1scotescouleursw_lines _getitem_smemshere_objs parse_objsid_lists _getiter_srangeslensaffsdosslienis last_linesnsimgsstr(smems_print_s_prints AccessControlsgetSecurityManagersas _getattr_scheminslimgsw_line1scotescouleursw_lines _getitem_shere_objs parse_objsid_lists _getiter_srangeslensaffsdosslienis last_linesnsimgsstr((sScript (Python)sstandard_img_homes~                ?    :  S         (sstandard_img_home(sstandard_img_home((sScript (Python)ssqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_m_selfqUscriptqU name_contextqUcontextqU name_subpathqUtraverse_subpathqUname_containerqU containerq usbU func_codeq!(cShared.DC.Scripts.Signature FuncCode q"oq#}q$(U co_argcountq%KU co_varnamesq&(Umemq'U_print_q(U_printq)U AccessControlq*UgetSecurityManagerq+UaU _getattr_q,Ucheminq-Ulimgq.Uw_line1q/Ucoteq0Ucouleurq1Uw_lineq2U _getitem_q3Uhere_objq4U parse_objq5Uid_listq6U _getiter_q7Urangeq8Ulenq9Uaffq:Udosq;UlieniqUstrq?tq@ubU__ac_local_roles__qA}qBUxavqC]qDUOwnerqEasUidqFUstandard_img_homeqGU_paramsqHUmemqIU_dav_writelocksqJ(U‚JqK(U PersistenceqLUPersistentMappingqMtqNtqOQu.Û ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)U Script_magicq KU_bodyq Tî# Ce script sert a configurer pour un utilisateur la liste de ces groupes. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' r=context.REQUEST r.form['name']=user r.form['password']='password' r.form['confirm']='pconfirm' r.form['roles']=roles r.form['domains']=[] au=context.acl_users au.manage_users('Change',r) return q Utitleq Unoyauq U _filepathqU4Script (Python):/kzexp_zwook/zwo_lib/zwo_user_groupsqU_codeqT¨c@s d„ZdS(Nc Csðdkl}|ƒ}t|dƒƒdjodSnttdƒ}|tt|dƒƒdsqU func_defaultsqNU _proxy_rolesq(UManagerqtqU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_m_selfqUscriptqU name_contextqUcontextqU name_subpathq Utraverse_subpathq!Uname_containerq"U containerq#usbU func_codeq$(cShared.DC.Scripts.Signature FuncCode q%oq&}q'(U co_argcountq(KU co_varnamesq)(Uuserq*Urolesq+U AccessControlq,UgetSecurityManagerq-UaU _getattr_q.Ucontextq/UrU_write_q0Uauq1tq2ubU__ac_local_roles__q3}q4Uxavq5]q6UOwnerq7asUidq8Uzwo_user_groupsq9U_paramsq:U user,rolesq;U_dav_writelocksq<(U‚Kq=(U Persistenceq>UPersistentMappingq?tq@tqAQu.Üü((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)UtitleqUnoyauq U Script_magicq KU_bodyq TV # A partir du parametre tableaux du rep passé en parametre # retourne un tableau de valeurs. #le rep passé en parametre peut être un skin, ou un zwo_dossier. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' ############################################################ #le parametre tableau est un "lines" (une liste de chaine). #chacune des chaines à la syntaxe suivante : #chaine = AB:id:datas # A = "P" signifie propriété # A = "C" signifie contenu # B = "T" signifie tableau # B = "C" signifie case # l'id est T1,T2,T3... pour les tableaux et C1,C2,C3... pour les cases. # datas si A="P": les propriétés sont séparés par le caractere "/" et sont de la forme "nom=valeur" # datas si AB="CT" : contenu de tableau : ids de cases # les lignes d'ids de cases sont séparé par des "/" # les ids des cases dans une même line sont séparé par "-" # exemple C1-C2-C3/C4-C5 # datas si AB="CC" : contenu d'une case : ids d'élément # les ids sont séparé par des "/" # exception : ###### signifie contient la zone d'édition principale # remarque le tableau initial a pour id T1. ############################################################ #la conversion de ce format d'origine en format plus facilement manipulable : des listes et dicos imbriqués. # data, la liste principale contient 4 dictionnaires : ct cc pc pt, qui correspondents aux 4 possibilités de AB. Et à chaque chaine correspond un entrée dans un dictionnaire avec l'id correspondant. #les element des dicos pc et pt, contiennent comme valeur un dictionnaire qui fait correspondre les paramettres au valeurs. #les element des ct, contiennent des listes (d'id de cases) imbriqués dans des listes (correpondant au lignes). exemple [["C1","C2","C3"],["C4","C5"]] #les element des cc, contiennent une liste des id des elements contenus. ############################################################ ############################################################ #initialisation data={} ct={} cc={} pc={} pt={} #parcours du parametre if rep.hasProperty('tableaux'): for l in rep.tableaux: d=l.split(':') if d[0] == 'CT': # chaine ct ct[d[1]] = [i.split('-') for i in d[2].split('/')] elif d[0]=='CC': # chaine cc cc[d[1]]=d[2].split('/') elif d[0]=='PT': # chaine pt e=d[2].split('/') f={} for g in e: h=g.split('=') if len(h)>1: f[h[0]]=h[1] else: f[h[0]]='' pt[d[1]]=f elif d[0]=='PC': # chaine pc e=d[2].split('/') f={} for g in e: h=g.split('=') if len(h)>1: f[h[0]]=h[1] else: f[h[0]]='' pc[d[1]]=f data['ct']=ct data['cc']=cc data['pc']=pc data['pt']=pt return data q Uwarningsq )U _filepathqU/Script (Python):/kzexp_zwook/zwo_lib/tab_to_valqU_codeqTc@s d„ZdS(NcCsbdkl}|ƒ}t|dƒƒdjodSnh}h}h}h}h} t|dƒdƒo¯x¬t t|dƒƒD]‘} t| dƒdƒ} t | d ƒd jokgi}t tt | dƒdƒd ƒƒD]}|t|dƒd ƒƒqÞ~t|ƒt | d ƒsqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_contextqUcontextqU name_subpathqUtraverse_subpathqU name_m_selfqUscriptq usbU_dav_writelocksq!(U‚Lq"(U Persistenceq#UPersistentMappingq$tq%tq&QU__ac_local_roles__q'}q(Uxavq)]q*UOwnerq+asUidq,U tab_to_valq-U_paramsq.Urepq/U func_codeq0(cShared.DC.Scripts.Signature FuncCode q1oq2}q3(U co_argcountq4KU co_varnamesq5(Urepq6U AccessControlq7UgetSecurityManagerq8UaU _getattr_q9Udataq:Uctq;UccqU _getiter_q?UlUdU _getitem_q@UappendqAU$append0qBUiU_write_qCUeUfUgUhUlenqDtqEubu.Ý-((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)U Script_magicq KU_bodyq TO# Ce script sert a effectuer une copie de Folder Zope. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' #FIX BUG ZOPE manage_pasteObjects et manage_clone ne prennent pas en compte les Proxy Roles... #Selon les versions de Zope le bug apparait, disparait, reaparait... #Zope Corp disent que c'est pour des questions de sécurités... #nouvelle fonction : clone_ok def listes_roles(rep,user): l=user.get_local_roles() l0=[] l1=[] for a in l: l0.append(a) l1.append(a) l1.append('Owner') return (l0,l1) def new_roles(liste,rep,username): if len(liste)==0: rep.manage_delLocalRoles([username,]) return else: rep.manage_setLocalRoles(username, liste) return def clone_ok(r1,r2,id,id2=None): if id2==None: id2=id user=context.REQUEST.AUTHENTICATED_USER username=str(user) (l1r2,l2r2)=listes_roles(r2,user) (l1r1,l2r1)=listes_roles(r1,user) new_roles(l2r2,r2,username) if r1.absolute_url()<>r2.absolute_url(): new_roles(l2r1,r1,username) r2.manage_clone(r1[id],id2) new_roles(l1r2,r2,username) if r1.absolute_url()<>r2.absolute_url(): new_roles(l1r1,r1,username) return clone_ok(dep,dest,idobj,idfin) return q Utitleq Unoyauq U _filepathqU,Script (Python):/kzexp_zwook/zwo_lib/zwo_cpyqU_codeqTH c@sed„ZdS(Nc svdkl}|ƒ}t|dƒƒdjodSnd„‰d„‰t‡‡d†} | ||||ƒdSdS(N(sgetSecurityManagerscalledByExecutableisnoncCs|t|dƒƒ}g}g}x:t|ƒD],}t|dƒ|ƒt|dƒ|ƒq+Wt|dƒdƒ||fSdS(Nsget_local_rolessappendsOwner(s _getattr_suserslsl0sl1s _getiter_sa(srepsusers _getattr_slsl0sl1s _getiter_sa((sScript (Python)s listes_roless cCsOt|ƒdjot|dƒ|gƒdSnt|dƒ||ƒdSdS(Nismanage_delLocalRolessmanage_setLocalRoles(slenslistes _getattr_srepsusername(slistesrepsusernameslens _getattr_((sScript (Python)s new_roless  c s|tjo |}ntttdƒdƒ}t|ƒ} ˆ||ƒ\} } ˆ||ƒ\} }ˆ| || ƒt|dƒƒt|dƒƒjoˆ||| ƒnt|dƒt||ƒ|ƒˆ| || ƒt|dƒƒt|dƒƒjoˆ| || ƒndSdS(NsREQUESTsAUTHENTICATED_USERs absolute_urls manage_clone(sid2sNonesids _getattr_scontextsusersstrsusernames listes_rolessr2sl1r2sl2r2sr1sl1r1sl2r1s new_roless _getitem_(sr1sr2sidsid2sNones _getattr_scontextsusersstrsusernames listes_rolessl1r2sl2r2sl1r1sl2r1s new_roless _getitem_(s listes_roless new_roles(sScript (Python)sclone_ok#s   %%( s AccessControlsgetSecurityManagersas _getattr_s listes_roless new_rolessNonesclone_oksdepsdestsidobjsidfin( sdepsdestsidobjsidfins AccessControlsgetSecurityManagersas _getattr_s listes_roless new_rolessNonesclone_ok((s listes_roless new_rolessScript (Python)szwo_cpys   (sNoneszwo_cpy(sNoneszwo_cpy((sScript (Python)ssqU func_defaultsq(NtqU _proxy_rolesq(UManagerqtqU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_m_selfqUscriptqU name_contextqUcontextq U name_subpathq!Utraverse_subpathq"Uname_containerq#U containerq$usbU func_codeq%(cShared.DC.Scripts.Signature FuncCode q&oq'}q((U co_argcountq)KU co_varnamesq*(Udepq+Udestq,Uidobjq-Uidfinq.U AccessControlq/UgetSecurityManagerq0UaU _getattr_q1U listes_rolesq2U new_rolesq3UNoneq4Uclone_okq5tq6ubU__ac_local_roles__q7}q8Uxavq9]q:UOwnerq;asUidqUdep,dest,idobj,idfin=Noneq?U_dav_writelocksq@(U‚MqA(U PersistenceqBUPersistentMappingqCtqDtqEQu.Þ+((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)UtitleqUnoyauq U Script_magicq KU_bodyq T:# ce module ajoute a mem des parametres utile pour la gestion de module. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' #si mem n'existe pas encore, il le crée. if not mem: mem=context.zwo_lib.mem_data() # recuperation du parent, et check pour savoir # si on gere un element dans le skin ou dans edit. url=mem['url'] rep=mem['rep_obj'] dec=url.split('/zwo_info/skins/') rap=string.split(url,'rapidedit.htm') if len(dec)>1 and rap < 1: dec2=dec[1].split('/zwo_bo/skin/') cont=context.zwo_info.skins[dec2[0]] curl1=mem['rep_url']+'/zwo_info/skins/'+dec2[0] curl=curl1+'/zwo_bo/skin/' elif mem.has_key('inskin') and mem['inskin']==1 or (rap > 1 and len(dec)>1): cont=context.zwo_info.skins[rep.zwo_dossier.skin] curl1=mem['rep_url']+'/zwo_info/skins/'+rep.zwo_dossier.skin if rap>1: curl=curl1 else: curl=curl1+'/zwo_bo/skin/' else: cont=rep curl1=rep.absolute_url() curl=curl1+'/zwo_bo/edit/' ### Nouvelle valeur incluse dans mem : # mem['parent'] : conteneur de l'objet (repertoire ou skin) # mem['parent_bo_url'] : url pour atteindre le back office du conteneur mem['parent']=cont mem['parent_bo_url']=curl return mem q Uwarningsq )UidqU mem_mod_dataqU_codeqT[c@sed„ZdS(NcCsVdkl}|ƒ}t|dƒƒdjodSn| otttdƒdƒƒ}nt|dƒ}t|dƒ}t|d ƒd ƒ} tt d ƒ|d ƒ} t | ƒd jo | d jovtt| d ƒd ƒd ƒ} ttttdƒdƒt| dƒƒ}t|dƒd t| dƒ}|d }nðt|dƒdƒot|dƒd jp| d jot | ƒd jottttdƒdƒtt|dƒdƒƒ}t|dƒd tt|dƒdƒ}| d jo |}q.|d }n#|}t|dƒƒ}|d}|t|ƒd<|t|ƒd<|SdS(N(sgetSecurityManagerscalledByExecutableisnonszwo_libsmem_datasurlsrep_objssplits/zwo_info/skins/s rapidedit.htmis /zwo_bo/skin/szwo_infosskinsisrep_urlshas_keysinskins zwo_dossiersskins absolute_urls /zwo_bo/edit/sparents parent_bo_url(s AccessControlsgetSecurityManagersas _getattr_smemscontexts _getitem_surlsrepsdecsstringsrapslensdec2scontscurl1scurls_write_(smems AccessControlsgetSecurityManagersas _getattr_scontexts _getitem_surlsrepsdecsstringsrapslensdec2scontscurl1scurls_write_((sScript (Python)s mem_mod_datas6   * I3)   (sNones mem_mod_data(sNones mem_mod_data((sScript (Python)ssqU func_defaultsq(NtqU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_m_selfqUscriptqU name_contextqUcontextqU name_subpathqUtraverse_subpathqUname_containerq U containerq!usbU func_codeq"(cShared.DC.Scripts.Signature FuncCode q#oq$}q%(U co_argcountq&KU co_varnamesq'(Umemq(U AccessControlq)UgetSecurityManagerq*UaU _getattr_q+Ucontextq,U _getitem_q-Uurlq.Urepq/Udecq0Ustringq1Urapq2Ulenq3Udec2q4Ucontq5Ucurl1q6Ucurlq7U_write_q8tq9ubU__ac_local_roles__q:}q;Uxavq<]q=UOwnerq>asU _filepathq?U1Script (Python):/kzexp_zwook/zwo_lib/mem_mod_dataq@U_paramsqAUmem=NoneqBU_dav_writelocksqC(U‚NqD(U PersistenceqEUPersistentMappingqFtqGtqHQu.ß6((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)UtitleqUnoyauq U Script_magicq KU_bodyq TÙ#Ce script construit la structure de donnée mem. #mem contient les données dont les modules ont besoin. #Cela evite de faire appel au fonctions plusieurs fois #et augmente ainsi les performances. #les codeurs de modules doivent donc l'utiliser au maximum, #plutot que d'aller chercher leurs données dans la ZODB. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' #initialisation mem={} #recuperation de l'url envoyé par le navigateur url=container.REQUEST.URL #recuperation de l'object racine racine=context.acl_obj() #identification repertoire données locales : zwook. zwook=racine.zwook zwo_url=zwook.absolute_url() #analyse de l'url envoye par le navigateur. #list_url : liste des repertoires de l'url. dec=url.split(zwo_url) if len(dec)>1: suite_url=dec[1].split('?')[0] list_url=suite_url.split('/') else: list_url=[] # on determine le repertoire (rep) et l'objet (obj) courrant. rep=zwook obj=zwook b=0 stop=False for a in list_url: if a=="zwo_modules" or a=="zwo_bo": stop=True if not stop: if b==0: b=1 elif b==1: if a in rep.objectIds(): if rep[a].hasProperty("type_zwook"): if rep[a].type_zwook=='dossier': rep=rep[a] obj=rep elif rep[a].type_zwook=='element': obj=rep[a] b=2 #analyse du repertoire courrant. #conf : repertoire de configuration de rep conf=rep.zwo_dossier #zwook_info : repertoire de données délocalisés zwook_info=zwook.zwo_info #on determine le skin (skin) skin_id=conf.skin if skin_id in zwook_info.skins.objectIds('Folder'): skin=zwook_info.skins[skin_id] else: skin_id='default' skin=zwook_info.skins['default'] if context.REQUEST.has_key('impose_skin'): skin_id=context.REQUEST.impose_skin skin=zwook_info.skins[skin_id] #### info utilisateurs #on recupere mes informations utilisateurs #initialisation username='Inconnu' user=None zwuser=None list_roles=[] dr_vue=0 dr_edit=0 dr_skin=0 dr_arbo=0 dr_conf=0 user_avatar='0.gif' avatar=zwo_url+'/zwo_info/images/avatar/0.gif' #donnée liés au repertoire (pour les droits locaux) s_list_v=conf.groupes_visiteurs s_list_a=conf.groupes_editeurs list_v=string.split(s_list_v+'&'+s_list_a,'&') list_a=s_list_a.split('&') #test si l'utilisateur est connecté if str(context.REQUEST.AUTHENTICATED_USER)=='Anonymous User': #si l'utilisateur est annonyme, on regarde si le dossier permete : # - qu'il accede au contenu if 'Anonymous' in list_v: dr_vue=1 # - qu'il puisse edité le contenu if 'Anonymous' in list_a: dr_edit=1 else: ##### si l'utilisateur est connecté : #recup user zope user=context.REQUEST.AUTHENTICATED_USER #recup login de l'utilisateur username=user.getUserName() #Test si l'utilisateur est bien un user zwook, if not username in zwook.zwo_info.users.objectIds('Folder'): #l'utilisateur est connecté donc user zope #mais il n'est pas user zwook #la fonction retourne None pour permettre de detecter le probleme. return #recupertation d'un avatar, si il existe. if zwook.zwo_info.users[username].hasProperty('avatar'): if zwook.zwo_info.users[username].avatar in zwook.zwo_info.images.avatar.objectIds(): user_avatar=zwook.zwo_info.users[username].avatar avatar=zwo_url+'/zwo_info/images/avatar/'+user_avatar #list_roles : recuperation des groupes zwook (c'est a dire les roles zopes) userrolestuple=user.getRolesInContext(racine) for a in userrolestuple: if not a in list_roles: if str(a)==a: list_roles.append(a) #recuperation user zwook zwuser=context.zwo_info.users[username] #on determine les droits de lecture et ecriture sur le repertoire for a in list_v: if a<>'': if a in list_roles: dr_vue=1 for a in list_a: if a<>'': if a in list_roles: dr_edit=1 #check droit de configuration if 'config_zwook' in list_roles: dr_conf=1 dr_skin=1 dr_arbo=1 #check d'edition de skin if 'skin_editor' in list_roles: dr_skin=1 #check manage page. if 'pages_manager' in list_roles: dr_arbo=1 ############################################################## ### RECAPITULATIF DES VALEURS DE MEM #################### ############################################################## ################################### ## Gestion des objects et urls ################################### # url : url demandée par le navigateur. # la racine est le repertoire qui contient tout le zwook. # racine_obj : object racine du zwook. # racine_url : url de la racine du zwook. # zwook_obj : object qui contient les données localisés du zwook. # zwook_url : url qui contient les données localisés du zwook. # c'est a dire l'url du site. #rep_obj : repertoire qui contient l'objet de la requete url. #rep_url : url de ce repertoire. #rep_id : id (nom zope) de ce repertoire. #rep_toi : titre ou id de ce repertoire. #obj_obj : object visé par la requete url. #obj_id : id (nom zope) de cet objet. ####Exemple simple : http://serveur.test:8080/myzwook/zwook/rubrique #mem['url']=http://serveur.test:8080/myzwook//zwook/rubrique/index_html #mem['racine_url']=http://serveur.test:8080/myzwook #mem['zwo_url']=http://serveur.test:8080/myzwook/zwook #mem['rep_url']=http://serveur.test:8080/myzwook/zwook/rubrique ####Exemple back office : http://serveur.test:8080/myzwook/zwook/rubrique/zwo_bo/edit/index_html #mem['url']=http://serveur.test:8080/myzwook/zwo_bo/edit/zwook/rubrique/index_html #mem['racine_url']=http://serveur.test:8080/myzwook #mem['zwo_url']=http://serveur.test:8080/myzwook/zwook #mem['rep_url']=http://serveur.test:8080/myzwook/zwook/rubrique ####Exemple domaine mappé : http://www.domaine.com/rubrique #mem['url']=http://www.domaine.com/rubrique/index_html #mem['racine_url']=http://www.domaine.com #mem['zwo_url']=http://www.domaine.com #mem['rep_url']=http://www.domaine.com/rubrique mem['url']=url mem['racine_obj']=racine mem['racine_url']=racine.absolute_url() mem['zwo_obj']=zwook mem['zwo_url']=zwo_url mem['rep_obj']=rep mem['rep_url']=rep.absolute_url() mem['rep_id']=rep.getId() mem['rep_toi']=rep.title_or_id() mem['obj_obj']=obj mem['obj_id']=obj.getId() ################################### ## gestion des utilisateurs ################################### # mem['user_obj'] : Object user zope (acl_user) # mem['user_zw_obj'] : Object user zwook (zwo_info/users/nom) # mem['user_id'] : login du user # mem['user_roles_id'] : liste des roles zope de l'utilisateur (groupes) # mem['user_avatar_url'] : url pour afficher l'avatar de l'utilisateur mem['user_obj']=user mem['user_zw_obj']=zwuser mem['user_id']=username mem['user_roles_id']=list_roles mem['user_avatar_url']=avatar ################################### ## object utiles ################################### #mem['config_obj'] : objet info du repertoire conteneur (zwo_dossier) #mem['zwo_info'] : donnée délocalisé du zwook (zwo_info) mem['config_obj']=conf mem['zwo_info']=zwook_info ################################### ## skin ################################### #mem['skin_id'] : id (nom zope) du skin #mem['skin_obj'] : objet du skin mem['skin_id']=skin_id mem['skin_obj']=skin ################################### ## droits utilisateur ################################### # 0 : pas le droit # 1 : droit OK #mem['droit_vue_dossier'] : droit de voir le contenu du dossier #mem['droit_edit_dossier'] : droit d'éditer le contenu du dossier #mem['droit_arbo'] : droit d'administrer les dossiers #mem['droit_edit_skin'] : droit edition de skin #mem['droit_config_dossier'] : droit administration zwook. mem['droit_vue_dossier']=dr_vue mem['droit_edit_dossier']=dr_edit mem['droit_arbo']=dr_arbo mem['droit_edit_skin']=dr_skin mem['droit_config_dossier']=dr_conf return mem q Uwarningsq )U _filepathqU-Script (Python):/kzexp_zwook/zwo_lib/mem_dataqU_codeqT„c@s d„ZdS(Nc/9CsRdkl}|ƒ}t|dƒƒdjodSnh}tttdƒdƒ}ttdƒƒ}t|dƒ} t| d ƒƒ} t|d ƒ| ƒ} t | ƒd jo@t tt | d ƒd ƒd ƒd ƒ}t|d ƒdƒ}ng}| }| }d }t}xt|ƒD]}|djp |djo t}n| oÜ|d jo d }q)|d jo´|t|dƒƒjo—tt ||ƒdƒdƒottt ||ƒdƒdjot ||ƒ}|}qtt ||ƒdƒdjot ||ƒ}d}qq!q%q)qqWt|dƒ}t| dƒ}t|dƒ}|tt|dƒdƒdƒjot t|dƒ|ƒ}nd}t t|dƒdƒ}tttdƒdƒdƒo4tttdƒdƒ}t t|dƒ|ƒ}nd}t}t}g}d } d }!d }"d }#d }$d}%| d }&t|d!ƒ}'t|d"ƒ}(tt)d ƒ|'d#|(d#ƒ}*t|(d ƒd#ƒ}+t,tttdƒd$ƒƒd%jo2d&|*jo d } nd&|+jo d }!q-n2tttdƒd$ƒ}t|d'ƒƒ}|ttt| dƒd(ƒdƒdƒj odSntt tt| dƒd(ƒ|ƒdƒd)ƒoŠtt tt| dƒd(ƒ|ƒd)ƒtttt| dƒd*ƒd)ƒdƒƒjo.tt tt| dƒd(ƒ|ƒd)ƒ}%qn| d+|%}&t|d,ƒ|ƒ}-xPt|-ƒD]B}||j o.t,|ƒ|jot|d-ƒ|ƒqŠqHqHWt tttdƒd(ƒ|ƒ}x<t|*ƒD].}|d.jo||jo d } qêq¼q¼Wx<t|+ƒD].}|d.jo||jo d }!q)qûqûWd/|jod }$d }"d }#nd0|jo d }"nd1|jo d }#n|t.|ƒd2<|t.|ƒd3<|t.|ƒd?<|t.|ƒd@<|t.|ƒdA<|t.|ƒdB<|&t.|ƒdC<|t.|ƒdD<|t.|ƒd<|t.|ƒdE<|t.|ƒdF<| t.|ƒdG<|!t.|ƒdH<|#t.|ƒdI<|"t.|ƒdJ<|$t.|ƒdK<|SdS(LN(sgetSecurityManagerscalledByExecutableisnonsREQUESTsURLsacl_objszwooks absolute_urlssplitis?is/s zwo_modulesszwo_bos objectIdss hasPropertys type_zwooksdossierselements zwo_dossierszwo_infosskinsskinssFoldersdefaultshas_keys impose_skinsInconnus0.gifs/zwo_info/images/avatar/0.gifsgroupes_visiteurssgroupes_editeurss&sAUTHENTICATED_USERsAnonymous Users Anonymouss getUserNamesuserssavatarsimagess/zwo_info/images/avatar/sgetRolesInContextsappendss config_zwooks skin_editors pages_managersurls racine_objs racine_urlszwo_objszwo_urlsrep_objsrep_urlsgetIdsrep_ids title_or_idsrep_toisobj_objsobj_idsuser_objs user_zw_objsuser_ids user_roles_idsuser_avatar_urls config_objsskin_idsskin_objsdroit_vue_dossiersdroit_edit_dossiers droit_arbosdroit_edit_skinsdroit_config_dossier(/s AccessControlsgetSecurityManagersas _getattr_smems containersurlscontextsracineszwookszwo_urlsdecslens _getitem_s suite_urlslist_urlsrepsobjsbsFalsesstops _getiter_sTruesconfs zwook_infosskin_idsskinsusernamesNonesuserszwusers list_rolessdr_vuesdr_editsdr_skinsdr_arbosdr_confs user_avatarsavatarss_list_vss_list_asstringslist_vslist_asstrsuserrolestuples_write_(/s AccessControlsgetSecurityManagersas _getattr_smems containersurlscontextsracineszwookszwo_urlsdecslens _getitem_s suite_urlslist_urlsrepsobjsbsFalsesstops _getiter_sTruesconfs zwook_infosskin_idsskinsusernamesNonesuserszwusers list_rolessdr_vuesdr_editsdr_skinsdr_arbosdr_confs user_avatarsavatarss_list_vss_list_asstringslist_vslist_asstrsuserrolestuples_write_((sScript (Python)smem_datasö  '      %  %   /%X2 !            (  (smem_data(smem_data((sScript (Python)ssqU func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_m_selfqUscriptqU name_subpathqUtraverse_subpathqU name_contextqUcontextq usbU_dav_writelocksq!(U‚Oq"(U Persistenceq#UPersistentMappingq$tq%tq&QU__ac_local_roles__q'}q(Uxavq)]q*UOwnerq+asUidq,Umem_dataq-U_paramsq.UU func_codeq/(cShared.DC.Scripts.Signature FuncCode q0oq1}q2(U co_argcountq3KU co_varnamesq4(U AccessControlq5UgetSecurityManagerq6UaU _getattr_q7Umemq8U containerq9Uurlq:Ucontextq;UracineqUdecq?Ulenq@U _getitem_qAU suite_urlqBUlist_urlqCUrepqDUobjqEUbUFalseqFUstopqGU _getiter_qHUTrueqIUconfqJU zwook_infoqKUskin_idqLUskinqMUusernameqNUNoneqOUuserqPUzwuserqQU list_rolesqRUdr_vueqSUdr_editqTUdr_skinqUUdr_arboqVUdr_confqWU user_avatarqXUavatarqYUs_list_vqZUs_list_aq[Ustringq\Ulist_vq]Ulist_aq^Ustrq_Uuserrolestupleq`U_write_qatqbubu.àN((U OFS.FolderqUFolderqtqNt.}q(Uepoz_lang_ru.js.dtmlq(U‚Pq(UOFS.DTMLDocumentqU DTMLDocumentqtq tq QUepoz_script_mainq (U‚Qq (hU DTMLDocumentq tqtqQUepoz_toolbox.ptq(U‚jq(U'Products.PageTemplates.ZopePageTemplateqUZopePageTemplateqtqtqQUepoz_button_image.gifq(U‚Sq(U OFS.ImageqUImageqtqtqQUepoz_lang_fi.js.dtmlq(U‚tq(hU DTMLDocumentqtqtq QUepoz_button_hr.gifq!(U‚Tq"(hUImageq#tq$tq%QUepoz_button_table.gifq&(U‚Vq'(hUImageq(tq)tq*QUepoz_script_detectq+(U‚xq,(hU DTMLDocumentq-tq.tq/QUepoz_lang_hu.js.dtmlq0(U‚Xq1(hU DTMLDocumentq2tq3tq4QUidq5Uepozq6Uepoz_lang_es.js.dtmlq7(U‚Zq8(hU DTMLDocumentq9tq:tq;QUepoz_button_anchor.gifq<(U‚[q=(hUImageq>tq?tq@QUepoz_button_hyperlink.gifqA(U‚\qB(hUImageqCtqDtqEQUepoz_button_tools.gifqF(U‚]qG(hUImageqHtqItqJQUtitleqKUUepoz_button_subscript.gifqL(U‚^qM(hUImageqNtqOtqPQUepoz_button_strikethrough.gifqQ(U‚_qR(hUImageqStqTtqUQUepoz_script_color.htmlqV(U‚`qW(hU DTMLDocumentqXtqYtqZQUwysiwyg_support.ptq[(U‚Yq\(hUZopePageTemplateq]tq^tq_QUepoz_lang_zh-cn.js.dtmlq`(U‚aqa(hU DTMLDocumentqbtqctqdQU epoz_lang_frqe(U‚bqf(hU DTMLDocumentqgtqhtqiQUepoz_button_textcolor.gifqj(U‚cqk(hUImageqltqmtqnQUepoz_button_unformat.gifqo(U‚dqp(hUImageqqtqrtqsQU vcXMLRPC.jsqt(U‚equ(hU DTMLDocumentqvtqwtqxQU_objectsqy(}qz(U meta_typeq{UImageq|h5hUOwnerr?ash~(U‚€r@(hUImagerAtrBtrCQu.â1((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)U Script_magicq KU_bodyq UQmem=context.zwo_lib.mem_data() return context.zwo_lib.standard_html_header(mem) q U_codeq T”c@s d„ZdS(NcCs;tttdƒdƒƒ}tttdƒdƒ|ƒSdS(Nszwo_libsmem_datasstandard_html_header(s _getattr_scontextsmem(s _getattr_scontextsmem((sScript (Python)s get_headers(s get_header(s get_header((sScript (Python)ssq U func_defaultsqNU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(U name_contextqUcontextqU name_subpathqUtraverse_subpathqU name_m_selfqUscriptqUname_containerqU containerqusbU__ac_local_roles__q}qUjamesq]q UOwnerq!asUidq"U get_headerq#U_paramsq$UU func_codeq%(cShared.DC.Scripts.Signature FuncCode q&oq'}q((U co_argcountq)KU co_varnamesq*(U _getattr_q+hUmemq,tq-ubu.ãG((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U_Take_ownership_Permissionq(UManagerqU config_zwookqtqU_bodyq TS#script qui sert a obliger l'administrateur a changer de password #lors de sa premiere connection. # Le module AccessControl permet de rendre le script inaccessible # en utilisant directement le navigateur. from AccessControl import getSecurityManager a=getSecurityManager() if a.calledByExecutable()<2: return 'non' #Check si user admin existe bien. if not 'admin' in mem["racine_obj"].zwo_info.users.objectIds(): #si il existe pas, mise a jour du flag checkpasswd #qui indique que le passwd a déja été modifié. if mem["racine_obj"].zwo_info.hasProperty('checkpasswd'): mem["racine_obj"].zwo_info.manage_delProperties(['checkpasswd']) mem["racine_obj"].zwo_info.manage_addProperty('checkpasswd',1,'int') context.REQUEST.RESPONSE.redirect(mem["zwo_url"]) return #verifie le user est administrateur du zwook. if not 'config_zwook' in mem['user_roles_id']: #Sinon Message indiquant la marche a suivre pour se reconnecter avec le user admin. print '

Bienvenue Zwookien

' print 'Acces non authorisé : vous êtes connecté avec votre utilisateur zope !

' print 'Méthode a suivre :
' print ' 1) Eteignez tous vos navigateurs pour vous déconnecter
' print ' 2) Connectez sur l\'url : '+mem['zwo_url']+'
' print ' 3) Utiliser le login "admin" et le mot de passe "admin".
' print ' 4) Suivre les instructions pour changer le mot de passe.
' print 'Bonne chance.
' print '' return printed #~ check droits rep zwook #~ ############# checkup roles ############ mem['zwo_obj'].manage_role('Anonymous',permissions=[]) mem['zwo_obj'].manage_role('Authenticated',permissions=[]) mem['zwo_obj'].manage_role('Manager',permissions=[]) mem['zwo_obj'].manage_role('config_zwook',permissions=[]) #Affiche le link vers le modificateur de password de admin. print '

Bienvenue Zwookien

' print '

Outil de première configuation :

' print 'Pour pouvoir activer votre zwook, changer votre mot de passe !' print '' return printed q U_WebDAV_access_Permissionq (hhtq U_View_History_Permissionq (hhtqU_Change_bindings_Permissionq(hhtqU'_Access_contents_information_Permissionq(hhtqUidqUzwo_initialise_passwordqU func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_argcountqKU co_varnamesq(UmemqU_print_qU_printqU AccessControlqUgetSecurityManagerqUaU _getattr_q U _getitem_q!Ucontextq"tq#ubU!_Change_Python_Scripts_Permissionq$(hhtq%Uerrorsq&)U_Delete_objects_Permissionq'(hhtq(U Script_magicq)KU_codeq*T¤c@s d„ZdS(Nc )Csƒtƒ}dkl}|ƒ}t|dƒƒdjodSndtttt|dƒdƒdƒd ƒƒj oµttt|dƒdƒd ƒd ƒo,ttt|dƒdƒd ƒd gƒnttt|dƒdƒd ƒd ddƒttttdƒdƒdƒt|dƒƒdSndt|dƒj ov|dIJ|dIJ|dIJ|dIJ|dt|dƒdIJ|dIJ|dIJ|dIJ|dIJ|ƒSntt|d ƒd!ƒd"d#gƒtt|d ƒd!ƒd$d#gƒtt|d ƒd!ƒd%d#gƒtt|d ƒd!ƒdd#gƒ|dIJ|d&IJ|d't|dƒd(IJ|dIJ|ƒSdS()N(sgetSecurityManagerscalledByExecutableisnonsadmins racine_objszwo_infosuserss objectIdss hasPropertys checkpasswdsmanage_delPropertiessmanage_addPropertyisintsREQUESTsRESPONSEsredirectszwo_urls config_zwooks user_roles_ids'

Bienvenue Zwookien

sRAcces non authorisé : vous êtes connecté avec votre utilisateur zope !

sMéthode a suivre :
s= 1) Eteignez tous vos navigateurs pour vous déconnecter
s 2) Connectez sur l'url : s
s? 3) Utiliser le login "admin" et le mot de passe "admin".
s? 4) Suivre les instructions pour changer le mot de passe.
sBonne chance.
sszwo_objs manage_roles Anonymouss permissionss AuthenticatedsManagers)

Outil de première configuation :

s+Pour pouvoir activer votre zwook, changer votre mot de passe !( s_print_s_prints AccessControlsgetSecurityManagersas _getattr_s _getitem_smemscontext( smems_print_s_prints AccessControlsgetSecurityManagersas _getattr_s _getitem_scontext((sScript (Python)szwo_initialise_passwords<   >(,+%        """   (szwo_initialise_password(szwo_initialise_password((sScript (Python)ssq+U_View_Permissionq,(hhtq-U Python_magicq.U;ò q/Uwarningsq0)U_Change_proxy_roles_Permissionq1(hhtq2U_Copy_or_Move_Permissionq3(hhtq4U#_View_management_screens_Permissionq5(hhtq6U!_Change_cache_settings_Permissionq7(hhtq8U _filepathq9U