sub admin_required {
local $_ = $_[0];
return problem_owner $1 if m,^/pb/$word, && problem_private $1;
sub admin_required {
local $_ = $_[0];
return problem_owner $1 if m,^/pb/$word, && problem_private $1;
- return job_owner $1 if m,^/log/(?:job|src)/$word, && job_private $1;
+ return job_user $1 if m,^/log/(?:job|src)/$word, && job_private $1;
return contest_owner $1 if m,^/ct/$word/(?:pb|log), && time < contest_start $1;
if (m,^/ct/$word/log/(?:job|src)/$word, && time < contest_end $1){
local $Gruntmaster::Data::contest = $1;
return contest_owner $1 if m,^/ct/$word/(?:pb|log), && time < contest_start $1;
if (m,^/ct/$word/log/(?:job|src)/$word, && time < contest_end $1){
local $Gruntmaster::Data::contest = $1;