changeset 597:53128b6b9a4d rhodecode-0.0.1.0.0rc4

added password validation, second try on paster setup-app, docs update, and fixed beaker cache settings in ini files.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 12 Oct 2010 23:17:25 +0200
parents ae5e3dafc02c
children bbd2b7521827
files development.ini docs/changelog.rst docs/setup.rst production.ini rhodecode/config/deployment.ini_tmpl rhodecode/lib/db_manage.py
diffstat 6 files changed, 86 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
--- a/development.ini	Tue Oct 12 22:27:10 2010 +0200
+++ b/development.ini	Tue Oct 12 23:17:25 2010 +0200
@@ -47,26 +47,27 @@
 ####################################
 ###         BEAKER CACHE        ####
 ####################################
- beaker.cache.data_dir=/%(here)s/data/cache/data
- beaker.cache.lock_dir=/%(here)s/data/cache/lock
- beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
- beaker.cache.long_term.type=memory
- beaker.cache.long_term.expire=36000
+beaker.cache.data_dir=/%(here)s/data/cache/data
+beaker.cache.lock_dir=/%(here)s/data/cache/lock
+beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
 
- beaker.cache.short_term.type=memory
- beaker.cache.short_term.expire=60
+beaker.cache.super_short_term.type=memory
+beaker.cache.super_short_term.expire=10
+
+beaker.cache.short_term.type=memory
+beaker.cache.short_term.expire=60
 
- beaker.cache.super_short_term.type=memory
- beaker.cache.super_short_term.expire=10
- 
- beaker.cache.sql_cache_short.type=memory
- beaker.cache.sql_cache_short.expire=5
- 
- beaker.cache.sql_cache_med.type=memory
- beaker.cache.sql_cache_med.expire=360
- 
- beaker.cache.sql_cache_long.type=file
- beaker.cache.sql_cache_long.expire=3600
+beaker.cache.long_term.type=memory
+beaker.cache.long_term.expire=36000
+
+beaker.cache.sql_cache_short.type=memory
+beaker.cache.sql_cache_short.expire=5
+
+beaker.cache.sql_cache_med.type=memory
+beaker.cache.sql_cache_med.expire=360
+
+beaker.cache.sql_cache_long.type=file
+beaker.cache.sql_cache_long.expire=3600
 
 ####################################
 ###       BEAKER SESSION        ####
--- a/docs/changelog.rst	Tue Oct 12 22:27:10 2010 +0200
+++ b/docs/changelog.rst	Tue Oct 12 23:17:25 2010 +0200
@@ -8,6 +8,9 @@
 - fixed python2.5 missing simplejson imports (thanks to Jens Bäckman)
 - removed cache_manager settings from sqlalchemy meta
 - added sqlalchemy cache settings to ini files
+- validated password length and added second try of failure on paster setup-app
+- fixed setup database destroy prompt even when there was no db
+
 
 1.0.0rc3 (**2010-10-11**)
 
--- a/docs/setup.rst	Tue Oct 12 22:27:10 2010 +0200
+++ b/docs/setup.rst	Tue Oct 12 23:17:25 2010 +0200
@@ -17,7 +17,7 @@
 
 ::
 
- paster setup-app production.ini` 
+ paster setup-app production.ini
 
 - This command will create all needed tables and an admin account. 
   When asked for a path You can either use a new location of one with already 
--- a/production.ini	Tue Oct 12 22:27:10 2010 +0200
+++ b/production.ini	Tue Oct 12 23:17:25 2010 +0200
@@ -47,26 +47,27 @@
 ####################################
 ###         BEAKER CACHE        ####
 ####################################
- beaker.cache.data_dir=/%(here)s/data/cache/data
- beaker.cache.lock_dir=/%(here)s/data/cache/lock
- beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
- beaker.cache.long_term.type=memory
- beaker.cache.long_term.expire=36000
+beaker.cache.data_dir=/%(here)s/data/cache/data
+beaker.cache.lock_dir=/%(here)s/data/cache/lock
+beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
 
- beaker.cache.short_term.type=memory
- beaker.cache.short_term.expire=60
+beaker.cache.super_short_term.type=memory
+beaker.cache.super_short_term.expire=10
+
+beaker.cache.short_term.type=memory
+beaker.cache.short_term.expire=60
 
- beaker.cache.super_short_term.type=memory
- beaker.cache.super_short_term.expire=10
- 
- beaker.cache.sql_cache_short.type=memory
- beaker.cache.sql_cache_short.expire=5
- 
- beaker.cache.sql_cache_med.type=memory
- beaker.cache.sql_cache_med.expire=360
- 
- beaker.cache.sql_cache_long.type=file
- beaker.cache.sql_cache_long.expire=3600
+beaker.cache.long_term.type=memory
+beaker.cache.long_term.expire=36000
+
+beaker.cache.sql_cache_short.type=memory
+beaker.cache.sql_cache_short.expire=5
+
+beaker.cache.sql_cache_med.type=memory
+beaker.cache.sql_cache_med.expire=360
+
+beaker.cache.sql_cache_long.type=file
+beaker.cache.sql_cache_long.expire=3600
 
 ####################################
 ###       BEAKER SESSION        ####
--- a/rhodecode/config/deployment.ini_tmpl	Tue Oct 12 22:27:10 2010 +0200
+++ b/rhodecode/config/deployment.ini_tmpl	Tue Oct 12 23:17:25 2010 +0200
@@ -48,26 +48,27 @@
 ####################################
 ###         BEAKER CACHE        ####
 ####################################
- beaker.cache.data_dir=/%(here)s/data/cache/data
- beaker.cache.lock_dir=/%(here)s/data/cache/lock
- beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
- beaker.cache.long_term.type=memory
- beaker.cache.long_term.expire=36000
+beaker.cache.data_dir=/%(here)s/data/cache/data
+beaker.cache.lock_dir=/%(here)s/data/cache/lock
+beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
 
- beaker.cache.short_term.type=memory
- beaker.cache.short_term.expire=60
+beaker.cache.super_short_term.type=memory
+beaker.cache.super_short_term.expire=10
+
+beaker.cache.short_term.type=memory
+beaker.cache.short_term.expire=60
 
- beaker.cache.super_short_term.type=memory
- beaker.cache.super_short_term.expire=10
- 
- beaker.cache.sql_cache_short.type=memory
- beaker.cache.sql_cache_short.expire=5
- 
- beaker.cache.sql_cache_med.type=memory
- beaker.cache.sql_cache_med.expire=360
- 
- beaker.cache.sql_cache_long.type=file
- beaker.cache.sql_cache_long.expire=3600
+beaker.cache.long_term.type=memory
+beaker.cache.long_term.expire=36000
+
+beaker.cache.sql_cache_short.type=memory
+beaker.cache.sql_cache_short.expire=5
+
+beaker.cache.sql_cache_med.type=memory
+beaker.cache.sql_cache_med.expire=360
+
+beaker.cache.sql_cache_long.type=file
+beaker.cache.sql_cache_long.expire=3600
 
 ####################################
 ###       BEAKER SESSION        ####
--- a/rhodecode/lib/db_manage.py	Tue Oct 12 22:27:10 2010 +0200
+++ b/rhodecode/lib/db_manage.py	Tue Oct 12 23:17:25 2010 +0200
@@ -56,7 +56,6 @@
         log.info('checking for existing db in %s', db_path)
         if os.path.isfile(db_path):
             self.db_exists = True
-            log.info('database exist')
             if not override:
                 raise Exception('database already exists')
 
@@ -65,7 +64,7 @@
         Create a auth database
         """
         self.check_for_db(override)
-        if override:
+        if self.db_exists:
             log.info("database exist and it's going to be destroyed")
             if self.tests:
                 destroy = True
@@ -79,15 +78,33 @@
         meta.Base.metadata.create_all(checkfirst=checkfirst)
         log.info('Created tables for %s', self.dbname)
     
-    def admin_prompt(self):
+    def admin_prompt(self, second=False):
         if not self.tests:
             import getpass
+            
+            
+            def get_password():
+                password = getpass.getpass('Specify admin password (min 6 chars):')
+                confirm = getpass.getpass('Confirm password:')
+            
+                if password != confirm:
+                    log.error('passwords mismatch')
+                    return False
+                if len(password) < 6:
+                    log.error('password is to short use at least 6 characters')
+                    return False
+                                
+                return password
+            
             username = raw_input('Specify admin username:')
-            password = getpass.getpass('Specify admin password:')
-            confirm = getpass.getpass('Confirm password:')
-            if password != confirm:
-                log.error('passwords mismatch')
-                sys.exit()
+            
+            password = get_password()
+            if not password:
+                #second try
+                password = get_password()
+                if not password:
+                    sys.exit()
+                
             email = raw_input('Specify admin email:')
             self.create_user(username, password, email, True)
         else: