Class McpTokenScopeDao

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstractDaoConstant
ru.bitel.bgbilling.plugins.mcp.server.dao.McpTokenScopeDao

public class McpTokenScopeDao extends ru.bitel.bgbilling.common.dao.AbstractDaoConstant
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     

    Fields inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant

    con, ERROR, fields, moduleId, SQL_ALL, SQL_AND, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE, tableName
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    findByTokenId(int tokenId)
     
    boolean
    insertScope(int tokenId, String component, String toolName)
    Вставить один скоуп токена.
    void
    replaceScopes(int tokenId, List<McpScopeInfo> scopes)
    Полная замена скоупов токена для админки (план §10): сначала удалить все строки с этим token_id, затем вставить переданный список.

    Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant

    getPeriod, getPlaceholders, getSQLOrder, getSQLOrderFields, getTableName, psSetDate, psSetDateOrNull, psSetInt, psSetIntOrNull, psSetPeriod, psSetString, psSetStringOrNull, psSetTimestampOrNull, queryAndIn, setStatementParam, sqlDelete, sqlDeleteBatch, sqlInsert, sqlInsertBatch, sqlInsertGetId, sqlInsertGetLongId, sqlInsertOnDuplicateKeyUpdate, sqlInsertSelect, sqlInsertUpdateById, sqlSelectCountAsInt, sqlUpdate, sqlUpdateBatch

    Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

    error, error, error, getLogger, logError, logError, warn

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • McpTokenScopeDao

      public McpTokenScopeDao(Connection con)
  • Method Details

    • insertScope

      public boolean insertScope(int tokenId, String component, String toolName)
      Вставить один скоуп токена.
      Parameters:
      tokenId - id токена из таблицы mcp_tokens
      component - модуль (компонент), которому разрешён доступ
      toolName - имя инструмента; «*» — все инструменты компонента
      Returns:
      true, если вставка прошла успешно; false — при ошибке. Исключение наружу не бросается — только логируется.
    • findByTokenId

      public List<McpTokenScope> findByTokenId(int tokenId)
    • replaceScopes

      public void replaceScopes(int tokenId, List<McpScopeInfo> scopes) throws SQLException
      Полная замена скоупов токена для админки (план §10): сначала удалить все строки с этим token_id, затем вставить переданный список.

      В отличие от insertScope(int, java.lang.String, java.lang.String), исключения не логируются, а пробрасываются наружу: тихий сбой посреди замены оставил бы токен без скоупов (или со старыми), и никто бы об этом не узнал. Транзакцию этот метод не открывает — удаление и вставка должны выполняться внутри транзакции вызывающего сервиса (tokenScopesSet делает setAutoCommit(false) вокруг этого вызова).

      Parameters:
      tokenId - id токена из таблицы mcp_tokens
      scopes - новый полный список скоупов; null или пустой список означает полное удаление скоупов (вставок не будет)
      Throws:
      SQLException - ошибка удаления или вставки — бросается вызывающему, откатившему текущую транзакцию