001    /**
002     * Copyright 2005-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package edu.sampleu.demo.kitchensink;
017    
018    import org.kuali.rice.krad.web.controller.UifControllerBase;
019    import org.kuali.rice.krad.web.form.UifFormBase;
020    import org.springframework.stereotype.Controller;
021    import org.springframework.validation.BindingResult;
022    import org.springframework.web.bind.annotation.ModelAttribute;
023    import org.springframework.web.bind.annotation.RequestMapping;
024    import org.springframework.web.servlet.ModelAndView;
025    
026    import javax.servlet.http.HttpServletRequest;
027    import javax.servlet.http.HttpServletResponse;
028    
029    /**
030     * Controller for the guest user access
031     *
032     * @author Kuali Rice Team (rice.collab@kuali.org)
033     */
034    @Controller
035    @RequestMapping(value = "/guestviews")
036    public class UifGuestController extends UifControllerBase {
037    
038        /**
039         * @see org.kuali.rice.krad.web.controller.UifControllerBase#createInitialForm(javax.servlet.http.HttpServletRequest)
040         */
041        @Override
042        protected UifComponentsTestForm createInitialForm(HttpServletRequest request) {
043            return new UifComponentsTestForm();
044        }
045    
046        /**
047         *  Initial method called when requesting new view
048         *
049         *  <p>
050         *  For guest access we check that only certain views can be called through this controller.
051         *  </p>
052         *
053         * @param form - model
054         * @param result - binding result
055         * @param request - servlet request
056         * @param response - servlet response
057         * @return
058         */
059        @Override
060        @RequestMapping(params = "methodToCall=start")
061        public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form,
062                HttpServletRequest request, HttpServletResponse response) {
063            if (!form.getViewId().equals("UifGuestUserView")) {
064                throw new RuntimeException("Guest user not allowed to acces this view : " + form.getViewId());
065            }
066            return super.start(form,request,response);
067        }
068    }