Package org.svnadmin.service

Source Code of org.svnadmin.service.PjGrUsrService

package org.svnadmin.service;

import java.util.List;

import javax.annotation.Resource;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.svnadmin.Constants;
import org.svnadmin.dao.PjGrUsrDao;
import org.svnadmin.entity.PjGrUsr;
import org.svnadmin.entity.Usr;

/**
* 项目组用户服务层
*
* @author <a href="mailto:yuanhuiwu@gmail.com">Huiwu Yuan</a>
* @since 1.0
*
*/
@Service(PjGrUsrService.BEAN_NAME)
public class PjGrUsrService {
  /**
   * Bean名称
   */
  public static final String BEAN_NAME = "pjGrUsrService";
  /**
   * 项目组用户DAO
   */
  @Resource(name = PjGrUsrDao.BEAN_NAME)
  protected PjGrUsrDao pjGrUsrDao;

  /**
   * SVN服务层
   */
  @Resource(name = SvnService.BEAN_NAME)
  protected SvnService svnService;

  /**
   * @param pj
   *            项目
   * @param gr
   *            组
   * @param usr
   *            用户
   * @return 组用户
   */
  public PjGrUsr get(String pj, String gr, String usr) {
    return pjGrUsrDao.get(pj, gr, usr);
  }

  /**
   * @param pj
   *            项目
   * @param gr
   *            组
   * @return 组用户列表
   */
  public List<PjGrUsr> list(String pj, String gr) {
    return pjGrUsrDao.getList(pj, gr);
  }

  /**
   * 保存
   *
   * @param pj
   *            项目
   * @param gr
   *            组
   * @param usrs
   *            用户
   */
  @Transactional
  public void save(String pj, String gr, String[] usrs) {

    if (usrs == null || usrs.length == 0) {
      return;
    }

    for (String usr : usrs) {
      if (StringUtils.isBlank(usr)) {
        continue;
      }
      PjGrUsr pjGrUsr = new PjGrUsr();
      pjGrUsr.setPj(pj);
      pjGrUsr.setGr(gr);
      pjGrUsr.setUsr(usr);
      pjGrUsrDao.save(pjGrUsr);
    }
    // export
    svnService.exportConfig(pj);
  }

  /**
   * 删除
   *
   * @param pj
   *            项目
   * @param gr
   *            组
   * @param usr
   *            用户
   */
  @Transactional
  public void delete(String pj, String gr, String usr) {
    pjGrUsrDao.delete(pj, gr, usr);
    svnService.exportConfig(pj);
  }

  /**
   * 是否有项目管理员的权限
   * @param usr 用户
   * @param pj 项目
   * @return 有权限返回true,否则返回false
   */
  public boolean hasManagerRight(Usr usr,String pj){
    if (pj == null) {
      return false;
    }
    // TODO delete me 为了兼容3.0版本 see: Issue 4
    String gr = pj + "_" + Constants.GROUP_MANAGER;
    if (this.get(pj, gr, usr.getUsr()) != null) {
      return true;
    }
    // 3.0.1版本以后
    gr = Constants.GROUP_MANAGER;
    return this.get(pj, gr, usr.getUsr()) != null;
  }
}
TOP

Related Classes of org.svnadmin.service.PjGrUsrService

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.