Esempio n. 1
0
  /**
   * Devuelve cierto si el usuario tiene el permiso
   *
   * @param respList cadena de responsabilidad
   * @param type Tipo de permiso a comprobar 0-->Eliminar expediente (enviar a la papelera)
   *     1->Iniciar expediente
   * @param idpcd Identificador del procedimiento para el que se va a comprobar el permiso
   * @return Cierto si el usuario tiene el permiso, falso en caso contrario
   * @throws ISPACException
   */
  public boolean isPermission(String respList, int type, int idpcd) throws ISPACException {

    if (!respList.equals(Responsible.SUPERVISOR)) {
      String sql =
          "WHERE ID_PCD = "
              + idpcd
              + DBUtil.addAndInResponsibleCondition("UID_USR", respList)
              + " AND PERMISO="
              + type;

      CollectionDAO objlist = new CollectionDAO(PermissionsDAO.class);
      return objlist.exist(mDbCnt, sql);
    }
    return false;
  }
Esempio n. 2
0
  /* (non-Javadoc)
   * @see ieci.tdw.ispac.api.IWorklistAPI#getCreateProcedures()
   */
  public IItemCollection getCreateProcedures() throws ISPACException {
    // Si es supervisor podra crear todos, sino le corresponderan los suyos y y los que pueden crear
    // los que sustituye
    String resp = null;

    DbCnt cnt = context.getConnection();
    try {
      Responsible user = context.getUser();
      SecurityMgr securityMgr = new SecurityMgr(cnt);
      // Comprobar si el usuario tiene asignada la función de Supervisor Total
      if (securityMgr.isSupervisorTotal(user.getUID())) {
        resp = Responsible.SUPERVISOR;
      } else {
        // los que sustituye
        resp = getSubstitutesRespString();
      }

      CollectionDAO pcdset = new CollectionDAO(PProcedimientoDAO.class);

      /* Procedimientos en vigor */
      String sqlquery =
          "WHERE ESTADO="
              + IProcedure.PCD_STATE_CURRENT
              + " AND TIPO="
              + IProcedure.PROCEDURE_TYPE
              + " AND ID IN"
              + " (SELECT ID_PCD FROM SPAC_SS_PERMISOS WHERE  PERMISO="
              + ISecurityAPI.ISPAC_RIGHTS_CREATEEXP
              + DBUtil.addAndInResponsibleCondition("UID_USR", resp)
              + ") ORDER BY NOMBRE";

      pcdset.query(cnt, sqlquery);

      return pcdset.disconnect();
    } catch (ISPACException ie) {
      throw new ISPACException("Error en WLWorklist:getProcs()", ie);
    } finally {
      context.releaseConnection(cnt);
    }
  }