Results 1 to 2 of 2

Thread: GetAppointmentRequest SOAP error service.PERM_DENIED after appointment deleted

Hybrid View

  1. #1
    Join Date
    Mar 2011
    Location
    Lansing, MI
    Posts
    17
    Rep Power
    4

    Default GetAppointmentRequest SOAP error service.PERM_DENIED after appointment deleted

    Dear Zimbra,

    Zimra full version info: Release 6.0.8_GA_2661.RHEL5_64_20100824100342 CentOS5_64 NETWORK edition.

    We have client application that adds appointments to Zimbra calendar, and tries to keep in sync. This is done with "helper" user account, not Zimbra admin.

    This works fine, except when user deletes appointment on their calendar. When that happens, the client application does not know it was deleted, and gets "service.PERM_DENIED" when trying to find the appointment by its ID.

    We cannot assume permission denied means appointment does not exist, as permission denied can happen for other reasons. Please let me know of solution, or workaround, for this, or if this is not issue in Zimra 7.


    Thank you,
    Ray

    Login Request with helper user account, not Zimbra administration:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope
    		xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    		xmlns:zimbra="urn:zimbra"
    		xmlns:zaccount="urn:zimbraAccount"
    		xmlns:zmail="urn:zimbraMail"
    		xmlns:zadmin="urn:zimbraAdmin">
    	<soap:Header>
    		<context xmlns="urn:zimbraSoap">
    			<nonotify/>
    			<noqualify/>
    		</context>
    
    	</soap:Header>
    	<soap:Body>
    		<zaccount:AuthRequest>
    			<account by="name">advisor-admin</account>
    			<password>...</password>
    		</zaccount:AuthRequest>
    
    	</soap:Body>
    </soap:Envelope>
    Login Response:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Header>
            <context xmlns="urn:zimbra">
                <change token="6849"/>
            </context>
        </soap:Header>
        <soap:Body>
            <AuthResponse xmlns="urn:zimbraAccount">
                <authToken>0_52cb...</authToken>
                <lifetime>119999</lifetime>
                <skin>beach</skin>
            </AuthResponse>
        </soap:Body>
    </soap:Envelope>
    Create Appointment Request:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope
    		xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    		xmlns:zimbra="urn:zimbra"
    		xmlns:zaccount="urn:zimbraAccount"
    		xmlns:zmail="urn:zimbraMail"
    		xmlns:zadmin="urn:zimbraAdmin">
    	<soap:Header>
    		<zimbra:context xmlns="urn:zimbraSoap">
    			<zaccount:authToken>0_52cb...</zaccount:authToken>
    			<nonotify/>
    			<noqualify/>
    		</zimbra:context>
    
    	</soap:Header>
    	<soap:Body>
    		<zmail:CreateAppointmentRequest>
    			<m l="262">
    				<su>SOAP Appointment</su>
    				<inv>
    					<comp
    							name="Test A 04-05 15 min"
    							status="CONF"
    							fb="B"
    							fba="B"
    							url="https://www.egr.msu.edu/test/adcalendar/">
    						<s d="20110405T140000Z"/>
    						<e d="20110405T141500Z"/>
    						<desc>Notes that show when appointment is opened.</desc>
    					</comp>
    				</inv>
    			</m>
    		</zmail:CreateAppointmentRequest>
    
    	</soap:Body>
    </soap:Envelope>
    Create Appointment Response:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Header>
            <context xmlns="urn:zimbra">
                <change token="6849"/>
            </context>
        </soap:Header>
        <soap:Body>
            <CreateAppointmentResponse xmlns="urn:zimbraMail" apptId="468" calItemId="468" invId="468-467"/>
        </soap:Body>
    </soap:Envelope>
    Get Appointment While Alive Request:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope
    		xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    		xmlns:zimbra="urn:zimbra"
    		xmlns:zaccount="urn:zimbraAccount"
    		xmlns:zmail="urn:zimbraMail"
    		xmlns:zadmin="urn:zimbraAdmin">
    	<soap:Header>
    		<zimbra:context xmlns="urn:zimbraSoap">
    			<zaccount:authToken>0_52cb...</zaccount:authToken>
    			<nonotify/>
    			<noqualify/>
    		</zimbra:context>
    
    	</soap:Header>
    	<soap:Body>
    		<zmail:GetAppointmentRequest id="e583b35d-c01d-49cd-85eb-d98380d7ca48:468-467"/>
    
    	</soap:Body>
    </soap:Envelope>
    Get Appointment While Alive Response:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Header>
            <context xmlns="urn:zimbra">
                <change token="6849"/>
            </context>
        </soap:Header>
        <soap:Body>
            <GetAppointmentResponse xmlns="urn:zimbraMail">
                <appt d="1303137671000" id="468" l="10" rev="8159" s="0" uid="a7e9c6b1-c6bd-4bdf-ae08-ea4bd1983302">
                    <inv compNum="0" id="467" seq="0" type="appt">
                        <comp apptId="468" calItemId="468" class="PUB" compNum="0" d="1303137671000" fb="B" fba="B" isOrg="1" loc="" method="PUBLISH" name="Test A 04-05 15 min" noBlob="1" rsvp="0" seq="0" status="CONF" transp="O" uid="a7e9c6b1-c6bd-4bdf-ae08-ea4bd1983302" url="https://www.egr.msu.edu/test/adcalendar/" x_uid="a7e9c6b1-c6bd-4bdf-ae08-ea4bd1983302">
                            <desc>Notes that show when appointment is opened.</desc>
                            <s d="20110405T140000Z"/>
                            <e d="20110405T141500Z"/>
                        </comp>
                    </inv>
                    <replies/>
                </appt>
            </GetAppointmentResponse>
        </soap:Body>
    </soap:Envelope>
    Get Appointment after deleted Request (this is same as prior request):
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope
    		xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    		xmlns:zimbra="urn:zimbra"
    		xmlns:zaccount="urn:zimbraAccount"
    		xmlns:zmail="urn:zimbraMail"
    		xmlns:zadmin="urn:zimbraAdmin">
    	<soap:Header>
    		<zimbra:context xmlns="urn:zimbraSoap">
    			<zaccount:authToken>0_52cb...</zaccount:authToken>
    			<nonotify/>
    			<noqualify/>
    		</zimbra:context>
    
    	</soap:Header>
    	<soap:Body>
    		<zmail:GetAppointmentRequest id="e583b35d-c01d-49cd-85eb-d98380d7ca48:468-467"/>
    
    	</soap:Body>
    </soap:Envelope>
    Get Appointment after deleted Response:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Header>
            <context xmlns="urn:zimbra">
                <change token="6849"/>
            </context>
        </soap:Header>
        <soap:Body>
            <soap:Fault>
                <soap:Code>
                    <soap:Value>soap:Sender</soap:Value>
                </soap:Code>
                <soap:Reason>
                    <soap:Text>permission denied: you do not have sufficient permissions</soap:Text>
                </soap:Reason>
                <soap:Detail>
                    <Error xmlns="urn:zimbra">
                        <Code>service.PERM_DENIED</Code>
                        <Trace>com.zimbra.common.service.ServiceException: permission denied: you do not have sufficient permissions
    ExceptionId:btpool0-12://carmen.egr.msu.edu/service/soap:1303137671960:86b812c87f8f0cc9
    Code:service.PERM_DENIED
    	at com.zimbra.common.service.ServiceException.PERM_DENIED(ServiceException.java:278)
    	at com.zimbra.cs.mailbox.Mailbox.checkAccess(Mailbox.java:1911)
    	at com.zimbra.cs.mailbox.Mailbox.getItemById(Mailbox.java:1923)
    	at com.zimbra.cs.mailbox.Mailbox.getCalendarItemById(Mailbox.java:3139)
    	at com.zimbra.cs.service.mail.GetCalendarItem.handle(GetCalendarItem.java:64)
    	at com.zimbra.soap.SoapEngine.dispatchRequest(SoapEngine.java:420)
    	at com.zimbra.soap.DocumentHandler.proxyRequest(DocumentHandler.java:491)
    	at com.zimbra.cs.service.mail.MailDocumentHandler.proxyRequest(MailDocumentHandler.java:142)
    	at com.zimbra.cs.service.mail.MailDocumentHandler.proxyRequest(MailDocumentHandler.java:124)
    	at com.zimbra.cs.service.mail.MailDocumentHandler.proxyIfNecessary(MailDocumentHandler.java:79)
    	at com.zimbra.soap.SoapEngine.dispatchRequest(SoapEngine.java:411)
    	at com.zimbra.soap.SoapEngine.dispatch(SoapEngine.java:274)
    	at com.zimbra.soap.SoapEngine.dispatch(SoapEngine.java:158)
    	at com.zimbra.soap.SoapServlet.doWork(SoapServlet.java:291)
    	at com.zimbra.soap.SoapServlet.doPost(SoapServlet.java:212)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    	at com.zimbra.cs.servlet.ZimbraServlet.service(ZimbraServlet.java:181)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    	at com.zimbra.cs.servlet.SetHeaderFilter.doFilter(SetHeaderFilter.java:79)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    	at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)
    	at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:155)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
    	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.handler.DebugHandler.handle(DebugHandler.java:77)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.Server.handle(Server.java:326)
    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:543)
    	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:939)
    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:413)
    	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)
    </Trace>
                    </Error>
                </soap:Detail>
            </soap:Fault>
        </soap:Body>
    </soap:Envelope>

  2. #2
    Join Date
    Mar 2011
    Location
    Lansing, MI
    Posts
    17
    Rep Power
    4

    Thumbs down

    I checked doing this with admin user, and still get "service.PERM_DENIED" trying to view deleted appointment.

    Is there any correct way to request appointment, to see if it was deleted?

Similar Threads

  1. zmzimletctl deploy zimbra_posixaccount.zip - ERROR -
    By todd_dsm in forum Administrators
    Replies: 0
    Last Post: 04-02-2009, 01:41 PM
  2. Replies: 0
    Last Post: 04-08-2008, 02:32 AM
  3. Deleted files not freeing their handle in /tmp
    By Centurion in forum Administrators
    Replies: 5
    Last Post: 12-08-2007, 03:34 PM
  4. Can't modify appointment via SOAP
    By Abak in forum Developers
    Replies: 6
    Last Post: 01-31-2007, 07:30 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •