修改Viewvc代码使只读权限的用户只能查看log

简介:

弄了近3天(这个周末是totally进去咯),总算把viewvc修改成只读权限(这里说的只读权限是指svnauthz中配置为只读权限)的用户只能查看log了 O(∩_∩)O哈哈~

太累了,先发贴占个位子,等几天把代码及修改的详细地方贴出来~~
O(∩_∩)O哈哈~

主要是在viewvc.py中增加两个viewvc现成的函数_process_access_section(self,  cp,  section)
_userspec_matches_user(self,  userspec):
然后在class Request:
  def __init__(self, server, cfg):
函数中,在获得了USERNAME后面,加上下面的语句:
(说起这几句话简单,就是把diff,annotate,markup 三种view从cfg中去掉,不晓得我看了好久的代码才找到是该在这个位置里添加!沁透了我的汗水啊~~~~兄弟们,给我顶~~~↖(^ω^)↗):

#Brant
        logging.basicConfig(level=logging.DEBUG,
                                        format='%(asctime)s %(levelname)s %(message)s',
                                        filename='D:/Viewvc.Request.log',
                                        filemode='w')
        logging.debug('A debug message1')        
            
        cp1 = ConfigParser()
        cp1.read(self.cfg.conf_path) # Read viewvc.conf
        
        svnauthzfile = cp1.get("authz-svnauthz", "authzfile") # get svnauthzfile frmo viewvc.conf
        cp = ConfigParser()
        cp.read(svnauthzfile) # Read svnauthzfile
        root_sections = []
        no_diff_annonate_markup_view = 0
        
        logging.debug('below:cp.sections')        
        logging.debug(cp.sections())        
        for section in cp.sections():                
                logging.debug('A debug message5')
            # Skip the "groups" section -- we handled that already.
                if section == 'groups':
                        continue
            
                if section == 'aliases':
                        continue
                no_diff_annonate_markup_view = _process_access_section(self,    cp,    section)
                logging.debug('after1 cp.sections[%s] haha:%d',    section,    no_diff_annonate_markup_view)
        
        logging.debug('ooo view_result:%d',    no_diff_annonate_markup_view)
        logging.debug(self.cfg.options.allowed_views)
        if no_diff_annonate_markup_view == 1:
                if 'diff' in self.cfg.options.allowed_views:
                        self.cfg.options.allowed_views.remove('diff');
                if 'markup' in self.cfg.options.allowed_views:
                        self.cfg.options.allowed_views.remove('markup');
                if 'annotate' in self.cfg.options.allowed_views:
                        self.cfg.options.allowed_views.remove('annotate');
                        
                if 'diff' in cfg.options.allowed_views:
                        cfg.options.allowed_views.remove('diff');
                if 'markup' in cfg.options.allowed_views:
                        cfg.options.allowed_views.remove('markup');
                if 'annotate' in cfg.options.allowed_views:
                        cfg.options.allowed_views.remove('annotate');



其他的工作就是修改下viewcv的模板。等几天再写吧,O(∩_∩)O哈哈~


PS几句:
偶从来没想过会用python这个后起新秀,更别说学习它了!更别说修改一个用它写的开源工具了!
可是这周末没想到鬼使神差地硬把Viewvc按照我的需求给改了!
我都觉得我疯了~~
不过看到自己成果后,还是爽翻了O(∩_∩)O哈哈~






本文转自 xkdcc 51CTO博客,原文链接:http://blog.51cto.com/brantc/213780,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
24天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
77 1
|
2月前
|
数据库
什么是计算机软件开发领域的 verbose 代码和日志
什么是计算机软件开发领域的 verbose 代码和日志
31 0
|
4月前
|
Web App开发 JavaScript
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
307 0
|
3月前
|
机器学习/深度学习 自然语言处理 数据可视化
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
|
6月前
实际案例分析 - 根据应用程序日志的记录,反查出哪一行 ABAP 代码产生的这条日志试读版
实际案例分析 - 根据应用程序日志的记录,反查出哪一行 ABAP 代码产生的这条日志试读版
70 0
|
7月前
|
监控
学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能试读版
学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能试读版
46 0
|
7月前
|
机器学习/深度学习 达摩院 数据挖掘
ICASSP2023论文代码开源|TOLD能对混叠语音建模的说话人日志框架
ICASSP2023论文代码开源|TOLD能对混叠语音建模的说话人日志框架
120 1
|
7月前
|
C语言
3D打印Marlin2.0固件源代码分析之如何使用LOG接口调试代码
3D打印Marlin2.0固件源代码分析之如何使用LOG接口调试代码
192 0
|
8月前
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
209 1
|
9月前
|
缓存 监控 前端开发
JVM学习日志(三) Java代码执行流程
简述 Java代码执行流程
76 0
JVM学习日志(三) Java代码执行流程