| … | |
… | |
| 67 | sub initialize { |
67 | sub initialize { |
| 68 | my ($self, @components) = @_; |
68 | my ($self, @components) = @_; |
| 69 | my $r = $self->{r}; |
69 | my $r = $self->{r}; |
| 70 | my $db = $self->{db}; |
70 | my $db = $self->{db}; |
| 71 | my $ce = $self->{ce}; |
71 | my $ce = $self->{ce}; |
|
|
72 | my $authz = $self->{authz}; |
|
|
73 | my $user = $r->param('user'); |
| 72 | my $setName = $self->getSetName(@components); |
74 | my $setName = $self->getSetName(@components); |
| 73 | my $setRecord = $db->getGlobalSet($setName); |
75 | my $setRecord = $db->getGlobalSet($setName); |
| 74 | my @editForUser = $r->param('editForUser'); |
76 | my @editForUser = $r->param('editForUser'); |
| 75 | # some useful booleans |
77 | # some useful booleans |
| 76 | my $forUsers = scalar(@editForUser); |
78 | my $forUsers = scalar(@editForUser); |
| 77 | my $forOneUser = $forUsers == 1; |
79 | my $forOneUser = $forUsers == 1; |
| 78 | |
80 | |
| 79 | # build a quick lookup table |
81 | # build a quick lookup table |
| 80 | my %overrides = list2hash $r->param('override'); |
82 | my %overrides = list2hash $r->param('override'); |
| 81 | |
83 | |
|
|
84 | unless ($authz->hasPermissions($user, "modify_problem_sets")) { |
|
|
85 | $self->{submitError} = "You are not authorized to modify problem sets"; |
|
|
86 | return; |
|
|
87 | } |
|
|
88 | |
| 82 | # The set form was submitted |
89 | # The set form was submitted |
| 83 | if (defined($r->param('submit_set_changes'))) { |
90 | if (defined($r->param('submit_set_changes'))) { |
| 84 | foreach (@{SET_FIELDS()}) { |
91 | foreach (@{SET_FIELDS()}) { |
| 85 | if (defined($r->param($_))) { |
92 | if (defined($r->param($_))) { |
| 86 | if (m/_date$/) { |
93 | if (m/_date$/) { |
| … | |
… | |
| 117 | sub body { |
124 | sub body { |
| 118 | my ($self, @components) = @_; |
125 | my ($self, @components) = @_; |
| 119 | my $r = $self->{r}; |
126 | my $r = $self->{r}; |
| 120 | my $db = $self->{db}; |
127 | my $db = $self->{db}; |
| 121 | my $ce = $self->{ce}; |
128 | my $ce = $self->{ce}; |
|
|
129 | my $authz = $self->{authz}; |
|
|
130 | my $user = $r->param('user'); |
| 122 | my $courseName = $ce->{courseName}; |
131 | my $courseName = $ce->{courseName}; |
| 123 | my $setName = $self->getSetName(@components); |
132 | my $setName = $self->getSetName(@components); |
| 124 | my $setRecord = $db->getGlobalSet($setName); |
133 | my $setRecord = $db->getGlobalSet($setName); |
| 125 | my @editForUser = $r->param('editForUser'); |
134 | my @editForUser = $r->param('editForUser'); |
| 126 | # some useful booleans |
135 | # some useful booleans |
| 127 | my $forUsers = scalar(@editForUser); |
136 | my $forUsers = scalar(@editForUser); |
| 128 | my $forOneUser = $forUsers == 1; |
137 | my $forOneUser = $forUsers == 1; |
| 129 | |
138 | |
|
|
139 | return CGI::em("You are not authorized to access the Instructor tools.") unless $authz->hasPermissions($user, "access_instructor_tools"); |
|
|
140 | |
| 130 | ## Set Form ## |
141 | ## Set Form ## |
| 131 | my $userSetRecord; |
142 | my $userSetRecord; |
| 132 | my %overrideArgs; |
143 | my %overrideArgs; |
| 133 | if ($forOneUser) { |
144 | if ($forOneUser) { |
| 134 | $userSetRecord = $db->getUserSet($editForUser[0], $setName); |
145 | $userSetRecord = $db->getUserSet($editForUser[0], $setName); |