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 |