ZEXPïݧ((U OFS.FolderqUFolderqtqNt.}q(U+_Open_Close_Database_Connections_Permissionq(UManagerqU config_zwookqtqUzwo_libq (UïÞq (hUFolderq ttQU_View_History_Permissionq (U Anonymousq U AuthenticatedqhhtqU_Add_Page_Templates_Permissionq(hhtqU!_Import_Export_objects_Permissionq(hhtqU#_Manage_ZCatalog_Entries_Permissionq(hhtqU_Add_Zope_Tutorials_Permissionq(hhtqU __ac_roles__q(hUOwnerqh hhtqU_Add_Vocabularies_Permissionq(hhtqU_Edit_Factories_Permissionq(hhtqUtitleqUU zwo_modulesq (Uïßq!(hUFolderq"ttQU_Manage_Z_Classes_Permissionq#(hhtq$U_Delete_objects_Permissionq%(h hhhtq&U_Add_Versions_Permissionq'(hhtq(U _Use_Database_Methods_Permissionq)(hhhtq*U#_Change_External_Methods_Permissionq+(hhtq,U_Copy_or_Move_Permissionq-(h hhhtq.U_Change_Versions_Permissionq/(hhtq0U(_Manage_ZCatalogIndex_Entries_Permissionq1(hhtq2U"_Create_class_instances_Permissionq3(hhtq4Uzwo_boq5(Uïàq6(hUFolderq7ttQU(_Save_discard_Version_changes_Permissionq8(hhtq9U_Manage_users_Permissionq:(hhtq;U _Add_Temporary_Folder_Permissionq<(hhtq=U_Add_Python_Scripts_Permissionq>(hhtq?U_Define_permissions_Permissionq@]qA(h heU'_Change_Session_Data_Manager_PermissionqB(hhtqCU!_Change_cache_managers_PermissionqD(hhtqEU-_Add_Z_Gadfly_Database_Connections_PermissionqF(hhtqGU/_Add_Accelerated_HTTP_Cache_Managers_PermissionqH(hhtqIU._Access_arbitrary_user_session_data_PermissionqJ(hhtqKU _Log_to_the_Event_Log_PermissionqL(hhtqMU index_htmlqN(UïáqO(U#Products.PythonScripts.PythonScriptqPU PythonScriptqQttQU_Search_ZCatalog_PermissionqR(h hhhtqSU%_Add_Virtual_Host_Monsters_PermissionqT(hhtqUU _Change_configuration_PermissionqV(hhtqWU_Add_Folders_PermissionqX(hhtqYU_Manage_Vocabulary_PermissionqZ(hhtq[U!_Change_Python_Scripts_Permissionq\(hhtq]U_Use_external_editor_Permissionq^(hhtq_U$_Create_Transient_Objects_Permissionq`(hhtqaU zwo_imagesqb(Uïâqc(hUFolderqdttQU_Change_DTML_Methods_Permissionqe(hhtqfU_Access_session_data_Permissionqg(h hhhtqhU _Add_MailHost_objects_Permissionqi(hhtqjU__allow_groups__qk(Uïãql(UAccessControl.UserqmU UserFolderqnttQU_Query_Vocabulary_Permissionqo(h hhhtqpU_Add_Pluggable_Index_Permissionqq(hhtqrU type_zwookqsUsystemqtU_Add_User_Folders_Permissionqu(hhtqvU_objectsqw(}qx(U meta_typeqyU DTML DocumentqzUidq{Utest_connectionq|u}q}(U meta_typeq~UFolderqUidq€Uzwo_infoqu}q‚(U meta_typeqƒUScript (Python)q„Uidq…Uacl_objq†u}q‡(U meta_typeqˆUScript (Python)q‰UidqŠhNu}q‹(U meta_typeqŒU User FolderqUidqŽU acl_usersqu}q(U meta_typeq‘U DTML Documentq’Uidq“UCOPYINGq”u}q•(U meta_typeq–UFolderq—Uidq˜Uzwo_libq™u}qš(U meta_typeq›UFolderqœUidqUzwo_boqžu}qŸ(h›hœhhbu}q (U meta_typeq¡UFolderq¢Uidq£U zwo_modulesq¤u}q¥(U meta_typeq¦U Mail Hostq§Uidq¨UMailHostq©u}qª(U meta_typeq«UFolderq¬Uidq­Uzwookq®utq¯U*_Add_Transient_Object_Container_Permissionq°(hhtq±U_query_Permissionq²]q³(h hhheU_Change_proxy_roles_Permissionq´(hhtqµU"_Add_Browser_Id_Manager_Permissionq¶(hhtq·U!_Change_cache_settings_Permissionq¸(hhtq¹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_Change_bindings_PermissionqÊ(hhtqËUacl_objqÌ(UïäqÍ(hPU PythonScriptqÎttQU%_Test_Database_Connections_PermissionqÏ(hhtqÐUsystemqÑUracineqÒU$_Access_Transient_Objects_PermissionqÓ(h hhhtqÔ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ã(h hhhtqäU#_Change_Database_Methods_Permissionqå(hhtqæU _Add_Database_Methods_Permissionqç(hhtqèU_Manage_properties_Permissionqé(hhtqêU_Add_ChatItems_Permissionqë(h hhtqìUzwo_infoqí(Uïæqî(hUFolderqïttQh(hl(hmU UserFolderqðttQU%_Change_Browser_Id_Manager_Permissionqñ(hhtqòU,_Add_Documents__Images__and_Files_Permissionqó(hhtqôU_FTP_access_Permissionqõ(hhtqöU_Use_Factories_Permissionq÷(hhtqøU'_Change_Database_Connections_Permissionqù(hhtqúh©(Uïçqû(UProducts.MailHost.MailHostqüUMailHostqýttQUCOPYINGqþ(Uïèqÿ(hÝU DTMLDocumentrttQU'_Access_contents_information_Permissionr(h hhhtrU#_Change_Images_and_Files_Permissionr(hhtrUidrUzwook_active_rc4rU"_Add_RAM_Cache_Managers_Permissionr(hhtrU#_Change_Lock_Information_Permissionr (hhtr U_Join_leave_Versions_Permissionr (hhtr U_View_Permissionr (h hhhtrU_WebDAV_Unlock_items_Permissionr(htrh®(Uïér(hUFolderrttQU__ac_local_roles__r}rU!_Change_DTML_Documents_Permissionr(hhtrU_Undo_changes_Permissionr(h hhtrU_ownerr(]rU acl_usersraUadminrtrU_Manage_Access_Rules_Permissionr(hhtrU _propertiesr (}r!(Utyper"Ustringr#Uidr$Utitler%Umoder&Uwu}r'(j"Ustringr(j$U type_zwookr)u}r*(j"Ustringr+j$Usystemr,utr-U_Change_permissions_Permissionr.(hhtr/U_Add_ZRTChats_Permissionr0(h hhtr1u.ïÞ ((U OFS.FolderqUFolderqtqNt.}q(Uzwo_droits_folderq(Uïêq(U#Products.PythonScripts.PythonScriptqU PythonScriptqttq QUparseq (Uïëq (hUFolderq ttq QUstandard_print_headerq(Uðq(hU PythonScriptqttqQUstandard_img_homeq(Uïìq(hU PythonScriptqttqQUidqUzwo_libqUzwo_user_groupsq(Uïíq(hU PythonScriptqttqQU tab_to_valq(Uïîq(hU PythonScriptqttqQUzwo_cpyq (Uïïq!(hU PythonScriptq"ttq#QU mem_mod_dataq$(Uïðq%(hU PythonScriptq&ttq'QUmem_dataq((Uïñq)(hU PythonScriptq*ttq+QUtitleq,Unoyau - bibliothequeq-Usystemq.Ulibq/U type_zwookq0Usystemq1U_objectsq2(}q3(U meta_typeq4UScript (Python)q5Uidq6U mix_id_zopeq7u}q8(U meta_typeq9UScript (Python)q:Uidq;hu}q<(U meta_typeq=UScript (Python)q>Uidq?U mem_mod_dataq@u}qA(U meta_typeqBUScript (Python)qCUidqDUmem_dataqEu}qF(U meta_typeqGUScript (Python)qHUidqIU secure_skinqJu}qK(U meta_typeqLUScript (Python)qMUidqNUzwo_droits_folderqOu}qP(U meta_typeqQUScript (Python)qRUidqSUzwo_cpyqTu}qU(hQhRhSU zwo_renameqVu}qW(hQhRhSUzwo_user_groupsqXu}qY(hQhRhSUstandard_img_footerqZu}q[(hQhRhSUstandard_img_headerq\u}q](hQhRhShu}q^(hQhRhSUstandard_print_footerq_u}q`(hQhRhShu}qa(hQhRhSUstandard_print_homeqbu}qc(U meta_typeqdUScript (Python)qeUidqfUzwo_initialise_passwordqgu}qh(U meta_typeqiUScript (Python)qjUidqkUcheck_edit_repqlu}qm(U meta_typeqnUScript (Python)qoUidqpUstandard_html_footerqqu}qr(hnhohpUstandard_html_headerqsu}qt(hnhohpUstandard_html_homequu}qv(U meta_typeqwUFolderqxUidqyUinstallqzu}q{(hwUScript (Python)q|hyUstandard_minimal_footerq}u}q~(hwh|hyUstandard_minimal_headerqu}q€(U meta_typeqUFolderq‚UidqƒUparseq„utq…hg(Uïòq†(hU PythonScriptq‡ttqˆQUinstallq‰(UïýqŠ(hUFolderq‹ttqŒQh\(Uïôq(hU PythonScriptqŽttqQhZ(Uïõq(hU PythonScriptq‘ttq’QUstandard_html_footerq“(Uïöq”(hU PythonScriptq•ttq–QUstandard_html_homeq—(Uï÷q˜(hU PythonScriptq™ttqšQU secure_skinq›(Uïøqœ(hU PythonScriptqttqžQU zwo_renameqŸ(Uïùq (hU PythonScriptq¡ttq¢Qhb(Uïúq£(hU PythonScriptq¤ttq¥Qh_(Uïûq¦(hU PythonScriptq§ttq¨QU mix_id_zopeq©(Uïüqª(hU PythonScriptq«ttq¬QUstandard_minimal_headerq­(Uïóq®(hU PythonScriptq¯ttq°QU _propertiesq±(}q²(Utypeq³Ustringq´hh,UmodeqµUwu}q¶(h³Ustringq·hh0u}q¸(h³Ustringq¹hUsystemqºutq»Ustandard_minimal_footerq¼(Uïþq½(hU PythonScriptq¾ttq¿Qhl(UïÿqÀ(hU PythonScriptqÁttqÂQU__ac_local_roles__qÃ}qÄUstandard_html_headerqÅ(UðqÆ(hU PythonScriptqÇtqÈtqÉQu.ïßE((U OFS.FolderqUFolderqtqNt.}q(Uwebshellq(Uðq(hUFolderqttqQUflashq (Uðq (hUFolderq ttq QU rss_readerq (Uðq(hUFolderqttqQUexample_moduleq(Uð&q(hUFolderqttqQUtextq(Uðq(hUFolderqttqQUimageq(Uðq(hUFolderqttqQU album_photoq(Uðq(hUFolderqttq QU text_epozq!(Uðq"(hUFolderq#ttq$QU kzexpmenuq%(Uð q&(hUFolderq'ttq(QU folderbarq)(Uð q*(hUFolderq+ttq,QUfileq-(Uð q.(hUFolderq/ttq0QUtotalq1(Uð q2(U#Products.PythonScripts.PythonScriptq3U PythonScriptq4ttq5QUtodoq6(Uð q7(hUFolderq8ttq9QUidq:U zwo_modulesq;U list_linksq<(Uðq=(hUFolderq>ttq?QUforums_historyq@(UðqA(hUFolderqBttqCQU documentsqD(UðqE(hUFolderqFttqGQU preferencesqH(UðqI(hUFolderqJttqKQUscriptqL(UðqM(hUFolderqNttqOQU news_historyqP(UðqQ(hUFolderqRttqSQUannuaire_liensqT(UðqU(hUFolderqVttqWQUsystemqXUlibqYU catalogueqZ(Uðq[(hUFolderq\ttq]QU minicalendarq^(Uð'q_(hUFolderq`ttqaQU type_zwookqbUsystemqcUtitreqd(Uðqe(hUFolderqfttqgQU login_managerqh(Uðqi(hUFolderqjttqkQU directfriendsql(Uðqm(hUFolderqnttqoQUtraitqp(Uðqq(hUFolderqrttqsQUbrowsing_modesqt(Uðqu(hUFolderqvttqwQU_objectsqx(}qy(U meta_typeqzUScript (Python)q{Uidq|Utotalq}u}q~(U meta_typeqUFolderq€UidqU kzexpmenuq‚u}qƒ(U meta_typeq„UFolderq…Uidq†U folderbarq‡u}qˆ(h„h…h†Uscriptq‰u}qŠ(U meta_typeq‹UFolderqŒUidqUforumqŽu}q(h‹hŒhU documentsqu}q‘(h‹hŒhhu}q’(U meta_typeq“UFolderq”Uidq•htu}q–(h“h”h•U mesevenementsq—u}q˜(h“h”h•h^u}q™(h“h”h•U calendrierqšu}q›(h“h”h•U speedblogqœu}q(U meta_typeqžUFolderqŸUidq U locatebarq¡u}q¢(U meta_typeq£UFolderq¤Uidq¥Urecherche_googleq¦u}q§(U meta_typeq¨UFolderq©UidqªUtitreq«u}q¬(U meta_typeq­UFolderq®Uidq¯h u}q°(U meta_typeq±UFolderq²Uidq³Uimageq´u}qµ(U meta_typeq¶UFolderq·Uidq¸hZu}q¹(U meta_typeqºUFolderq»Uidq¼U directfriendsq½u}q¾(U meta_typeq¿UFolderqÀUidqÁUsubmited_monitorqÂu}qÃ(U meta_typeqÄUFolderqÅUidqÆh(hUFolderr?tr@trAQU navigationrB(Uð%rC(hUFolderrDttrEQu.ïà´((U OFS.FolderqUFolderqtqNt.}q(Uautourq(Uð+q(U#Products.PythonScripts.PythonScriptqU PythonScriptqtq tq QU choixcouleurq (Uð4q (hU PythonScriptq tqtqQUtitleqUnoyau : back officeqUadminq(Uð,q(hUFolderqtqtqQUmenuq(Uð-q(hU PythonScriptqtqtqQUskinq(Uð0q(hUFolderqtqtq QU presentationq!(Uð3q"(hU PythonScriptq#tq$tq%QU configboxq&(Uð.q'(hU PythonScriptq(tq)tq*QUeditq+(Uð/q,(hUFolderq-tq.tq/QU type_zwookq0Usystemq1U _propertiesq2(}q3(Utypeq4Ustringq5Uidq6Utitleq7Umodeq8Uwu}q9(h4Ustringq:h6U type_zwookq;utq(hUFolderq?tq@tqAQU_objectsqB(}qC(U meta_typeqDUFolderqEUidqFUadminqGu}qH(U meta_typeqIUScript (Python)qJUidqKUmenuqLu}qM(U meta_typeqNUScript (Python)qOUidqPUeditionqQu}qR(U meta_typeqSUScript (Python)qTUidqUU configboxqVu}qW(U meta_typeqXUScript (Python)qYUidqZh u}q[(U meta_typeq\UFolderq]Uidq^Uskinq_u}q`(U meta_typeqaUScript (Python)qbUidqcU presentationqdu}qe(hahbhcUautourqfu}qg(U meta_typeqhUFolderqiUidqjUarboqku}ql(U meta_typeqmUFolderqnUidqoUeditqputqqhQ(Uð2qr(hU PythonScriptqstqttquQU__ac_local_roles__qv}qwhFUzwo_boqxu.ïá((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ð5q;(U Persistenceqtq?Qu.ïâ((U OFS.FolderqUFolderqtqNt.}q(UtitleqUnoyau - imagesqUboq(Uð6q(hUFolderq tq tq QUmodulesq (Uð7q (hUFolderqtqtqQUsystemqUdataqU pixel.gifq(Uð8q(U OFS.ImageqUImageqtqtqQU type_zwookqUsystemqU _propertiesq(}q(UtypeqUstringqUidqhUmodeq Uwu}q!(hUstringq"hU type_zwookq#u}q$(hUstringq%hUsystemq&utq'U_objectsq((}q)(U meta_typeq*UImageq+hhu}q,(U meta_typeq-UFolderq.Uidq/hu}q0(U meta_typeq1UFolderq2Uidq3Umodulesq4utq5U__ac_local_roles__q6}q7hU zwo_imagesq8u.ïã£((UAccessControl.UserqU UserFolderqtqNt.}q(U__ac_local_roles__q}qUadminq]qUOwnerq asUdataq (Uð9q (U Persistenceq UPersistentMappingq tqtqQu.ïä((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)UtitleqUnoyauq U Script_magicq KU_bodyq T# Ce script sert a récuperer l'objet ou l'url de la racine du zwook. # Pour fonctionner, il doit être placé à la racine. # Il ne faut donc pas le déplacer. # 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 il existe un parametre url, acl_obj renvoie l'url, sinon, acl_obj renvoie l'objet. if url: return container.absolute_url() else: return container q Uwarningsq )U _filepathqU$Script (Python):/kzexp_zwook/acl_objqU_codeqTLc@sed„ZdS(NcCsZdkl}|ƒ}t|dƒƒdjodSn|ottdƒƒSntSdS(N(sgetSecurityManagerscalledByExecutableisnons absolute_url(s AccessControlsgetSecurityManagersas _getattr_surls container(surls AccessControlsgetSecurityManagersas _getattr_s container((sScript (Python)sacl_objs  (sNonesacl_obj(sNonesacl_obj((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_dav_writelocksq"(Uð:q#(U Persistenceq$UPersistentMappingq%tq&tq'QU__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asUidq-Uacl_objq.U_paramsq/Uurl=Noneq0U func_codeq1(cShared.DC.Scripts.Signature FuncCode q2oq3}q4(U co_argcountq5KU co_varnamesq6(Uurlq7U AccessControlq8UgetSecurityManagerq9UaU _getattr_q:U containerq;tq ">




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 Persistenceq2UPersistentMappingq3tq4tq5QU_WebDAV_Unlock_items_Permissionq6(htq7U_Manage_properties_Permissionq8(htq9U_WebDAV_Lock_items_Permissionq:(htq;U_Undo_changes_Permissionq<(htq=U_Manage_WebDAV_Locks_Permissionq>(htq?U _propertiesq@(}qA(UtypeqBUstringqCUidqDUtitleqEUmodeqFUwu}qG(hBUstringqHhDU type_zwookqIu}qJ(hBUstringqKhDUsystemqLutqMU_Change_permissions_PermissionqN(htqOU__ac_local_roles__qP}qQu.ïæ ((U OFS.FolderqUFolderqtqNt.}q(Uusersq(Uðq*(hUFolderq+ttQUsystemq,Udataq-Usiteq.Uzwook_active_rc4q/Ustandby_contentq0(Uð?q1(hUFolderq2ttQU type_zwookq3Usystemq4Ugroupsq5(Uð@q6(hUFolderq7ttQh$KUimagesq8(UðAq9(hUFolderq:ttQU_objectsq;(}q<(U meta_typeq=UFolderq>Uidq?Uusersq@u}qA(h=h>h?UgroupsqBu}qC(U meta_typeqDUFolderqEUidqFUimagesqGu}qH(U meta_typeqIUFolderqJUidqKUcssqLu}qM(hIhJhKhu}qN(hIhJhKUskinsqOu}qP(hIhJhKUstandby_contentqQu}qR(U meta_typeqSUFolderqTUidqUh)utqVUskinsqW(UðBqX(hUFolderqYttQU__ac_local_roles__qZ}q[Uemailq\Uwebmaster@localhostq]Ucssq^(UðCq_(hUFolderq`ttQu.ïçÀ((UProducts.MailHost.MailHostqUMailHostqtqNt.}q(UtitleqUMailHost du siteqU smtp_portqKU smtp_hostqU localhostq U__ac_local_roles__q }q Uadminq ]q UOwnerqasUidqUMailHostqu.ïèï((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_zwookqtqU_View_History_Permissionq (hU Authenticatedq U Anonymousq htq U_Add_Page_Templates_Permissionq (htqU!_Import_Export_objects_Permissionq(hh h tqU#_Manage_ZCatalog_Entries_Permissionq(hhtqU_Add_Zope_Tutorials_Permissionq(htqU!_Manage_XML_Transforms_Permissionq(UManagerqtqU __ac_roles__q(hUOwnerqU AnonymousqU AuthenticatedqtqU_Add_Vocabularies_Permissionq(hhtqU_Edit_Factories_Permissionq(hhtq Utitleq!UAccueilq"U _Use_Database_Methods_Permissionq#(hhtq$U_Manage_Z_Classes_Permissionq%(hhtq&U_Delete_objects_Permissionq'(hh h htq(U_Add_Versions_Permissionq)(htq*U scriptpythonq+(UðDq,(hUFolderq-ttQUtitre_dernier_articlesq.(UðEq/(hUFolderq0ttQU type_zwookq1Usystemq2U_Change_user_folder_Permissionq3(htq4U_Copy_or_Move_Permissionq5(hh h htq6U!_Add_ZODB_Mount_Points_Permissionq7(htq8U_Change_Versions_Permissionq9(htq:U#_Change_Database_Methods_Permissionq;(hhtqU(_Save_discard_Version_changes_Permissionq?(htq@U_Is_Membre_PermissionqA(UManagerqBtqCU_Manage_users_PermissionqD(htqEU _Add_Temporary_Folder_PermissionqF(htqGU_Add_Python_Scripts_PermissionqH(htqIU albumphotosqJ(UðFqK(hUFolderqLttQU_Define_permissions_PermissionqM(htqNU'_Change_Session_Data_Manager_PermissionqO(htqPU!_Change_cache_managers_PermissionqQ(htqRU-_Add_Z_Gadfly_Database_Connections_PermissionqS(hhtqTU_Add_XML_Transforms_PermissionqU(htqVU._Access_arbitrary_user_session_data_PermissionqW(hU AnonymousqXU AuthenticatedqYU config_zwookqZU skin_editorq[U pages_managerq\tq]U _Log_to_the_Event_Log_Permissionq^(htq_Uliensq`(UðLqa(hUFolderqbttQU_Search_ZCatalog_Permissionqc(hh h htqdU%_Add_Virtual_Host_Monsters_Permissionqe(htqfU _Change_configuration_Permissionqg(hhtqhU_Add_Folders_Permissionqi(hh h htqjU_Manage_Vocabulary_Permissionqk(hhtqlU!_Change_Python_Scripts_Permissionqm(htqnU_Use_external_editor_Permissionqo(hhtqpU$_Create_Transient_Objects_Permissionqq(hhtqrU_Change_DTML_Methods_Permissionqs(hhtqtU_Access_session_data_Permissionqu(hhXhYhZh[h\tqvU _Add_MailHost_objects_Permissionqw(hhtqxU,_Add_Z_MySQL_Database_Connections_Permissionqy(htqzU_Query_Vocabulary_Permissionq{(hh h htq|Uversionq}U 1.0beta4cq~U_Add_Pluggable_Index_Permissionq(htq€U#_Change_External_Methods_Permissionq(htq‚U_Add_User_Folders_Permissionqƒ(htq„U_objectsq…(}q†(U meta_typeq‡UFolderqˆUidq‰U zwo_dossierqŠu}q‹(U meta_typeqŒUFolderqUidqŽh`u}q(U meta_typeqUFolderq‘Uidq’U actualitesq“u}q”(hh‘h’U newshistoryq•u}q–(hh‘h’Uforumsq—u}q˜(hh‘h’hJu}q™(hh‘h’U texte_introqšu}q›(hh‘h’Utitre_bienvenueqœu}q(hh‘h’h.u}qž(hh‘h’U scriptpythonqŸu}q (U meta_typeq¡UImageq¢Uidq£U image.gifq¤u}q¥(U meta_typeq¦UFolderq§Uidq¨U forumshistoryq©u}qª(U meta_typeq«UFolderq¬Uidq­Ucontactq®utq¯U*_Add_Transient_Object_Container_Permissionq°(hh h tq±U/_Add_Accelerated_HTTP_Cache_Managers_Permissionq²(htq³U_Change_proxy_roles_Permissionq´(htqµUstandby_contentq¶U1U"_Add_Browser_Id_Manager_Permissionq·(htq¸U!_Change_cache_settings_Permissionq¹(htqºU!_Edit_ReStructuredText_Permissionq»(htq¼U)_Add_XSL_Transformer_Registrys_Permissionq½(htq¾U_WebDAV_Lock_items_Permissionq¿(UManagerqÀtqÁU-_Manage_Transient_Object_Container_PermissionqÂ(hh h htqÃh“(UðGqÄ(hUFolderqÅttQU_Manage_WebDAV_Locks_PermissionqÆ(hhtqÇU!_Change_Page_Templates_PermissionqÈ(hhtqÉU$_Add_Session_Data_Manager_PermissionqÊ(htqËU_Add_TestXav_objects_PermissionqÌ(hBtqÍU*_Open_Close_Database_Connection_PermissionqÎ(hhtqÏU%_Change_Browser_Id_Manager_PermissionqÐ(htqÑU_Take_ownership_PermissionqÒ(hhtqÓU_WebDAV_access_PermissionqÔ(hÀtqÕU*_Add_ReStructuredText_Documents_PermissionqÖ(htq×U_Change_bindings_PermissionqØ(htqÙU,_Add_XML_Transform_Cache_Managers_PermissionqÚ(htqÛUforumsqÜ(UðIqÝ(hUFolderqÞttQU%_Test_Database_Connections_Permissionqß(hhtqàUsystemqáUracineqâU$_Access_Transient_Objects_Permissionqã(hhXhYhZh[h\tqäU_Log_Site_Errors_Permissionqå(htqæU&_Manage_XML_Transform_Cache_Permissionqç(htqèhœ(UðJqé(hUFolderqêttQU_Add_Site_Roots_Permissionqë(htqìU _Add_External_Methods_Permissionqí(htqîhš(UðKqï(hUFolderqðttQU_Add_ZCatalogs_Permissionqñ(hhtqòU#_View_management_screens_Permissionqó(hhtqôU!_Use_mailhost_services_Permissionqõ(hh h htqöU(_Manage_ZCatalogIndex_Entries_Permissionq÷(hhtqøU _Add_Database_Methods_Permissionqù(hhtqúU_Manage_properties_Permissionqû(hh h htqüU_Add_ChatItems_Permissionqý(UManagerqþU config_zwookqÿtrU zwo_dossierr(UðHr(hUFolderrttQU,_Add_Documents__Images__and_Files_Permissionr(hh h htrU_FTP_access_Permissionr(hh h htrU_Use_Factories_Permissionr(hhtr U'_Change_Database_Connections_Permissionr (hhtr U!_Change_DTML_Documents_Permissionr (hh h htr U'_Access_contents_information_Permissionr(hhXhYhZh[h\trU#_Change_Images_and_Files_Permissionr(hh h htrh•(UðMr(hUFolderrttQUidrUzwookrU#_Add_BZP_Serveur_objects_Permissionr(hBtrU image.gifr(UðNr(U OFS.ImagerUImagerttQU"_Add_RAM_Cache_Managers_Permissionr(htrU#_Change_Lock_Information_Permissionr(hhtrU_View_Permissionr (hh h htr!h©(UðOr"(hUFolderr#ttQU_WebDAV_Unlock_items_Permissionr$(hÀtr%U_Edit_Permissionr&(htr'U__ac_local_roles__r(}r)(Uadminr*]r+(Uadminr,(UOwnerr-ttr.aUjamesr/]r0(Uadminr1(UOwnerr2ttr3aUgregr4]r5(Uxavr6(UOwnerr7ttr8aUxavr9]r:(Uxavr;(UOwnerr<ttr=auU_Join_leave_Versions_Permissionr>(htr?U_Undo_changes_Permissionr@(hh h htrAUcontactrB(UðPrC(hUFolderrDttQU_Manage_Access_Rules_PermissionrE(hhtrFU _propertiesrG(}rH(UtyperIUstringrJUidrKUtitlerLUmoderMUwu}rN(jIUstringrOjKU type_zwookrPu}rQ(jIUstringrRjKUsystemrSu}rT(UtyperUUstringrVUidrWh¶u}rX(UtyperYUstringrZUidr[Uversionr\utr]U_Change_permissions_Permissionr^(hhtr_U_Add_ZRTChats_Permissionr`(hþtrau.ïê#‚((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ðQq%(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(UtitleqUU_objectsq(}q(U meta_typeqUFolderq Uidq Urssq utq U__ac_local_roles__q }qUjamesq]qUOwnerqash UparseqUrssq(UðRq(hUFolderqttQu.ð Æ((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ðgq9(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ðSqK(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ðTq=(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ðUq"(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ðVqA(U PersistenceqBUPersistentMappingqCtqDtqEQu.ïð ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U Python_magicqU;ò qUerrorsq)Uwarningsq)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/') if len(dec)>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: cont=context.zwo_info.skins[rep.zwo_dossier.skin] curl1=mem['rep_url']+'/zwo_info/skins/'+rep.zwo_dossier.skin 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 Utitleq Unoyauq U _filepathqU1Script (Python):/kzexp_zwook/zwo_lib/mem_mod_dataqU_codeqTÁc@sed„ZdS(NcCsúdkl}|ƒ}t|dƒƒdjodSn| otttdƒdƒƒ}nt|dƒ}t|dƒ}t|d ƒd ƒ} t | ƒd jovtt| d ƒd ƒd ƒ} ttttd ƒdƒt| dƒƒ} t|dƒd t| dƒ} | d }n¹t|dƒdƒot|dƒd jojttttd ƒdƒtt|dƒdƒƒ} t|dƒd tt|dƒdƒ} | d }n#|} t|dƒƒ} | d}| t|ƒd<|t|ƒd<|SdS(N(sgetSecurityManagerscalledByExecutableisnonszwo_libsmem_datasurlsrep_objssplits/zwo_info/skins/is /zwo_bo/skin/szwo_infosskinsisrep_urlshas_keysinskins zwo_dossiersskins absolute_urls /zwo_bo/edit/sparents parent_bo_url(s AccessControlsgetSecurityManagersas _getattr_smemscontexts _getitem_surlsrepsdecslensdec2scontscurl1scurls_write_(smems AccessControlsgetSecurityManagersas _getattr_scontexts _getitem_surlsrepsdecslensdec2scontscurl1scurls_write_((sScript (Python)s mem_mod_datas0  * )3) (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(Uname_containerqU containerqU name_m_selfqUscriptqU name_subpathqUtraverse_subpathqU name_contextq Ucontextq!usbU_dav_writelocksq"(UðWq#(U Persistenceq$UPersistentMappingq%tq&tq'QU__ac_local_roles__q(}q)Uxavq*]q+UOwnerq,asUidq-U mem_mod_dataq.U_paramsq/Umem=Noneq0U func_codeq1(cShared.DC.Scripts.Signature FuncCode q2oq3}q4(U co_argcountq5KU co_varnamesq6(Umemq7U AccessControlq8UgetSecurityManagerq9UaU _getattr_q:Ucontextq;U _getitem_qUdecq?Ulenq@Udec2qAUcontqBUcurl1qCUcurlqDU_write_qEtqFubu.ïñ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ðXq"(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.ïò7((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U_Take_ownership_Permissionq(UManagerqU config_zwookqtqU_bodyq T+#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 #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|ƒSn|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.
ss)

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_passwords4   >(,+%            (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