Author: vlendec Date: 2006-07-09 13:41:56 +0000 (Sun, 09 Jul 2006) New Revision: 16898
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=16898 Log: is_owner really needs the share name, not the snum... There are a lot of functions in printing like this. Jerry, if it is ok I'll start lifting the snum to one level higher step by step. Volker Modified: trunk/source/printing/printing.c Changeset: Modified: trunk/source/printing/printing.c =================================================================== --- trunk/source/printing/printing.c 2006-07-09 13:18:15 UTC (rev 16897) +++ trunk/source/printing/printing.c 2006-07-09 13:41:56 UTC (rev 16898) @@ -1942,9 +1942,10 @@ Return true if the current user owns the print job. ****************************************************************************/ -static BOOL is_owner(struct current_user *user, int snum, uint32 jobid) +static BOOL is_owner(struct current_user *user, const char *servicename, + uint32 jobid) { - struct printjob *pjob = print_job_find(lp_const_servicename(snum), jobid); + struct printjob *pjob = print_job_find(servicename, jobid); user_struct *vuser; if (!pjob || !user) @@ -1970,7 +1971,7 @@ *errcode = WERR_OK; - owner = is_owner(user, snum, jobid); + owner = is_owner(user, lp_const_servicename(snum), jobid); /* Check access against security descriptor or whether the user owns their job. */ @@ -2049,7 +2050,7 @@ return False; } - if (!is_owner(user, snum, jobid) && + if (!is_owner(user, lp_const_servicename(snum), jobid) && !print_access_check(user, snum, JOB_ACCESS_ADMINISTER)) { DEBUG(3, ("pause denied by security descriptor\n")); @@ -2109,7 +2110,7 @@ return False; } - if (!is_owner(user, snum, jobid) && + if (!is_owner(user, lp_const_servicename(snum), jobid) && !print_access_check(user, snum, JOB_ACCESS_ADMINISTER)) { DEBUG(3, ("resume denied by security descriptor\n")); *errcode = WERR_ACCESS_DENIED; @@ -2817,7 +2818,7 @@ become_root(); for (i=0;i<njobs;i++) { - BOOL owner = is_owner(user, snum, queue[i].job); + BOOL owner = is_owner(user, lp_const_servicename(snum), queue[i].job); if (owner || can_job_admin) { print_job_delete1(snum, queue[i].job);
