Changeset 3810
- Timestamp:
- Sep 1, 2010, 2:38:23 PM (13 years ago)
- Location:
- trunk/client/servlet/src/org/proteios
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/client/servlet/src/org/proteios/action/role/SaveRolePermissions.java
-
Property
svn:keywords
set to
Id
r3600 r3810 2 2 $Id$ 3 3 4 Copyright (C) 2006, 2007 Gregory Vincic4 Copyright (C) 2006, 2007, 2010 Gregory Vincic 5 5 6 6 Files are copyright by their respective authors. The contributions to … … 44 44 import java.util.Set; 45 45 46 /**47 * @author gregory48 */49 46 public class SaveRolePermissions 50 47 extends ProteiosAction<SaveRolePermissions> … … 59 56 60 57 dc = newDbControl(); 61 roleId = getValidInteger(ViewActiveRole.VID); 58 verifySessionAttributes(ViewActiveRole.VID); 59 roleId = getSessionAttribute(ViewActiveRole.VID); 62 60 role = Role.getById(dc, roleId); 63 61 -
Property
svn:keywords
set to
-
trunk/client/servlet/src/org/proteios/action/role/ViewActiveRole.java
r3809 r3810 31 31 import org.proteios.core.DbControl; 32 32 import org.proteios.core.Role; 33 import org.proteios.core.RoleKey; 34 import org.proteios.core.Item; 35 import org.proteios.core.SystemItems; 36 import org.proteios.core.Permission; 33 37 import org.proteios.gui.Toolbar; 34 38 import org.proteios.gui.Title; 35 import org.proteios.gui.table. Table;36 import org.proteios.gui.form. TextField;39 import org.proteios.gui.table.*; 40 import org.proteios.gui.form.*; 37 41 import org.proteios.gui.ColumnContainer; 38 import org.proteios.gui.form.Form;39 import org.proteios.gui.form.RoleForm;40 42 import org.proteios.gui.layout.RowLayout; 41 43 import se.lu.thep.waf.ActionException; 42 44 import se.lu.thep.waf.constraints.InvalidParameterValue; 43 45 import se.lu.thep.waf.constraints.VInteger; 46 import se.lu.thep.waf.constraints.VString; 47 import java.util.Set; 48 import java.util.Vector; 49 import java.util.List; 50 import java.util.ArrayList; 51 import java.util.Collections; 52 import java.util.EnumSet; 44 53 45 54 /** … … 87 96 "Save")); 88 97 89 permTable = get FormFactory().getRolePermissionsTable(role);98 permTable = getRolePermissionsTable(role); 90 99 permTable.add(rolesForm.fs.itemIdF); 91 100 permTable.setToolbar(toolbar); … … 100 109 } 101 110 111 public Table getRolePermissionsTable(Role role) 112 { 113 Table permTable = new Table("permissionsTable"); 114 permTable.setTitle("Permissions"); 115 if(role == null) 116 return permTable; 117 118 permTable.setSubtitle(role.getName()); 119 permTable.add(new Column<String>("Item")); 120 permTable.add(new Column<String>("Read")); 121 permTable.add(new Column<String>("Write")); 122 permTable.add(new Column<String>("Use")); 123 permTable.add(new Column<String>("Create")); 124 permTable.add(new Column<String>("Delete")); 125 /*********************************************************************** 126 * Sort roles 127 */ 128 Item[] values = Item.values(); 129 Vector<String> itemV = new Vector<String>(values.length); 130 List<Item> exclude = new ArrayList<Item>(); 131 // Exclude values based on what role is shown 132 exclude.add(Item.SESSION); 133 exclude.add(Item.SYSTEM); 134 exclude.add(Item.BIOMATERIALEVENT); 135 exclude.add(Item.BIOSOURCE); 136 exclude.add(Item.DISKUSAGE); 137 exclude.add(Item.QUOTATYPE); 138 exclude.add(Item.CLIENT); 139 exclude.add(Item.GLOBALDEFAULTSETTING); 140 exclude.add(Item.ITEMKEY); 141 exclude.add(Item.PROJECTKEY); 142 exclude.add(Item.PROTEIOS_BIOMATERIAL); 143 exclude.add(Item.PROTEIOS_OFFSET); 144 exclude.add(Item.ROLEKEY); 145 exclude.add(Item.SESSION); 146 exclude.add(Item.SETTING); 147 148 for (Item i : values) 149 { 150 if(!exclude.contains(i)) 151 { 152 itemV.add(i.name()); 153 } 154 } 155 List<String> list = Collections.list(itemV.elements()); 156 Collections.sort(list); 157 /*********************************************************************** 158 * Create rows with checkboxes 159 */ 160 for (String itemName : list) 161 { 162 Item i = Item.valueOf(itemName); 163 int keyId = SystemItems.getRoleKeyId(i); 164 Set<Permission> itemPermissions = i.getDefinedPermissions(); 165 Row row = new Row(i.getAlias()); 166 row.addCell(new Cell<String>(i.toString())); 167 row.addCell(getItemPermissionCell(i, itemPermissions, 168 Permission.READ, role, keyId)); 169 row.addCell(getItemPermissionCell(i, itemPermissions, 170 Permission.WRITE, role, keyId)); 171 row.addCell(getItemPermissionCell(i, itemPermissions, 172 Permission.USE, role, keyId)); 173 row.addCell(getItemPermissionCell(i, itemPermissions, 174 Permission.CREATE, role, keyId)); 175 row.addCell(getItemPermissionCell(i, itemPermissions, 176 Permission.DELETE, role, keyId)); 177 permTable.addRow(row); 178 } 179 return permTable; 180 } 181 182 private Cell<?> getItemPermissionCell(Item itemType, 183 Set<Permission> itemPermissions, Permission permission, Role role, 184 int keyId) 185 { 186 VString vrolePerm = new VString(itemType.name(), 1, 20, true); 187 Checkbox<VString> checkBox = new Checkbox<VString>(vrolePerm); 188 checkBox.setValue(permission.name()); 189 if (role != null && itemPermissions != null) 190 { 191 if (keyId > 0) 192 { 193 RoleKey key = RoleKey.getById(role.getDbControl(), keyId); 194 Set<Permission> permissions = role == null ? EnumSet 195 .noneOf(Permission.class) : key.getPermissions(role); 196 if (permissions.contains(permission)) 197 checkBox.isChecked(true); 198 } 199 return new Cell<Checkbox<VString>>(checkBox); 200 } 201 return new Cell<String>(""); 202 } 203 102 204 } -
trunk/client/servlet/src/org/proteios/gui/form/FormFactory.java
r3809 r3810 165 165 import java.text.SimpleDateFormat; 166 166 import java.util.ArrayList; 167 import java.util.Collections;168 167 import java.util.Date; 169 import java.util.EnumSet;170 168 import java.util.HashMap; 171 169 import java.util.Hashtable; … … 173 171 import java.util.List; 174 172 import java.util.Set; 175 import java.util.Vector;176 173 177 174 import javax.servlet.http.HttpServletRequest; … … 2266 2263 // Cleaning up from here 2267 2264 2268 public Table getRolePermissionsTable(Role role)2269 {2270 Table permTable = new Table("permissionsTable");2271 permTable.setTitle("Permissions");2272 if(role == null)2273 return permTable;2274 2275 permTable.setSubtitle(role.getName());2276 permTable.add(new Column<String>("Item"));2277 permTable.add(new Column<String>("Read"));2278 permTable.add(new Column<String>("Write"));2279 permTable.add(new Column<String>("Use"));2280 permTable.add(new Column<String>("Create"));2281 permTable.add(new Column<String>("Delete"));2282 /***********************************************************************2283 * Sort roles2284 */2285 Item[] values = Item.values();2286 Vector<String> itemV = new Vector<String>(values.length);2287 List<Item> exclude = new ArrayList<Item>();2288 // Exclude values based on what role is shown2289 exclude.add(Item.SESSION);2290 exclude.add(Item.SYSTEM);2291 exclude.add(Item.BIOMATERIALEVENT);2292 exclude.add(Item.BIOSOURCE);2293 exclude.add(Item.DISKUSAGE);2294 exclude.add(Item.QUOTATYPE);2295 exclude.add(Item.CLIENT);2296 exclude.add(Item.GLOBALDEFAULTSETTING);2297 exclude.add(Item.ITEMKEY);2298 exclude.add(Item.PROJECTKEY);2299 exclude.add(Item.PROTEIOS_BIOMATERIAL);2300 exclude.add(Item.PROTEIOS_OFFSET);2301 exclude.add(Item.ROLEKEY);2302 exclude.add(Item.SESSION);2303 exclude.add(Item.SETTING);2304 2305 for (Item i : values)2306 {2307 if(!exclude.contains(i))2308 {2309 itemV.add(i.name());2310 }2311 }2312 List<String> list = Collections.list(itemV.elements());2313 Collections.sort(list);2314 /***********************************************************************2315 * Create rows with checkboxes2316 */2317 for (String itemName : list)2318 {2319 Item i = Item.valueOf(itemName);2320 int keyId = SystemItems.getRoleKeyId(i);2321 Set<Permission> itemPermissions = i.getDefinedPermissions();2322 Row row = new Row(i.getAlias());2323 row.addCell(new Cell<String>(i.toString()));2324 row.addCell(getItemPermissionCell(i, itemPermissions,2325 Permission.READ, role, keyId));2326 row.addCell(getItemPermissionCell(i, itemPermissions,2327 Permission.WRITE, role, keyId));2328 row.addCell(getItemPermissionCell(i, itemPermissions,2329 Permission.USE, role, keyId));2330 row.addCell(getItemPermissionCell(i, itemPermissions,2331 Permission.CREATE, role, keyId));2332 row.addCell(getItemPermissionCell(i, itemPermissions,2333 Permission.DELETE, role, keyId));2334 permTable.addRow(row);2335 }2336 return permTable;2337 }2338 2339 private Cell<?> getItemPermissionCell(Item itemType,2340 Set<Permission> itemPermissions, Permission permission, Role role,2341 int keyId)2342 {2343 VString vrolePerm = new VString(itemType.name(), 1, 20, true);2344 Checkbox<VString> checkBox = new Checkbox<VString>(vrolePerm);2345 checkBox.setValue(permission.name());2346 if (role != null && itemPermissions != null)2347 {2348 if (keyId > 0)2349 {2350 RoleKey key = RoleKey.getById(role.getDbControl(), keyId);2351 Set<Permission> permissions = role == null ? EnumSet2352 .noneOf(Permission.class) : key.getPermissions(role);2353 if (permissions.contains(permission))2354 checkBox.isChecked(true);2355 }2356 return new Cell<Checkbox<VString>>(checkBox);2357 }2358 return new Cell<String>("");2359 }2360 2265 2361 2266
Note: See TracChangeset
for help on using the changeset viewer.