Allow clients logged in with user rights to run the autosave command.
This commit is contained in:
@@ -324,9 +324,31 @@ proc doAutosave {} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
publish doAutosave user
|
publish doAutosave user
|
||||||
|
|
||||||
|
# return -1 if logged in as spy
|
||||||
|
proc set_rights {level} {
|
||||||
|
array set rights {1 manager manager 1 2 user user 2 3 spy spy 3}
|
||||||
|
array set password {manager ansto user sydney spy 007}
|
||||||
|
|
||||||
|
set myrights [SplitReply [config myrights] ]
|
||||||
|
if {$myrights == $rights(spy)} {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
# Convert 'level' to a name if it is passed as an integer
|
||||||
|
if { [string is integer $level] } {
|
||||||
|
set level $rights($level)
|
||||||
|
}
|
||||||
|
config rights $level $password($level)
|
||||||
|
return $myrights
|
||||||
|
}
|
||||||
proc autosave { {interval 300} } {
|
proc autosave { {interval 300} } {
|
||||||
global AUTOSAVE_STATE
|
global AUTOSAVE_STATE
|
||||||
|
set as_error 0
|
||||||
|
|
||||||
|
set myrights [set_rights manager]
|
||||||
|
if {$myrights == -1} {
|
||||||
|
return -code error "ERROR: You are not authorized for this operation"
|
||||||
|
}
|
||||||
set interval [string tolower $interval]
|
set interval [string tolower $interval]
|
||||||
if {$interval == "check" || $interval == "status"} {
|
if {$interval == "check" || $interval == "status"} {
|
||||||
if { $AUTOSAVE_STATE == "ENABLED" } {
|
if { $AUTOSAVE_STATE == "ENABLED" } {
|
||||||
@@ -350,9 +372,13 @@ proc autosave { {interval 300} } {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return -code error "ERROR: Invalid argument in '[info level 0]', should be an integer or 'check'"
|
set as_error 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_rights $myrights
|
||||||
|
|
||||||
|
if {$as_error} {
|
||||||
|
return -code error "ERROR: Invalid argument in '[info level 0]', should be an integer or 'check'"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
publish autosave user
|
publish autosave user
|
||||||
|
|||||||
Reference in New Issue
Block a user