Package org.osforce.connect.web.module.system

Source Code of org.osforce.connect.web.module.system.PermissionWidget

package org.osforce.connect.web.module.system;

import java.util.List;
import java.util.Map;

import org.osforce.connect.entity.system.Permission;
import org.osforce.connect.entity.system.ProjectCategory;
import org.osforce.connect.entity.system.Resource;
import org.osforce.connect.entity.system.Role;
import org.osforce.connect.service.system.PermissionService;
import org.osforce.connect.service.system.ProjectCategoryService;
import org.osforce.connect.service.system.ResourceService;
import org.osforce.connect.service.system.RoleService;
import org.osforce.connect.web.AttributeKeys;
import org.osforce.spring4me.commons.collection.CollectionUtil;
import org.osforce.spring4me.web.stereotype.Widget;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
*
* @author <a href="mailto:haozhonghu@hotmail.com">gavin</a>
* @since 0.1.0
* @create May 19, 2011 - 12:34:25 PM
* <a href="http://www.opensourceforce.org">开源力量</a>
*/
@Widget
@RequestMapping("/system/permission")
public class PermissionWidget {

  private RoleService roleService;
  private ResourceService resourceService;
  private PermissionService permissionService;
  private ProjectCategoryService categoryService;
 
  public PermissionWidget() {
  }
 
  @Autowired
  public void setRoleService(RoleService roleService) {
    this.roleService = roleService;
  }
 
  @Autowired
  public void setResourceService(ResourceService resourceService) {
    this.resourceService = resourceService;
  }
 
  @Autowired
  public void setPermissionService(PermissionService permissionService) {
    this.permissionService = permissionService;
  }
 
  @Autowired
  public void setCategoryService(ProjectCategoryService categoryService) {
    this.categoryService = categoryService;
  }
 
  @RequestMapping("/list-view")
  public String doListView(@RequestParam Long siteId,
      @RequestParam(required=false) Long categoryId, Model model) {
    List<ProjectCategory> categories = categoryService.getProjectCategoryList(siteId, null);
    model.addAttribute(AttributeKeys.PROJECT_CATEGORY_LIST_KEY_READABLE, categories);
    if(categoryId==null && categories.size()>0) {
      categoryId = categories.get(0).getId();
    }
    model.addAttribute("categoryId", categoryId);
    //
    List<Permission> permissions = permissionService.getPermissionList(siteId, categoryId);
    Map<String, Permission> resourceMap = CollectionUtil.newHashMap();
    for(Permission p : permissions) {
      resourceMap.put(p.getResource().getCode(), p);
    }
    model.addAttribute("resourceMap", resourceMap);
    //
    List<Resource> resources = resourceService.getResourceList();
    model.addAttribute(AttributeKeys.RESOURCE_LIST_KEY_READABLE, resources);
    //
    List<Role> roles = roleService.getRoleList(categoryId);
    model.addAttribute(AttributeKeys.ROLE_LIST_KEY_READABLE, roles);
    return "system/permission-list";
  }
 
  @RequestMapping(value="/form-action", method=RequestMethod.POST)
  public String doFormAction(@RequestParam Long siteId, @RequestParam Long categoryId,
      @RequestParam Long[] resourceIds, @RequestParam Long[] roleIds) {
    for(int i=0; i<resourceIds.length; i++) {
      Long resourceId = resourceIds[i];
      Long roleId = roleIds[i];
      Permission permission = permissionService.getPermission(resourceId, categoryId);
      if(permission==null) {
        permission = new Permission(resourceId, categoryId);
      }
      permission.setRoleId(roleId);
      permissionService.updatePermission(permission);
    }
    return String.format("redirect:/system/permission/list?siteId=%s", siteId);
  }
 
}
TOP

Related Classes of org.osforce.connect.web.module.system.PermissionWidget

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.