Changeset 24

Show
Ignore:
Timestamp:
2008年07月29日 22时43分59秒 (4 years ago)
Author:
jiangx
Message:

Fix #6: Backup authz file using rcs command; Check authz using svn swig python;

Location:
trunk
Files:
2 added
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/pysvnmanager/controllers/authz.py

    r22 r24  
    146146        else: 
    147147            isAddModule = False 
     148 
     149        log_message = _(u"User %(user)s changed authz rules. (rev:%(rev)s)") % \ 
     150                 {'user':session.get('user'), 'rev': revision} 
    148151 
    149152        try: 
     
    173176            if module: 
    174177                self.authz.set_rules(reposname, path, rules); 
    175             self.authz.save(revision) 
    176         except Exception, (e,): 
    177             msg = unicode(e).encode('utf-8') 
    178  
    179         log.info(_(u"User %(user)s changed authz rules. (rev:%(rev)s,%(msg)s)") % \ 
    180                  {'user':session.get('user'), 'rev': revision, 'msg': msg} ) 
     178            self.authz.save(revision, comment=log_message) 
     179        except Exception, e: 
     180            msg = get_unicode(e[0]) 
     181 
     182        log.info(log_message) 
     183        if msg: log.error(msg) 
    181184         
    182185        return msg 
     
    195198        revision  = d.get('revision', self.authz.version) 
    196199         
     200        log_message = _(u"User %(user)s delete authz rules. (rev:%(rev)s)") % \ 
     201                         {'user':session.get('user'), 'rev': revision} 
    197202        try: 
    198203            self.authz.del_module(reposname, path); 
    199             self.authz.save(revision) 
    200         except Exception, (e,): 
    201             msg = unicode(e).encode('utf-8') 
    202          
    203         log.info(_(u"User %(user)s delete authz rules. (rev:%(rev)s,%(msg)s)") % \ 
    204                  {'user':session.get('user'), 'rev': revision, 'msg': msg} ) 
    205  
    206         return msg 
    207  
     204            self.authz.save(revision, comment=log_message) 
     205        except Exception, e: 
     206            msg = get_unicode(e[0]) 
     207         
     208        log.info(log_message) 
     209        if msg: log.error(msg) 
     210 
     211        return msg 
     212 
  • trunk/pysvnmanager/controllers/role.py

    r22 r24  
    1313        self.authz = SvnAuthz(cfg.authz_file) 
    1414        self.login_as = session.get('user') 
     15        # Used as checked in user to rcs file. 
     16        self.authz.login_as = self.login_as 
    1517        self.aliaslist  = map(lambda x:x.uname, self.authz.aliaslist) 
    1618        self.userlist = map(lambda x:x.uname, self.authz.userlist) 
     
    109111        member_list.extend(map(lambda x: x.strip(), members.split(','))) 
    110112         
     113        log_message = _(u"User %(user)s changed group: %(grp)s. (rev:%(rev)s)") % \ 
     114                         {'user':session.get('user'), 'grp': rolename, 'rev': revision} 
     115 
    111116        try: 
    112117            self.authz.set_group(rolename, member_list, autodrop=autodrop) 
    113             self.authz.save(revision) 
    114         except Exception, (e,): 
    115             msg = unicode(e) 
     118            self.authz.save(revision, comment=log_message) 
     119        except Exception, e: 
     120            msg = get_unicode(e[0]) 
    116121 
    117         log.info(_(u"User %(user)s changed group: %(grp)s. (rev:%(rev)s,%(msg)s)") % \ 
    118                  {'user':session.get('user'), 'grp': rolename, 'rev': revision, 'msg': msg} ) 
     122        log.info(log_message) 
     123        if msg: log.error(msg) 
    119124         
    120125        return msg 
     
    128133        revision  = d.get('revision', self.authz.version) 
    129134        msg = '' 
     135         
     136        log_message = _(u"User %(user)s delete group: %(grp)s. (rev:%(rev)s)") % \ 
     137                         {'user':session.get('user'), 'grp': rolename, 'rev': revision} 
     138 
    130139        if rolename: 
    131140            try: 
    132141                self.authz.del_group(rolename) 
    133                 self.authz.save(revision) 
    134             except Exception, (e,): 
    135                 msg = unicode(e) 
     142                self.authz.save(revision, comment=log_message) 
     143            except Exception, e: 
     144                msg = get_unicode(e[0]) 
    136145 
    137         log.info(_(u"User %(user)s delete group: %(grp)s. (rev:%(rev)s,%(msg)s)") % \ 
    138                  {'user':session.get('user'), 'grp': rolename, 'rev': revision, 'msg': msg} ) 
     146        log.info(log_message) 
     147        if msg: log.error(msg) 
    139148 
    140149        return msg 
     
    149158        revision  = d.get('revision', self.authz.version) 
    150159        msg = "" 
     160         
     161        log_message = _(u"User %(user)s changed alias: %(alias)s. (rev:%(rev)s)") % \ 
     162                     {'user':session.get('user'), 'alias': aliasname, 'rev': revision} 
     163 
    151164        try: 
    152165            self.authz.add_alias(aliasname, username) 
    153             self.authz.save(revision) 
    154         except Exception, (e,): 
    155             msg = unicode(e) 
     166            self.authz.save(revision, comment=log_message) 
     167        except Exception, e: 
     168            msg = get_unicode(e[0]) 
    156169 
    157         log.info(_(u"User %(user)s changed alias: %(alias)s. (rev:%(rev)s,%(msg)s)") % \ 
    158                  {'user':session.get('user'), 'alias': aliasname, 'rev': revision, 'msg': msg} ) 
     170        log.info(log_message) 
     171        if msg: log.error(msg) 
    159172         
    160173        return msg 
     
    168181        revision  = d.get('revision', self.authz.version) 
    169182        msg = '' 
     183         
     184        log_message = _(u"User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)") % \ 
     185                 {'user':session.get('user'), 'alias': aliasname, 'rev': revision, 'msg': msg} 
     186 
    170187        if aliasname: 
    171188            try: 
    172189                self.authz.del_alias(aliasname) 
    173                 self.authz.save(revision) 
    174             except Exception, (e,): 
    175                 msg = unicode(e) 
     190                self.authz.save(revision, comment=log_message) 
     191            except Exception, e: 
     192                msg = get_unicode(e[0]) 
    176193 
    177         log.info(_(u"User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)") % \ 
    178                  {'user':session.get('user'), 'alias': aliasname, 'rev': revision, 'msg': msg} ) 
     194        log.info(log_message) 
     195        if msg: log.error(msg) 
    179196 
    180197        return msg 
  • trunk/pysvnmanager/controllers/security.py

    r22 r24  
    3232        if auth_passed: 
    3333            session['user'] = username 
    34             log.info(_("User %s logged in") % session['user']) 
     34            log.info(_(u"User %s logged in") % session['user']) 
    3535            session.save() 
    3636 
     
    4343            session.clear() 
    4444            session.save() 
    45             c.login_message = _("Login failed for user: %s") % username 
     45            c.login_message = _(u"Login failed for user: %s") % username 
    4646            return render('/login/login.mako') 
    4747 
  • trunk/pysvnmanager/i18n/en/LC_MESSAGES/pysvnmanager.po

    r23 r24  
    1010"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 
    1111"POT-Creation-Date: 2008-07-03 22:14+0800\n" 
    12 "PO-Revision-Date: 2008-07-28 09:59+0800\n" 
     12"PO-Revision-Date: 2008-07-29 17:27+0800\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
    1414"Language-Team: en <LL@li.org>\n" 
     
    3737msgstr "" 
    3838 
    39 #: pysvnmanager/controllers/authz.py:38 pysvnmanager/controllers/role.py:55 
    40 #: pysvnmanager/controllers/role.py:75 
     39#: pysvnmanager/controllers/authz.py:38 pysvnmanager/controllers/role.py:57 
     40#: pysvnmanager/controllers/role.py:77 
    4141#: pysvnmanager/templates/authz/index.mako:155 
    4242#: pysvnmanager/templates/check/index.mako:17 
     
    4848msgstr "" 
    4949 
    50 #: pysvnmanager/controllers/authz.py:41 pysvnmanager/controllers/role.py:60 
    51 #: pysvnmanager/controllers/role.py:77 
     50#: pysvnmanager/controllers/authz.py:41 pysvnmanager/controllers/role.py:62 
     51#: pysvnmanager/controllers/role.py:79 
    5252#: pysvnmanager/templates/authz/index.mako:157 
    5353#: pysvnmanager/templates/check/index.mako:19 
     
    6060 
    6161#: pysvnmanager/controllers/authz.py:59 pysvnmanager/controllers/authz.py:82 
    62 #: pysvnmanager/controllers/check.py:91 pysvnmanager/controllers/role.py:48 
     62#: pysvnmanager/controllers/check.py:91 pysvnmanager/controllers/role.py:50 
    6363#: pysvnmanager/templates/check/index.mako:9 
    6464#: pysvnmanager/templates/check/index.mako:23 
     
    6868msgstr "" 
    6969 
    70 #: pysvnmanager/controllers/authz.py:155 
     70#: pysvnmanager/controllers/authz.py:149 
     71#, python-format 
     72msgid "User %(user)s changed authz rules. (rev:%(rev)s)" 
     73msgstr "" 
     74 
     75#: pysvnmanager/controllers/authz.py:158 
    7176#, python-format 
    7277msgid "Repository %s not exist." 
    7378msgstr "" 
    7479 
    75 #: pysvnmanager/controllers/authz.py:163 
     80#: pysvnmanager/controllers/authz.py:166 
    7681#, python-format 
    7782msgid "Module %s not exist." 
    7883msgstr "" 
    7984 
    80 #: pysvnmanager/controllers/authz.py:169 
     85#: pysvnmanager/controllers/authz.py:172 
    8186msgid "You can not delete yourself from admin list." 
    8287msgstr "" 
    8388 
    84 #: pysvnmanager/controllers/authz.py:179 
    85 #, python-format 
    86 msgid "User %(user)s changed authz rules. (rev:%(rev)s,%(msg)s)" 
    87 msgstr "" 
    88  
    89 #: pysvnmanager/controllers/authz.py:203 
    90 #, python-format 
    91 msgid "User %(user)s delete authz rules. (rev:%(rev)s,%(msg)s)" 
     89#: pysvnmanager/controllers/authz.py:200 
     90#, python-format 
     91msgid "User %(user)s delete authz rules. (rev:%(rev)s)" 
    9292msgstr "" 
    9393 
     
    9797msgstr "" 
    9898 
    99 #: pysvnmanager/controllers/role.py:117 
    100 #, python-format 
    101 msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
    102 msgstr "" 
    103  
    104 #: pysvnmanager/controllers/role.py:137 
    105 #, python-format 
    106 msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
    107 msgstr "" 
    108  
    109 #: pysvnmanager/controllers/role.py:157 
    110 #, python-format 
    111 msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
    112 msgstr "" 
    113  
    114 #: pysvnmanager/controllers/role.py:177 
     99#: pysvnmanager/controllers/role.py:113 
     100#, python-format 
     101msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s)" 
     102msgstr "" 
     103 
     104#: pysvnmanager/controllers/role.py:136 
     105#, python-format 
     106msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s)" 
     107msgstr "" 
     108 
     109#: pysvnmanager/controllers/role.py:161 
     110#, python-format 
     111msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s)" 
     112msgstr "" 
     113 
     114#: pysvnmanager/controllers/role.py:184 
    115115#, python-format 
    116116msgid "User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
     
    132132msgstr "" 
    133133 
    134 #: pysvnmanager/model/svnauthz.py:59 
     134#: pysvnmanager/model/svnauthz.py:61 
    135135msgid "Name is not given." 
    136136msgstr "" 
    137137 
    138 #: pysvnmanager/model/svnauthz.py:61 
     138#: pysvnmanager/model/svnauthz.py:63 
    139139msgid "Name is not string." 
    140140msgstr "" 
    141141 
    142 #: pysvnmanager/model/svnauthz.py:65 
     142#: pysvnmanager/model/svnauthz.py:67 
    143143#, python-format 
    144144msgid "Name (%s) contains invalid characters." 
    145145msgstr "" 
    146146 
    147 #: pysvnmanager/model/svnauthz.py:473 
     147#: pysvnmanager/model/svnauthz.py:475 
    148148#, python-format 
    149149msgid "Recursive group membership for %s" 
    150150msgstr "" 
    151151 
    152 #: pysvnmanager/model/svnauthz.py:567 
     152#: pysvnmanager/model/svnauthz.py:569 
    153153#, python-format 
    154154msgid "Not a valid username: %s" 
    155155msgstr "" 
    156156 
    157 #: pysvnmanager/model/svnauthz.py:684 
     157#: pysvnmanager/model/svnauthz.py:686 
    158158#, python-format 
    159159msgid "Group %s is referenced by group %s." 
    160160msgstr "" 
    161161 
    162 #: pysvnmanager/model/svnauthz.py:1224 
     162#: pysvnmanager/model/svnauthz.py:1232 
    163163msgid "Update failed! You are working on a out-of-date revision." 
    164164msgstr "" 
    165165 
    166 #: pysvnmanager/model/svnauthz.py:1458 pysvnmanager/model/svnauthz.py:1465 
    167 #: pysvnmanager/model/svnauthz.py:1469 
     166#: pysvnmanager/model/svnauthz.py:1486 pysvnmanager/model/svnauthz.py:1493 
     167#: pysvnmanager/model/svnauthz.py:1497 
    168168#, python-format 
    169169msgid "Unknown rule format: %s" 
    170170msgstr "" 
    171171 
    172 #: pysvnmanager/model/svnauthz.py:1483 
     172#: pysvnmanager/model/svnauthz.py:1511 
    173173#, python-format 
    174174msgid "No module exist for %s:%s" 
    175175msgstr "" 
    176176 
    177 #: pysvnmanager/model/svnauthz.py:1593 
     177#: pysvnmanager/model/svnauthz.py:1621 
    178178#, python-format 
    179179msgid "Alias %s is referenced by group %s." 
    180180msgstr "" 
    181181 
    182 #: pysvnmanager/model/svnauthz.py:1605 
     182#: pysvnmanager/model/svnauthz.py:1633 
    183183#, python-format 
    184184msgid "%s is referenced by [%s]." 
    185185msgstr "" 
    186186 
    187 #: pysvnmanager/model/svnauthz.py:1742 
     187#: pysvnmanager/model/svnauthz.py:1770 
    188188#, python-format 
    189189msgid "User %(username)s has Full (RW) rights for module %(repos)s:%(path)s" 
    190190msgstr "" 
    191191 
    192 #: pysvnmanager/model/svnauthz.py:1744 
     192#: pysvnmanager/model/svnauthz.py:1772 
    193193#, python-format 
    194194msgid "User %(username)s has ReadOnly (RO) rights for module %(repos)s:%(path)s" 
    195195msgstr "" 
    196196 
    197 #: pysvnmanager/model/svnauthz.py:1746 
     197#: pysvnmanager/model/svnauthz.py:1774 
    198198#, python-format 
    199199msgid "User %(username)s can *NOT* access to module %(repos)s:%(path)s" 
    200200msgstr "" 
    201201 
    202 #: pysvnmanager/model/svnauthz.py:1784 
     202#: pysvnmanager/model/svnauthz.py:1812 
    203203#, python-format 
    204204msgid "" 
     
    212212msgstr "" 
    213213 
    214 #: pysvnmanager/model/svnauthz.py:1803 
     214#: pysvnmanager/model/svnauthz.py:1831 
    215215#, python-format 
    216216msgid "" 
     
    517517msgstr "" 
    518518 
     519#~ msgid "User %(user)s changed authz rules. (rev:%(rev)s,%(msg)s)" 
     520#~ msgstr "" 
     521 
     522#~ msgid "User %(user)s delete authz rules. (rev:%(rev)s,%(msg)s)" 
     523#~ msgstr "" 
     524 
     525#~ msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
     526#~ msgstr "" 
     527 
     528#~ msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
     529#~ msgstr "" 
     530 
     531#~ msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
     532#~ msgstr "" 
     533 
  • trunk/pysvnmanager/i18n/pysvnmanager.pot

    r23 r24  
    99"Project-Id-Version: pySvnManager 0.1.2\n" 
    1010"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 
    11 "POT-Creation-Date: 2008-07-28 09:59+0800\n" 
     11"POT-Creation-Date: 2008-07-29 17:27+0800\n" 
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    3333msgstr "" 
    3434 
    35 #: pysvnmanager/controllers/authz.py:38 pysvnmanager/controllers/role.py:55 
    36 #: pysvnmanager/controllers/role.py:75 pysvnmanager/templates/authz/index.mako:155 
     35#: pysvnmanager/controllers/authz.py:38 pysvnmanager/controllers/role.py:57 
     36#: pysvnmanager/controllers/role.py:77 pysvnmanager/templates/authz/index.mako:155 
    3737#: pysvnmanager/templates/check/index.mako:17 
    3838#: pysvnmanager/templates/role/index.mako:18 
     
    4343msgstr "" 
    4444 
    45 #: pysvnmanager/controllers/authz.py:41 pysvnmanager/controllers/role.py:60 
    46 #: pysvnmanager/controllers/role.py:77 pysvnmanager/templates/authz/index.mako:157 
     45#: pysvnmanager/controllers/authz.py:41 pysvnmanager/controllers/role.py:62 
     46#: pysvnmanager/controllers/role.py:79 pysvnmanager/templates/authz/index.mako:157 
    4747#: pysvnmanager/templates/check/index.mako:19 
    4848#: pysvnmanager/templates/role/index.mako:23 
     
    5454 
    5555#: pysvnmanager/controllers/authz.py:59 pysvnmanager/controllers/authz.py:82 
    56 #: pysvnmanager/controllers/check.py:91 pysvnmanager/controllers/role.py:48 
     56#: pysvnmanager/controllers/check.py:91 pysvnmanager/controllers/role.py:50 
    5757#: pysvnmanager/templates/check/index.mako:9 
    5858#: pysvnmanager/templates/check/index.mako:23 
     
    6262msgstr "" 
    6363 
    64 #: pysvnmanager/controllers/authz.py:155 
     64#: pysvnmanager/controllers/authz.py:149 
     65#, python-format 
     66msgid "User %(user)s changed authz rules. (rev:%(rev)s)" 
     67msgstr "" 
     68 
     69#: pysvnmanager/controllers/authz.py:158 
    6570#, python-format 
    6671msgid "Repository %s not exist." 
    6772msgstr "" 
    6873 
    69 #: pysvnmanager/controllers/authz.py:163 
     74#: pysvnmanager/controllers/authz.py:166 
    7075#, python-format 
    7176msgid "Module %s not exist." 
    7277msgstr "" 
    7378 
    74 #: pysvnmanager/controllers/authz.py:169 
     79#: pysvnmanager/controllers/authz.py:172 
    7580msgid "You can not delete yourself from admin list." 
    7681msgstr "" 
    7782 
    78 #: pysvnmanager/controllers/authz.py:179 
    79 #, python-format 
    80 msgid "User %(user)s changed authz rules. (rev:%(rev)s,%(msg)s)" 
    81 msgstr "" 
    82  
    83 #: pysvnmanager/controllers/authz.py:203 
    84 #, python-format 
    85 msgid "User %(user)s delete authz rules. (rev:%(rev)s,%(msg)s)" 
     83#: pysvnmanager/controllers/authz.py:200 
     84#, python-format 
     85msgid "User %(user)s delete authz rules. (rev:%(rev)s)" 
    8686msgstr "" 
    8787 
     
    9090msgstr "" 
    9191 
    92 #: pysvnmanager/controllers/role.py:117 
    93 #, python-format 
    94 msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
    95 msgstr "" 
    96  
    97 #: pysvnmanager/controllers/role.py:137 
    98 #, python-format 
    99 msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
    100 msgstr "" 
    101  
    102 #: pysvnmanager/controllers/role.py:157 
    103 #, python-format 
    104 msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
    105 msgstr "" 
    106  
    107 #: pysvnmanager/controllers/role.py:177 
     92#: pysvnmanager/controllers/role.py:113 
     93#, python-format 
     94msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s)" 
     95msgstr "" 
     96 
     97#: pysvnmanager/controllers/role.py:136 
     98#, python-format 
     99msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s)" 
     100msgstr "" 
     101 
     102#: pysvnmanager/controllers/role.py:161 
     103#, python-format 
     104msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s)" 
     105msgstr "" 
     106 
     107#: pysvnmanager/controllers/role.py:184 
    108108#, python-format 
    109109msgid "User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
     
    125125msgstr "" 
    126126 
    127 #: pysvnmanager/model/svnauthz.py:59 
     127#: pysvnmanager/model/svnauthz.py:61 
    128128msgid "Name is not given." 
    129129msgstr "" 
    130130 
    131 #: pysvnmanager/model/svnauthz.py:61 
     131#: pysvnmanager/model/svnauthz.py:63 
    132132msgid "Name is not string." 
    133133msgstr "" 
    134134 
    135 #: pysvnmanager/model/svnauthz.py:65 
     135#: pysvnmanager/model/svnauthz.py:67 
    136136#, python-format 
    137137msgid "Name (%s) contains invalid characters." 
    138138msgstr "" 
    139139 
    140 #: pysvnmanager/model/svnauthz.py:473 
     140#: pysvnmanager/model/svnauthz.py:475 
    141141#, python-format 
    142142msgid "Recursive group membership for %s" 
    143143msgstr "" 
    144144 
    145 #: pysvnmanager/model/svnauthz.py:567 
     145#: pysvnmanager/model/svnauthz.py:569 
    146146#, python-format 
    147147msgid "Not a valid username: %s" 
    148148msgstr "" 
    149149 
    150 #: pysvnmanager/model/svnauthz.py:684 
     150#: pysvnmanager/model/svnauthz.py:686 
    151151#, python-format 
    152152msgid "Group %s is referenced by group %s." 
    153153msgstr "" 
    154154 
    155 #: pysvnmanager/model/svnauthz.py:1224 
     155#: pysvnmanager/model/svnauthz.py:1232 
    156156msgid "Update failed! You are working on a out-of-date revision." 
    157157msgstr "" 
    158158 
    159 #: pysvnmanager/model/svnauthz.py:1458 pysvnmanager/model/svnauthz.py:1465 
    160 #: pysvnmanager/model/svnauthz.py:1469 
     159#: pysvnmanager/model/svnauthz.py:1486 pysvnmanager/model/svnauthz.py:1493 
     160#: pysvnmanager/model/svnauthz.py:1497 
    161161#, python-format 
    162162msgid "Unknown rule format: %s" 
    163163msgstr "" 
    164164 
    165 #: pysvnmanager/model/svnauthz.py:1483 
     165#: pysvnmanager/model/svnauthz.py:1511 
    166166#, python-format 
    167167msgid "No module exist for %s:%s" 
    168168msgstr "" 
    169169 
    170 #: pysvnmanager/model/svnauthz.py:1593 
     170#: pysvnmanager/model/svnauthz.py:1621 
    171171#, python-format 
    172172msgid "Alias %s is referenced by group %s." 
    173173msgstr "" 
    174174 
    175 #: pysvnmanager/model/svnauthz.py:1605 
     175#: pysvnmanager/model/svnauthz.py:1633 
    176176#, python-format 
    177177msgid "%s is referenced by [%s]." 
    178178msgstr "" 
    179179 
    180 #: pysvnmanager/model/svnauthz.py:1742 
     180#: pysvnmanager/model/svnauthz.py:1770 
    181181#, python-format 
    182182msgid "User %(username)s has Full (RW) rights for module %(repos)s:%(path)s" 
    183183msgstr "" 
    184184 
    185 #: pysvnmanager/model/svnauthz.py:1744 
     185#: pysvnmanager/model/svnauthz.py:1772 
    186186#, python-format 
    187187msgid "User %(username)s has ReadOnly (RO) rights for module %(repos)s:%(path)s" 
    188188msgstr "" 
    189189 
    190 #: pysvnmanager/model/svnauthz.py:1746 
     190#: pysvnmanager/model/svnauthz.py:1774 
    191191#, python-format 
    192192msgid "User %(username)s can *NOT* access to module %(repos)s:%(path)s" 
    193193msgstr "" 
    194194 
    195 #: pysvnmanager/model/svnauthz.py:1784 
     195#: pysvnmanager/model/svnauthz.py:1812 
    196196#, python-format 
    197197msgid "" 
     
    205205msgstr "" 
    206206 
    207 #: pysvnmanager/model/svnauthz.py:1803 
     207#: pysvnmanager/model/svnauthz.py:1831 
    208208#, python-format 
    209209msgid "" 
  • trunk/pysvnmanager/i18n/zh/LC_MESSAGES/pysvnmanager.po

    r23 r24  
    99msgid "" 
    1010msgstr "" 
    11 "Project-Id-Version:  pysvnmanager\n" 
     11"Project-Id-Version: pysvnmanager\n" 
    1212"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 
    1313"POT-Creation-Date: 2008-07-03 22:14+0800\n" 
    14 "PO-Revision-Date: 2008-07-28 09:59+0800\n" 
     14"PO-Revision-Date: 2008-07-29 17:29+0800\n" 
    1515"Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" 
    16 "Language-Team: <zh@li.org>\n" 
     16"Language-Team:  <zh@li.org>\n" 
    1717"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n" 
    1818"MIME-Version: 1.0\n" 
    19 "Content-Type: text/plain; charset=utf-8\n" 
     19"Content-Type: text/plain; charset=UTF-8\n" 
    2020"Content-Transfer-Encoding: 8bit\n" 
    2121"Generated-By: Babel 0.9.2\n" 
     22"X-Generator: KBabel 1.11.4\n" 
    2223 
    2324#: pysvnmanager/controllers/authz.py:31 
     
    3940msgstr "匿名用户" 
    4041 
    41 #: pysvnmanager/controllers/authz.py:38 pysvnmanager/controllers/role.py:55 
    42 #: pysvnmanager/controllers/role.py:75 
     42#: pysvnmanager/controllers/authz.py:38 pysvnmanager/controllers/role.py:57 
     43#: pysvnmanager/controllers/role.py:77 
    4344#: pysvnmanager/templates/authz/index.mako:155 
    4445#: pysvnmanager/templates/check/index.mako:17 
     
    5051msgstr "团队:" 
    5152 
    52 #: pysvnmanager/controllers/authz.py:41 pysvnmanager/controllers/role.py:60 
    53 #: pysvnmanager/controllers/role.py:77 
     53#: pysvnmanager/controllers/authz.py:41 pysvnmanager/controllers/role.py:62 
     54#: pysvnmanager/controllers/role.py:79 
    5455#: pysvnmanager/templates/authz/index.mako:157 
    5556#: pysvnmanager/templates/check/index.mako:19 
     
    6263 
    6364#: pysvnmanager/controllers/authz.py:59 pysvnmanager/controllers/authz.py:82 
    64 #: pysvnmanager/controllers/check.py:91 pysvnmanager/controllers/role.py:48 
     65#: pysvnmanager/controllers/check.py:91 pysvnmanager/controllers/role.py:50 
    6566#: pysvnmanager/templates/check/index.mako:9 
    6667#: pysvnmanager/templates/check/index.mako:23 
     
    7071msgstr "请选择..." 
    7172 
    72 #: pysvnmanager/controllers/authz.py:155 
     73#: pysvnmanager/controllers/authz.py:149 
     74#, python-format 
     75#| msgid "User %(user)s changed authz rules. (rev:%(rev)s,%(msg)s)" 
     76msgid "User %(user)s changed authz rules. (rev:%(rev)s)" 
     77msgstr "用户 %(user)s 修改了授权策略。(rev:%(rev)s)" 
     78 
     79#: pysvnmanager/controllers/authz.py:158 
    7380#, python-format 
    7481msgid "Repository %s not exist." 
    7582msgstr "版本库 %s 不存在。" 
    7683 
    77 #: pysvnmanager/controllers/authz.py:163 
     84#: pysvnmanager/controllers/authz.py:166 
    7885#, python-format 
    7986msgid "Module %s not exist." 
    8087msgstr "模组 %s 不存在。" 
    8188 
    82 #: pysvnmanager/controllers/authz.py:169 
     89#: pysvnmanager/controllers/authz.py:172 
    8390msgid "You can not delete yourself from admin list." 
    8491msgstr "您不能将自己从管理员列表中删除。" 
    8592 
    86 #: pysvnmanager/controllers/authz.py:179 
    87 #, python-format 
    88 msgid "User %(user)s changed authz rules. (rev:%(rev)s,%(msg)s)" 
    89 msgstr "用户 %(user)s 修改了授权策略。(rev:%(rev)s,%(msg)s)" 
    90  
    91 #: pysvnmanager/controllers/authz.py:203 
    92 #, python-format 
    93 msgid "User %(user)s delete authz rules. (rev:%(rev)s,%(msg)s)" 
    94 msgstr "用户 %(user)s 删除了授权策略。(rev:%(rev)s,%(msg)s)" 
     93#: pysvnmanager/controllers/authz.py:200 
     94#, python-format 
     95#| msgid "User %(user)s delete authz rules. (rev:%(rev)s,%(msg)s)" 
     96msgid "User %(user)s delete authz rules. (rev:%(rev)s)" 
     97msgstr "用户 %(user)s 删除了授权策略。(rev:%(rev)s)" 
    9598 
    9699#: pysvnmanager/controllers/check.py:68 
     
    99102msgstr "没有权限。" 
    100103 
    101 #: pysvnmanager/controllers/role.py:117 
    102 #, python-format 
    103 msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
    104 msgstr "用户 %(user)s 修改用户组: %(grp)s。(rev:%(rev)s,%(msg)s)" 
    105  
    106 #: pysvnmanager/controllers/role.py:137 
    107 #, python-format 
    108 msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
    109 msgstr "用户 %(user)s 删除用户组: %(grp)s。(rev:%(rev)s,%(msg)s)" 
    110  
    111 #: pysvnmanager/controllers/role.py:157 
    112 #, python-format 
    113 msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
    114 msgstr "用户 %(user)s 修改别名: %(alias)s。(rev:%(rev)s,%(msg)s)" 
    115  
    116 #: pysvnmanager/controllers/role.py:177 
     104#: pysvnmanager/controllers/role.py:113 
     105#, python-format 
     106#| msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
     107msgid "User %(user)s changed group: %(grp)s. (rev:%(rev)s)" 
     108msgstr "用户 %(user)s 修改用户组: %(grp)s。(rev:%(rev)s)" 
     109 
     110#: pysvnmanager/controllers/role.py:136 
     111#, python-format 
     112#| msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s,%(msg)s)" 
     113msgid "User %(user)s delete group: %(grp)s. (rev:%(rev)s)" 
     114msgstr "用户 %(user)s 删除用户组: %(grp)s。(rev:%(rev)s)" 
     115 
     116#: pysvnmanager/controllers/role.py:161 
     117#, python-format 
     118#| msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
     119msgid "User %(user)s changed alias: %(alias)s. (rev:%(rev)s)" 
     120msgstr "用户 %(user)s 修改别名: %(alias)s。(rev:%(rev)s)" 
     121 
     122#: pysvnmanager/controllers/role.py:184 
    117123#, python-format 
    118124msgid "User %(user)s delete alias: %(alias)s. (rev:%(rev)s,%(msg)s)" 
     
    134140msgstr "用户 %s 登出" 
    135141 
    136 #: pysvnmanager/model/svnauthz.py:59 
     142#: pysvnmanager/model/svnauthz.py:61 
    137143msgid "Name is not given." 
    138144msgstr "未能提供名称。" 
    139145 
    140 #: pysvnmanager/model/svnauthz.py:61 
     146#: pysvnmanager/model/svnauthz.py:63 
    141147msgid "Name is not string." 
    142148msgstr "名称不是字符串" 
    143149 
    144 #: pysvnmanager/model/svnauthz.py:65 
     150#: pysvnmanager/model/svnauthz.py:67 
    145151#, python-format 
    146152msgid "Name (%s) contains invalid characters." 
    147153msgstr "名称(%s)中包含非法字符。" 
    148154 
    149 #: pysvnmanager/model/svnauthz.py:473 
     155#: pysvnmanager/model/svnauthz.py:475 
    150156#, python-format 
    151157msgid "Recursive group membership for %s" 
    152158msgstr "%s 出现了循环组引用。" 
    153159 
    154 #: pysvnmanager/model/svnauthz.py:567 
     160#: pysvnmanager/model/svnauthz.py:569 
    155161#, python-format 
    156162msgid "Not a valid username: %s" 
    157163msgstr "非法用户名: %s" 
    158164 
    159 #: pysvnmanager/model/svnauthz.py:684 
     165#: pysvnmanager/model/svnauthz.py:686 
    160166#, python-format 
    161167msgid "Group %s is referenced by group %s." 
    162168msgstr "用户组 %s 被组 %s 引用。" 
    163169 
    164 #: pysvnmanager/model/svnauthz.py:1224 
     170#: pysvnmanager/model/svnauthz.py:1232 
    165171msgid "Update failed! You are working on a out-of-date revision." 
    166172msgstr "更新失败!您的更改是基于一个过期的版本,请先刷新再更改。" 
    167173 
    168 #: pysvnmanager/model/svnauthz.py:1458 pysvnmanager/model/svnauthz.py:1465 
    169 #: pysvnmanager/model/svnauthz.py:1469 
     174#: pysvnmanager/model/svnauthz.py:1486 pysvnmanager/model/svnauthz.py:1493 
     175#: pysvnmanager/model/svnauthz.py:1497 
    170176#, python-format 
    171177msgid "Unknown rule format: %s" 
    172178msgstr "未知策略格式: %s" 
    173179 
    174 #: pysvnmanager/model/svnauthz.py:1483 
     180#: pysvnmanager/model/svnauthz.py:1511 
    175181#, python-format 
    176182msgid "No module exist for %s:%s" 
    177183msgstr "模块不存在: %s:%s" 
    178184 
    179 #: pysvnmanager/model/svnauthz.py:1593 
     185#: pysvnmanager/model/svnauthz.py:1621 
    180186#, python-format 
    181187msgid "Alias %s is referenced by group %s." 
    182188msgstr "别名 %s 为用户组 %s 引用。" 
    183189 
    184 #: pysvnmanager/model/svnauthz.py:1605 
     190#: pysvnmanager/model/svnauthz.py:1633 
    185191#, python-format 
    186192msgid "%s is referenced by [%s]." 
    187193msgstr "%s 在 [%s] 中被引用。" 
    188194 
    189 #: pysvnmanager/model/svnauthz.py:1742 
     195#: pysvnmanager/model/svnauthz.py:1770 
    190196#, python-format 
    191197msgid "User %(username)s has Full (RW) rights for module %(repos)s:%(path)s" 
    192198msgstr "用户 %(username)s 对模组 %(repos)s:%(path)s 具有完全权限 (RW)" 
    193199 
    194 #: pysvnmanager/model/svnauthz.py:1744 
     200#: pysvnmanager/model/svnauthz.py:1772 
    195201#, python-format 
    196202msgid "User %(username)s has ReadOnly (RO) rights for module %(repos)s:%(path)s" 
    197203msgstr "用户 %(username)s 对模组 %(repos)s:%(path)s 具有只读权限 (RO)" 
    198204 
    199 #: pysvnmanager/model/svnauthz.py:1746 
     205#: pysvnmanager/model/svnauthz.py:1774 
    200206#, python-format 
    201207msgid "User %(username)s can *NOT* access to module %(repos)s:%(path)s" 
    202208msgstr "用户 %(username)s 对模组 %(repos)s:%(path)s 没有访问权限 (XX)" 
    203209 
    204 #: pysvnmanager/model/svnauthz.py:1784 
     210#: pysvnmanager/model/svnauthz.py:1812 
    205211#, python-format 
    206212msgid "" 
     
    221227"\n" 
    222228 
    223 #: pysvnmanager/model/svnauthz.py:1803 
     229#: pysvnmanager/model/svnauthz.py:1831 
    224230#, python-format 
    225231msgid "" 
  • trunk/pysvnmanager/lib/base.py

    r23 r24  
    2222#import logging 
    2323#log = logging.getLogger(__name__) 
     24 
     25def get_unicode(msg, escape=False): 
     26    if isinstance(msg, basestring) and not isinstance(msg, unicode): 
     27        msg = unicode(msg, 'utf-8') 
     28    if escape and isinstance(msg, basestring): 
     29        msg = msg.encode('unicode_internal') 
     30    return msg 
     31 
     32def get_utf8(msg, escape=False): 
     33    if isinstance(msg, unicode): 
     34        msg = msg.encode('utf-8') 
     35    if escape and isinstance(msg, basestring): 
     36        msg = msg.encode('unicode_internal') 
     37    return msg 
    2438 
    2539class BaseController(WSGIController): 
  • trunk/pysvnmanager/model/svnauthz.py

    r22 r24  
    88 
    99from configobj import ConfigObj 
     10import rcsbackup as rcs 
    1011import re 
    1112import sys 
     13import os 
    1214import StringIO 
    1315import logging 
     
    11341136        self.__clear() 
    11351137        self.__file = None 
     1138        # Used as check-in username to rcs file. 
     1139        self.login_as = None 
     1140        # Used as check-in message to rcs file. 
     1141        self.comment = [] 
    11361142        self.load(fileobj) 
    11371143     
     
    12141220                    self.parse_module(section, contents) 
    12151221 
    1216     def save(self, revision): 
     1222    def save(self, revision, comment=""): 
     1223        if comment: self.comment.append(comment) 
     1224             
    12171225        if self.__file: 
    1218             assert isinstance(self.__file, (basestring, file, StringIO.StringIO)) 
     1226            assert isinstance(self.__file, (basestring, StringIO.StringIO)) 
    12191227            #if not revision: 
    12201228            #    revision = self.version 
     
    12371245                f.seek(0,0) 
    12381246                f.flush() 
    1239          
     1247 
     1248            if isinstance(self.__file, basestring): 
     1249                try: 
     1250                    self.validate_authz_file(self.__file) 
     1251                except Exception, e: 
     1252                    rcs.restore(self.__file) 
     1253                    raise Exception, e 
     1254                else: 
     1255                    rcs.backup(self.__file, comment=self.comment, user=self.login_as) 
     1256 
     1257        self.comment = [] 
     1258     
     1259    def validate_authz_file(self, filename): 
     1260        if isinstance(filename, basestring): 
     1261            stat = os.stat(filename) 
     1262            if stat.st_size == 0: 
     1263                raise Exception, "Size of file (%s) is zero!" % filename 
     1264             
     1265            from svn import repos as _repos 
     1266            _repos.authz_read(filename, 1) 
     1267     
    12401268    def __str__(self): 
    12411269        buff = u"" 
  • trunk/pysvnmanager/tests/functional/test_role.py

    r22 r24  
    278278            userobj = authz.get_userobj('&admin') 
    279279            self.assert_(unicode(userobj) == u'admin = 蒋鑫', unicode(userobj).encode('utf-8')) 
     280            self.assert_(authz.is_super_user('&admin')==True, authz.is_super_user('&admin')) 
     281            self.assert_(authz.is_super_user('蒋鑫')==True, authz.is_super_user('蒋鑫')) 
     282             
     283            self.login('蒋鑫') 
     284            #params = {'aliasname':'admin', 'username':'蒋鑫',} 
     285            params = {'aliasname':'admin2', 'username':'jiangxin',} 
     286            res = self.app.get(url_for(controller='role', action='save_alias'), params) 
     287            assert res.status == 200 
     288            assert "" == res.body, res.body 
     289             
    280290        finally: 
    281291            self.rollback() 
  • trunk/setup.cfg

    r23 r24  
    6464with-pylons=test.ini 
    6565detailed-errors=1 
    66 with-coverage=1 
     66#with-coverage=1 
    6767cover-package=pysvnmanager 
    6868cover-erase=1