Version 2.0.3 release: xx February 2007
28Feb07
+kes Apply Command ACL filter to JobId list in restore command.
kes Correct typeo in var.c patch.
27Feb07
kes Don't let Bacula prune File or Job records for the current Job.
Fixes bug #771.
kes Remove rl_catch_signal from console.c as it conflicted
with the header definition. Fixes bug #765.
-ebl Fixes bug #766 about RunsOnClient = Yes
+ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
04Feb07
kes Clarify some stored/acquire messages to indicate if the
problem is with read or append.
below.
28Feb07
+kes Apply Command ACL filter to JobId list in restore command.
kes Correct typeo in var.c patch.
27Feb07
kes Don't let Bacula prune File or Job records for the current Job.
Fixes bug #771.
kes Remove rl_catch_signal from console.c as it conflicted
with the header definition. Fixes bug #765.
-ebl Fixes bug #766 about RunsOnClient = Yes
+ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
04Feb07
kes Clarify some stored/acquire messages to indicate if the
problem is with read or append.
}
}
- if (*rx->JobIds == 0) {
- bsendmsg(ua, _("No Jobs selected.\n"));
- return 0;
- }
- if (strchr(rx->JobIds,',')) {
- bsendmsg(ua, _("You have selected the following JobIds: %s\n"), rx->JobIds);
- }
- else {
- bsendmsg(ua, _("You have selected the following JobId: %s\n"), rx->JobIds);
- }
-
-
+ POOLMEM *JobIds = get_pool_memory(PM_FNAME);
+ *JobIds = 0;
rx->TotalFiles = 0;
+ /*
+ * Find total number of files to be restored, and filter the JobId
+ * list to contain only ones permitted by the ACL conditions.
+ */
for (p=rx->JobIds; ; ) {
+ char ed1[50];
int stat = get_next_jobid_from_list(&p, &JobId);
if (stat < 0) {
bsendmsg(ua, _("Invalid JobId in list.\n"));
+ free_pool_memory(JobIds);
return 0;
}
if (stat == 0) {
memset(&jr, 0, sizeof(JOB_DBR));
jr.JobId = JobId;
if (!db_get_job_record(ua->jcr, ua->db, &jr)) {
- char ed1[50];
bsendmsg(ua, _("Unable to get Job record for JobId=%s: ERR=%s\n"),
edit_int64(JobId, ed1), db_strerror(ua->db));
+ free_pool_memory(JobIds);
return 0;
}
if (!acl_access_ok(ua, Job_ACL, jr.Name)) {
- bsendmsg(ua, _("No authorization. Job \"%s\" not selected.\n"),
- jr.Name);
+ bsendmsg(ua, _("No authorization for JobId=%s (Job \"%s\"). Not selected.\n"),
+ edit_int64(JobId, ed1), jr.Name);
continue;
}
+ if (*JobIds != 0) {
+ pm_strcat(JobIds, ",");
+ }
+ pm_strcat(JobIds, edit_int64(JobId, ed1));
rx->TotalFiles += jr.JobFiles;
}
+ free_pool_memory(rx->JobIds);
+ rx->JobIds = JobIds; /* Set ACL filtered list */
+ if (*rx->JobIds == 0) {
+ bsendmsg(ua, _("No Jobs selected.\n"));
+ return 0;
+ }
+ if (strchr(rx->JobIds,',')) {
+ bsendmsg(ua, _("You have selected the following JobIds: %s\n"), rx->JobIds);
+ } else {
+ bsendmsg(ua, _("You have selected the following JobId: %s\n"), rx->JobIds);
+ }
return 1;
}
General:
28Feb07
kes Correct typeo in var.c patch.
+kes Apply Command ACL filter to JobId list in restore command.
27Feb07
kes Don't let Bacula prune File or Job records for the current Job.
kes Fix variable substitution pad + inc bug reported (with patch)
Fixes bug #771.
kes Remove rl_catch_signal from console.c as it conflicted
with the header definition. Fixes bug #765.
-ebl Fixes bug #766 about RunsOnClient = Yes
+ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
04Feb07
kes Clarify some stored/acquire messages to indicate if the
problem is with read or append.