Package org.beangle.ems.security.service

Source Code of org.beangle.ems.security.service.GroupServiceImpl

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.ems.security.service;

import java.sql.Date;
import java.util.List;

import org.beangle.collection.CollectUtils;
import org.beangle.ems.security.Group;
import org.beangle.ems.security.GroupMember;
import org.beangle.ems.security.User;
import org.beangle.ems.security.event.GroupCreationEvent;
import org.beangle.ems.security.model.GroupBean;
import org.beangle.ems.security.model.GroupMemberBean;
import org.beangle.model.persist.impl.AbstractHierarchyService;
import org.beangle.model.query.builder.OqlBuilder;

/**
* @author chaostone
* @version $Id: GroupServiceImpl.java Jul 29, 2011 1:58:51 AM chaostone $
*/
public class GroupServiceImpl extends AbstractHierarchyService<GroupBean, Group> implements GroupService {
  private UserService userService;

  public void createGroup(User owner, Group group) {
    group.setUpdatedAt(new Date(System.currentTimeMillis()));
    group.setCreatedAt(new Date(System.currentTimeMillis()));
    group.setOwner(owner);
    group.getMembers().add(new GroupMemberBean(group, owner, GroupMember.Ship.MANAGER));
    entityDao.saveOrUpdate(group);
    publish(new GroupCreationEvent(group));
  }

  /**
   * 超级管理员不能删除
   */
  public void removeGroup(User manager, List<Group> groups) {
    List<Object> removed = CollectUtils.newArrayList();
    for (final Group group : groups) {
      if (group.getOwner().equals(manager) || userService.isRoot(manager)) entityDao.remove(group);
    }
    entityDao.remove(removed);
  }

  public void moveGroup(Group group, Group parent, int indexno) {
    move((GroupBean) group, (GroupBean) parent, indexno);
  }

  @Override
  @SuppressWarnings({ "rawtypes", "unchecked" })
  protected List<GroupBean> getTopNodes(GroupBean m) {
    OqlBuilder builder = OqlBuilder.from(Group.class, "g");
    builder.where("g.parent is null");
    return entityDao.search(builder);
  }

  public void setUserService(UserService userService) {
    this.userService = userService;
  }

}
TOP

Related Classes of org.beangle.ems.security.service.GroupServiceImpl

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.