Subversion Repositories DevTools

Rev

Rev 4226 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4226 dpurdie 1
REM Maintained in package SubversionServerSupport
2
REM
3
REM Limit the property chnages that a user can make to:
4
REM     svn:log (commit comment)
5
REM     Made by themselves only
6
REM     On the same day    
4918 dpurdie 7
REM			[Now allow change to log made on any day]
4226 dpurdie 8
REM
9
REM Args %1 - Repo Path
10
REM      %2 - Rev to be changed
11
REM      %3 - Authenticated user name
12
REM      %4 - Name of property to be changed
13
REM      %5 - Change Type. A,D or M
14
 
15
REM     These users can do anything
16
if %3==xdpurdie goto OK
1291 dpurdie 17
if %3==buildadm goto OK
4226 dpurdie 18
 
19
REM
20
REM     The rest of this code allows a user to modify his own svn:log (comment) created
21
REM     today. The date test is brute force.
22
 
23
REM     Allow log comments to be modified
24
if NOT %4==svn:log goto BAD
25
if NOT %5==M goto BAD
26
 
27
set SVNLOOK="C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe"
28
 
29
REM     User can only modify his own comments
30
set muser=error
31
for /f "delims=" %%a in ('%SVNLOOK%  author -r %2 %1 ') do @set muser=%%a
32
if NOT %muser%==%3 goto BADUSER
33
 
4918 dpurdie 34
REM     User is allowed to modify comment [Age not longer considered]
35
goto OK
36
 
4226 dpurdie 37
REM     User can only modify comments made on the same day
38
set datestamp=error
39
set today=error
40
 
41
for /f "delims=" %%a in ('%SVNLOOK%  date -r %2 %1 ') do @set datestamp=%%a
42
set datestamp=%datestamp:~0,10%
43
 
44
for /F "tokens=1-4 delims=/ " %%a in ("%date%") do (
45
 set YEAR=%%d
46
 set MONTH=%%c
47
 set DAY=%%b )
48
set today=%YEAR%-%MONTH%-%DAY%
49
if NOT %today%==%datestamp% goto BADDAY
50
 
51
REM     User is allowed to modify comment
52
goto OK
53
 
54
:BADDAY
55
echo User %3 is only allowed to modify svn:log created on the same day >&2
56
echo Info. Change User: %muser%. Change Date: %datestamp%. Today: %today%. %date% >&2
1291 dpurdie 57
exit 1
58
 
4226 dpurdie 59
:BADUSER
60
echo User %3 is not allowed to modify svn:log created by another user (%muser%) on %1 >&2
61
exit 1
62
 
63
:BAD
64
echo User %3 is not allowed to modify repository properties %4(%5) on %1 >&2
65
exit 1
66
 
1291 dpurdie 67
:OK
68
exit 0