MCPcopy Create free account
hub / github.com/53AI/53AIHub / SetAPIKeyStatus

Method SetAPIKeyStatus

api/service/mcp/key_service.go:123–149  ·  view source on GitHub ↗
(ctx context.Context, eid, userID int64, role int64, keyID int64, libraryID *int64, enabled bool)

Source from the content-addressed store, hash-verified

121}
122
123func (s *APIKeyService) SetAPIKeyStatus(ctx context.Context, eid, userID int64, role int64, keyID int64, libraryID *int64, enabled bool) error {
124 apiKey, err := model.GetAPIKeyByID(keyID)
125 if err != nil {
126 return err
127 }
128 if apiKey == nil {
129 return errors.New("API密钥不存在")
130 }
131
132 if libraryID != nil {
133 if apiKey.LibraryID == nil {
134 return errors.New("该API密钥未关联任何知识库,无法通过知识库路径访问")
135 }
136 if *apiKey.LibraryID != *libraryID {
137 return errors.New("路径中的知识库ID与API密钥关联的知识库ID不匹配")
138 }
139 }
140
141 if err := s.ensureAPIKeyManagePermission(eid, userID, role, apiKey); err != nil {
142 return err
143 }
144
145 if enabled {
146 return model.EnableAPIKey(keyID)
147 }
148 return model.DisableAPIKey(keyID)
149}
150
151func (s *APIKeyService) resolveAPIKeyScope(eid, userID int64, role int64, libraryID *int64) (*int64, error) {
152 if libraryID == nil {

Callers 2

DisableAPIKeyMethod · 0.95
EnableAPIKeyMethod · 0.95

Calls 4

EnableAPIKeyMethod · 0.80
DisableAPIKeyMethod · 0.80
NewMethod · 0.45

Tested by

no test coverage detected