Re: Re[4]: [Zope-dev] moment when zope was started.

2005-11-09 Thread Lennart Regebro
On 11/9/05, Victor Safronovich [EMAIL PROTECTED] wrote:
   Ok, i need to replace zpublisher_validate_hook with my hook.
[...]
 _afterValidateHook do many thinks specific to the portal such as
 1. Sets response charset according to the user's selected language.
 2. Replaces HTML-encoded entities with their corresponding characters in the 
 POST form data.
 3. Changes system locale according to the portal language.

 Ok, 2. and 3. can be moved to UserFolder.validate method, which PAS used.
 But  1.  uses getSecurityManager through
 Products.CMFCore.utils._getAuthenticatedUser   through
 MembershipTool.{isAnonymousUser,getAuthenticatedMember}, and must be
 executed  after  the  Zope`s  zpublisher_validate_hook  hook,  which  setted 
 new
 security manager.

OK, fine, I don't know if there is another way of doing this, so I'll
assume your way is the best (although it's complicated).

But you say you want to know when the server was started. How does
that come into any of the above things? None of those have anything to
do with how long the server has been running.

You are just giving us small disassociated pieces of information, and
then you assume that we should read your mind for the rest of the
needed information. It doesn't work like that.

http://www.catb.org/~esr/faqs/smart-questions.html
--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] moment when zope was started.

2005-11-09 Thread Chris Withers

Victor Safronovich wrote:

_afterValidateHook do many thinks specific to the portal such as
1. Sets response charset according to the user's selected language.


Why not just do this is a normal traversal hook such as an access rule?


2. Replaces HTML-encoded entities with their corresponding characters in the 
POST form data.


Incomign POST form data? Why not just munge the data when you get it 
from the request in your application?



3. Changes system locale according to the portal language.


Can be done in an access rule...

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] moment when zope was started.

2005-11-08 Thread Chris Withers

Victor Safronovich wrote:

  My Product wants to replace zpublisher_validate_hook in Zope2.__init__.


Why on earth would you want to do that?!

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re[2]: [Zope-dev] moment when zope was started.

2005-11-08 Thread Victor Safronovich
Hello Chris Withers,

Tuesday, November 8, 2005, 1:26:29 PM, you wrote:

CW Why on earth would you want to do that?!
   :) my product needs to do some specific things, right after the user
   is authenticated and becomes known. hook is hook and it may be overloaded
   as with zpublisher_exception_hook.

-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ru

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] moment when zope was started.

2005-11-08 Thread Tino Wildenhain

Victor Safronovich schrieb:

Hello Chris Withers,

Tuesday, November 8, 2005, 1:26:29 PM, you wrote:

CW Why on earth would you want to do that?!
   :) my product needs to do some specific things, right after the user
   is authenticated and becomes known. hook is hook and it may be overloaded
   as with zpublisher_exception_hook.


You might want to look at userfolder implementation, for example PAS.
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re[2]: [Zope-dev] moment when zope was started.

2005-11-08 Thread Victor Safronovich
Hello Tino Wildenhain,

Tuesday, November 8, 2005, 4:29:39 PM, you wrote:

TW You might want to look at userfolder implementation, for example PAS.
Thank you, i look at it, but this is another story ;).

-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ru

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] moment when zope was started.

2005-11-08 Thread Tino Wildenhain

Victor Safronovich schrieb:

Hello Tino Wildenhain,

Tuesday, November 8, 2005, 4:29:39 PM, you wrote:

TW You might want to look at userfolder implementation, for example PAS.
Thank you, i look at it, but this is another story ;).


Now you should tell us what you are really doing here :-)
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re[2]: [Zope-dev] moment when zope was started.

2005-11-08 Thread Victor Safronovich
Hello Tino Wildenhain,

Tuesday, November 8, 2005, 5:56:25 PM, you wrote:

TW Now you should tell us what you are really doing here :-)
Subject: Re: [Zope-dev] moment when zope was started.
   /\
 want to know   |
  -/


  
-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ru

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: Re[2]: [Zope-dev] moment when zope was started.

2005-11-08 Thread Lennart Regebro
On 11/8/05, Victor Safronovich [EMAIL PROTECTED] wrote:
 Hello Tino Wildenhain,

 Tuesday, November 8, 2005, 5:56:25 PM, you wrote:

 TW Now you should tell us what you are really doing here :-)
 Subject: Re: [Zope-dev] moment when zope was started.
/\
  want to know   |

Yeah, but he asked for what you are trying to do, not what you want to
know. We can't help you if we don't know what you are trying to do.
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re[4]: [Zope-dev] moment when zope was started.

2005-11-08 Thread Victor Safronovich
Hello Lennart Regebro,

Tuesday, November 8, 2005, 6:43:23 PM, you wrote:

LR Yeah, but he asked for what you are trying to do, not what you want to
LR know. We can't help you if we don't know what you are trying to do.
  Ok, i need to replace zpublisher_validate_hook with my hook.
  my hook:

def zpublisher_validated_hook( REQUEST, user ):
Zope._nau_zpublisher_validated_hook( REQUEST, user ) # old validate hook

published = self.PUBLISHED
published = getattr(published, 'im_self', published)
portal = published.getPortalObject()
if hasattr( portal, '_afterValidateHook' ):
portal._afterValidateHook( user, published, REQUEST )

_afterValidateHook do many thinks specific to the portal such as
1. Sets response charset according to the user's selected language.
2. Replaces HTML-encoded entities with their corresponding characters in the 
POST form data.
3. Changes system locale according to the portal language.

Ok, 2. and 3. can be moved to UserFolder.validate method, which PAS used.
But  1.  uses getSecurityManager through
Products.CMFCore.utils._getAuthenticatedUser   through
MembershipTool.{isAnonymousUser,getAuthenticatedMember}, and must be
executed  after  the  Zope`s  zpublisher_validate_hook  hook,  which  setted new
security manager.

-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ru

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] moment when zope was started.

2005-11-07 Thread Chris Withers

Victor Safronovich wrote:


   But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its value to
   True, because Zope2.Startup.start_zope was never called, instead of that 
called
   Zope2.Startup.run.run function.


This sounds like a bug, but why do you want to know this?

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re[2]: [Zope-dev] moment when zope was started.

2005-11-07 Thread Victor Safronovich
Hello Chris Withers,

Monday, November 7, 2005, 8:15:58 PM, you wrote:

CW Victor Safronovich wrote:
 
But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its 
 value to
True, because Zope2.Startup.start_zope was never called, instead of that 
 called
Zope2.Startup.run.run function.

CW This sounds like a bug, but why do you want to know this?
  My Product wants to replace zpublisher_validate_hook in Zope2.__init__.
  Formerly I use the code

  class ZPValidateHookReplacer(Thread):
  def run(self):
  while not Zope.Startup.started: # in 2.8 'Zope' module must be 
replaced to Zope2
  time.sleep(0.5)
  Zope.zpublisher_validate_hook = my_validate_hook
  ZPValidateHookReplacer().start()

  in  Zope  2.8  this  code  was broken because Zope.Startup.started always 
False. I
  changed  to new repeat condition while Zope.zpublisher_validate_hook is 
None: time.sleep(0.5)
  But what if others use Zope.Startup.started variable?

-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ru

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] moment when zope was started.

2005-11-07 Thread Victor Safronovich
VSHow could i find the moment when zope was started in Zope 2.8?
VSin  Zope  2.7  was the variable 'Zope.Startup.started', which setted to 
True when
VSzope was started.

VSBut in Zope 2.8 the variable 'Zope2.Startup.started' not changed its 
value to
VSTrue, because Zope2.Startup.start_zope was never called, instead of that 
called
VSZope2.Startup.run.run function.
   this may be fixed like in attachment.

-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ruIndex: __init__.py
===
--- __init__.py (revision 39858)
+++ __init__.py (working copy)
@@ -28,13 +28,17 @@
 
 logger = logging.getLogger(Zope)
 started = False
+starter = None
 
 def get_starter():
-check_python_version()
-if sys.platform[:3].lower() == win:
-return WindowsZopeStarter()
-else:
-return UnixZopeStarter()
+global starter
+if starter is None:
+check_python_version()
+if sys.platform[:3].lower() == win:
+starter = WindowsZopeStarter()
+else:
+starter = UnixZopeStarter()
+return starter
 
 def start_zope(cfg, debug_handler):
 The function called by run.py which starts a Zope appserver.
@@ -47,11 +51,11 @@
 starter.setConfiguration(cfg)
 starter.prepare()
 
-started = True
+starter.start()
 try:
 starter.run()
 finally:
-started = False
+starter.finish()
 
 
 class ZopeStarter:
@@ -59,6 +63,8 @@
 
 Making it a class makes it easier to test.
 
+started = False
+
 def __init__(self):
 self.event_logger = logging.getLogger()
 # We log events to the root logger, which is backed by a
@@ -81,6 +87,14 @@
 def setConfiguration(self, cfg):
 self.cfg = cfg
 
+def start(self):
+global started
+self.started = started = True
+ 
+def finish(self)
+global started
+self.started = started = False
+
 def prepare(self):
 self.setupInitialLogging()
 self.setupLocale()
Index: run.py
===
--- run.py  (revision 39858)
+++ run.py  (working copy)
@@ -15,11 +15,7 @@
 def run():
  Start a Zope instance 
 import Zope2.Startup
-starter = Zope2.Startup.get_starter()
-opts = _setconfig()
-starter.setConfiguration(opts.configroot)
-starter.prepare()
-starter.run()
+Zope2.Startup.start_zope(_setconfig().configroot, None)
 
 def configure(configfile):
  Provide an API which allows scripts like zopectl to configure
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] moment when zope was started.

2005-11-02 Thread Victor Safronovich
Hello zope-dev!

   How could i find the moment when zope was started in Zope 2.8?
   in  Zope  2.7  was the variable 'Zope.Startup.started', which setted to True 
when
   zope was started.

   But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its value to
   True, because Zope2.Startup.start_zope was never called, instead of that 
called
   Zope2.Startup.run.run function.

-- 
Best regards,
 Victor Safronovich
 NauMen.NauDoc.SoftwareDeveloper  http://www.naumen.ru

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )