File Source: MainMenu.java

     1  /*
     2   * Licensed to the Apache Software Foundation (ASF) under one or more
     3   *  contributor license agreements.  The ASF licenses this file to You
     4   * under the Apache License, Version 2.0 (the "License"); you may not
     5   * use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.  For additional information regarding
    15   * copyright in this work, please see the NOTICE file in the top level
    16   * directory of this distribution.
    17   */
    18  
    19  package org.apache.roller.weblogger.ui.struts2.core;
    20  
    21  import java.util.Collections;
    22  import java.util.List;
    23  import org.apache.commons.logging.Log;
    24  import org.apache.commons.logging.LogFactory;
    25  import org.apache.roller.weblogger.WebloggerException;
    26  import org.apache.roller.weblogger.business.WebloggerFactory;
    27  import org.apache.roller.weblogger.business.UserManager;
    28  import org.apache.roller.weblogger.pojos.WeblogPermission;
    29  import org.apache.roller.weblogger.pojos.User;
    30  import org.apache.roller.weblogger.pojos.Weblog;
    31  import org.apache.roller.weblogger.ui.struts2.util.UIAction;
    32  
    33  
    34  /**
    35   * Allows user to view and pick from list of his/her websites.
    36   */
    37  public class MainMenu extends UIAction {
    38      
             /* 
    P/P       *  Method: org.apache.roller.weblogger.ui.struts2.core.MainMenu__static_init
              * 
              *  Postconditions:
              *    init'ed(log)
              */
    39      private static Log log = LogFactory.getLog(MainMenu.class);
    40      
    41      private String websiteId = null;
    42      private String inviteId = null;
    43      
    44      
             /* 
    P/P       *  Method: void org.apache.roller.weblogger.ui.struts2.core.MainMenu()
              * 
              *  Postconditions:
              *    this.inviteId == null
              *    this.websiteId == null
              *    this.pageTitle == &"yourWebsites.title"
              */
    45      public MainMenu() {
    46          this.pageTitle = "yourWebsites.title";
    47      }
    48      
    49      
    50      // override default security, we do not require an action weblog
    51      public boolean isWeblogRequired() {
                 /* 
    P/P           *  Method: bool isWeblogRequired()
                  * 
                  *  Postconditions:
                  *    return_value == 0
                  */
    52          return false;
    53      }
    54      
    55      
    56      public String execute() {
    57          
                 /* 
    P/P           *  Method: String execute()
                  * 
                  *  Postconditions:
                  *    return_value == &"success"
                  */
    58          return SUCCESS;
    59      }
    60      
    61      
    62      public String accept() {
    63          
    64          try {
                     /* 
    P/P               *  Method: String accept()
                      * 
                      *  Preconditions:
                      *    init'ed(this.inviteId)
                      *    (soft) log != null
                      * 
                      *  Presumptions:
                      *    org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@65 != null
                      *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@65 != null
                      *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@72 != null
                      *    org.apache.roller.weblogger.pojos.WeblogPermission:getWebsite(...)@74 != null
                      * 
                      *  Postconditions:
                      *    return_value == &"success"
                      * 
                      *  Test Vectors:
                      *    org.apache.roller.weblogger.business.UserManager:getPermissions(...)@66: Addr_Set{null}, Inverse{null}
                      */
    65              UserManager userMgr = WebloggerFactory.getWeblogger().getUserManager();
    66              WeblogPermission perms = userMgr.getPermissions(getInviteId());
    67              if (perms != null) {        
    68                  // TODO ROLLER_2.0: notify inviter that invitee has accepted invitation
    69                  // TODO EXCEPTIONS: better exception handling
    70                  perms.setPending(false);
    71                  userMgr.savePermissions(perms);
    72                  WebloggerFactory.getWeblogger().flush();
    73  
    74                  addMessage("yourWebsites.accepted", perms.getWebsite().getHandle());
    75              } else {
    76                  addError("yourWebsites.permNotFound");
    77              }
    78          } catch (WebloggerException ex) {
    79              log.error("Error handling invitation accept - "+getInviteId(), ex);
    80              // TODO: i18n
    81              addError("invite accept failed.");
    82          }
    83          
    84          return SUCCESS;
    85      }
    86      
    87      
    88      public String decline() {
    89          
    90          try {
                     /* 
    P/P               *  Method: String decline()
                      * 
                      *  Preconditions:
                      *    init'ed(this.inviteId)
                      *    (soft) log != null
                      * 
                      *  Presumptions:
                      *    org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@91 != null
                      *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@91 != null
                      *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@99 != null
                      *    org.apache.roller.weblogger.pojos.WeblogPermission:getWebsite(...)@94 != null
                      * 
                      *  Postconditions:
                      *    return_value == &"success"
                      * 
                      *  Test Vectors:
                      *    org.apache.roller.weblogger.business.UserManager:getPermissions(...)@92: Addr_Set{null}, Inverse{null}
                      */
    91              UserManager userMgr = WebloggerFactory.getWeblogger().getUserManager();
    92              WeblogPermission perms = userMgr.getPermissions(getInviteId());
    93              if (perms != null) {
    94                  String handle = perms.getWebsite().getHandle();
    95                          
    96                  // TODO ROLLER_2.0: notify inviter that invitee has declined invitation
    97                  // TODO EXCEPTIONS: better exception handling here
    98                  userMgr.removePermissions(perms);
    99                  WebloggerFactory.getWeblogger().flush();
   100  
   101                  addMessage("yourWebsites.declined", handle);
   102              } else {
   103                  addError("yourWebsites.permNotFound");
   104              }
   105          } catch (WebloggerException ex) {
   106              log.error("Error handling invitation decline - "+getInviteId(), ex);
   107              // TODO: i18n
   108              addError("invite decline failed.");
   109          }
   110          
   111          return SUCCESS;
   112      }
   113      
   114      
   115      public String resign() {
   116          
                 /* 
    P/P           *  Method: String resign()
                  * 
                  *  Preconditions:
                  *    init'ed(this.websiteId)
                  *    (soft) log != null
                  * 
                  *  Presumptions:
                  *    org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@120 != null
                  *    org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@123 != null
                  *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@120 != null
                  *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@123 != null
                  *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@130 != null
                  *    ...
                  * 
                  *  Postconditions:
                  *    return_value == &"success"
                  * 
                  *  Test Vectors:
                  *    org.apache.roller.weblogger.business.UserManager:getPermissions(...)@124: Addr_Set{null}, Inverse{null}
                  */
   117          User user = getAuthenticatedUser();
   118          
   119          try {
   120              UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
   121              Weblog website = mgr.getWebsite(getWebsiteId());
   122              
   123              UserManager userMgr = WebloggerFactory.getWeblogger().getUserManager();
   124              WeblogPermission perms = userMgr.getPermissions(website, user);
   125              
   126              if (perms != null) {
   127                  // TODO ROLLER_2.0: notify website members that user has resigned
   128                  // TODO EXCEPTIONS: better exception handling
   129                  userMgr.removePermissions(perms);
   130                  WebloggerFactory.getWeblogger().flush();
   131              }
   132              
   133              addMessage("yourWebsites.resigned", perms.getWebsite().getHandle());
   134          } catch (WebloggerException ex) {
   135              log.error("Error doing weblog resign - "+getWebsiteId(), ex);
   136              // TODO: i18n
   137              addError("resignation failed.");
   138          }
   139          
   140          return SUCCESS;
   141      }
   142      
   143      
   144      public List getExistingPermissions() {
   145          try {
                     /* 
    P/P               *  Method: List getExistingPermissions()
                      * 
                      *  Presumptions:
                      *    init'ed(java.util.Collections.EMPTY_LIST)
                      *    org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@146 != null
                      *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@146 != null
                      * 
                      *  Postconditions:
                      *    init'ed(return_value)
                      */
   146              UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
   147              return mgr.getAllPermissions(getAuthenticatedUser());
   148          } catch(Exception e) {
   149              return Collections.EMPTY_LIST;
   150          }
   151      }
   152      
   153      public List getPendingPermissions() {
   154          try {
                     /* 
    P/P               *  Method: List getPendingPermissions()
                      * 
                      *  Presumptions:
                      *    init'ed(java.util.Collections.EMPTY_LIST)
                      *    org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@155 != null
                      *    org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@155 != null
                      * 
                      *  Postconditions:
                      *    init'ed(return_value)
                      */
   155              UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
   156              return mgr.getPendingPermissions(getAuthenticatedUser());
   157          } catch(Exception e) {
   158              return Collections.EMPTY_LIST;
   159          }
   160      }
   161      
   162  
   163      public String getWebsiteId() {
                 /* 
    P/P           *  Method: String getWebsiteId()
                  * 
                  *  Preconditions:
                  *    init'ed(this.websiteId)
                  * 
                  *  Postconditions:
                  *    return_value == this.websiteId
                  *    init'ed(return_value)
                  */
   164          return websiteId;
   165      }
   166  
   167      public void setWebsiteId(String websiteId) {
                 /* 
    P/P           *  Method: void setWebsiteId(String)
                  * 
                  *  Postconditions:
                  *    this.websiteId == websiteId
                  *    init'ed(this.websiteId)
                  */
   168          this.websiteId = websiteId;
   169      }
   170  
   171      public String getInviteId() {
                 /* 
    P/P           *  Method: String getInviteId()
                  * 
                  *  Preconditions:
                  *    init'ed(this.inviteId)
                  * 
                  *  Postconditions:
                  *    return_value == this.inviteId
                  *    init'ed(return_value)
                  */
   172          return inviteId;
   173      }
   174  
   175      public void setInviteId(String inviteId) {
                 /* 
    P/P           *  Method: void setInviteId(String)
                  * 
                  *  Postconditions:
                  *    this.inviteId == inviteId
                  *    init'ed(this.inviteId)
                  */
   176          this.inviteId = inviteId;
   177      }
   178      
   179  }








SofCheck Inspector Build Version : 2.18479
MainMenu.java 2009-Jan-02 14:25:00
MainMenu.class 2009-Sep-04 03:12:45