// // Copyright 2026 The InfiniFlow Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package admin import ( "errors" "fmt" "ragflow/internal/common" "ragflow/internal/dao" "ragflow/internal/entity" ) // Role management methods // ListRoles list all roles func (s *Service) ListRoles() ([]map[string]interface{}, error) { result := []map[string]interface{}{ { "command": "list_roles", "error": "'list roles' is implemented in enterprise edition", }, } return result, nil } // CreateRole create a new role func (s *Service) CreateRole(roleName, description string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "create_role", "role_name": roleName, "description": description, "error": "'create role' is implemented in enterprise edition", } return result, nil } // ShowRole show role details func (s *Service) ShowRole(roleName string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_role", "role_name": roleName, "error": "'show role' is implemented in enterprise edition", } return result, nil } // UpdateRole update role func (s *Service) UpdateRole(roleName, description string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "update_role", "role_name": roleName, "description": description, "error": "'update role' is implemented in enterprise edition", } return result, nil } // DropRole drop role func (s *Service) DropRole(roleName string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "drop_role", "role_name": roleName, "error": "'drop role' is implemented in enterprise edition", } return result, nil } // ShowRolePermission get role permissions func (s *Service) ShowRolePermission(roleName string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_role_permission", "role_name": roleName, "error": "'show role permissions' is implemented in enterprise edition", } return result, nil } // GrantRolePermission grant permission to role func (s *Service) GrantRolePermission(roleName string, actions []string, resource string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "grant_role_permission", "role_name": roleName, "actions": actions, "resource": resource, "error": "'grant role permission' is implemented in enterprise edition", } return result, nil } // RevokeRolePermission revoke permission from role func (s *Service) RevokeRolePermission(roleName string, actions []string, resource string) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "revoke_role_permission", "role_name": roleName, "actions": actions, "resource": resource, "error": "'revoke role permission' is implemented in enterprise edition", } return result, nil } // ListResources list role resources func (s *Service) ListResources() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "list_resources", "error": "'list resources for role' is implemented in enterprise edition", } return result, nil } func (s *Service) ShowRoleDefaultModels(roleName string) ([]map[string]interface{}, error) { return []map[string]interface{}{ { "command": "show_role_default_models", "role_name": roleName, "error": "'show role default models' is implemented in enterprise edition", }, }, nil } // SetRoleDefaultModel set role default model func (s *Service) SetRoleDefaultModel(roleName, modelID, modelType string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "set_role_default_model", "role_name": roleName, "model_id": modelID, "model_type": modelType, "error": "'set role default model' is implemented in enterprise edition", }, nil } // ResetRoleDefaultModel reset role default model func (s *Service) ResetRoleDefaultModel(roleName, modelType string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "reset_role_default_model", "role_name": roleName, "model_type": modelType, "error": "'reset role default model' is implemented in enterprise edition", }, nil } // ListModelProviders list model providers func (s *Service) ListModelProviders() ([]map[string]interface{}, error) { return []map[string]interface{}{ { "command": "list_model_providers", "error": "'list model providers' is implemented in enterprise edition", }, }, nil } // AddModelProvider Add model provider func (s *Service) AddModelProvider(userID, providerName string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "add_model_provider", "user_id": userID, "provider_id": providerName, "error": "'add model provider' is implemented in enterprise edition", }, nil } // DeleteModelProviders delete model providers func (s *Service) DeleteModelProviders(userID string, providerNames []string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "delete_model_providers", "user_id": userID, "provider_names": providerNames, "error": "'delete model providers' is implemented in enterprise edition", }, nil } // ListModelInstances list model instances func (s *Service) ListModelInstances(userID, providerName string) ([]map[string]interface{}, error) { return []map[string]interface{}{ { "command": "list_model_instances", "user_id": userID, "provider_id": providerName, "error": "'list model instances' is implemented in enterprise edition", }, }, nil } // ShowProviderInstance show provider instance func (s *Service) ShowProviderInstance(userID, providerName, instanceName string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "show_provider_instance", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "error": "'show provider instance' is implemented in enterprise edition", }, nil } // ShowProviderInstanceBalance show provider instance balance func (s *Service) ShowProviderInstanceBalance(userID, providerName, instanceName string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "show_provider_instance_balance", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "error": "'show provider instance balance' is implemented in enterprise edition", }, nil } // CheckInstanceConnection check instance connection func (s *Service) CheckInstanceConnection(userID, providerName, instanceName string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "check_instance_connection", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "error": "'check instance connection' is implemented in enterprise edition", }, nil } // CheckProviderConnection check provider connection func (s *Service) CheckProviderConnection(userID, providerName, region, apiKey, baseURL string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "check_provider_connection", "user_id": userID, "provider_id": providerName, "region": region, "api_key": apiKey, "base_url": baseURL, }, nil } // AlterProviderInstance alter provider instance func (s *Service) AlterProviderInstance(userID, providerName, instanceName, newInstanceName, newAPIKey string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "alter_provider_instance", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "new_instance_name": newInstanceName, "new_api_key": newAPIKey, "error": "'alter provider instance' is implemented in enterprise edition", }, nil } // AddModelInstance Add model instance func (s *Service) AddModelInstance(userID, providerName, instanceName string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "add_model_instance", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "error": "'add model instance' is implemented in enterprise edition", }, nil } // DeleteModelInstances delete model instances func (s *Service) DeleteModelInstances(userID, providerName string, instances []string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "delete_model_instances", "user_id": userID, "provider_id": providerName, "instances": instances, "error": "'delete model instances' is implemented in enterprise edition", }, nil } // ListInstanceModels list models for instance func (s *Service) ListInstanceModels(userID, providerName, instanceName string) ([]map[string]interface{}, error) { return []map[string]interface{}{ { "command": "list_instance_models", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "error": "'list instance models' is implemented in enterprise edition", }, }, nil } func (s *Service) EnableOrDisableModel(userID, providerName, instanceName, modelName, modelID, status string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "enable_or_disable_model", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "model_name": modelName, "model_id": modelID, "status": status, "error": "'enable or disable model' is implemented in enterprise edition", }, nil } // AddModel Add model // AddModels Add models func (s *Service) AddModels(userID, providerName, instanceName string, modelNames []string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "add_model", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "model_names": modelNames, "error": "'add model' is implemented in enterprise edition", }, nil } // DeleteModels delete models func (s *Service) DeleteModels(userID, providerName, instanceName string, models []string) (map[string]interface{}, error) { return map[string]interface{}{ "command": "delete_models", "user_id": userID, "provider_id": providerName, "instance_name": instanceName, "models": models, "error": "'delete models' is implemented in enterprise edition", }, nil } func (s *Service) GetSystemFingerprint() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "get_system_fingerprint", "error": "'get system fingerprint' is implemented in enterprise edition", } return result, nil } func (s *Service) SetSystemLicense(license string) error { return errors.New("'set system license' is implemented in enterprise edition") } func (s *Service) ShowSystemLicense(check bool) (map[string]interface{}, error) { var result map[string]interface{} if check { result = map[string]interface{}{ "command": "check_system_license", "error": "'check system license' is implemented in enterprise edition", } } else { result = map[string]interface{}{ "command": "show_system_license", "error": "'show system license' is implemented in enterprise edition", } } return result, nil } func (s *Service) UpdateSystemLicenseConfig(timeRecordSaveInterval, timeRecordTaskDuration int64) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "update_system_license_config", "time_record_save_interval": timeRecordSaveInterval, "time_record_task_duration": timeRecordTaskDuration, "error": "'update system license config' is implemented in enterprise edition", } return result, nil } // ShowUserActivity show user activity for enterprise edition func (s *Service) ShowUserActivity(email string, days int) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "days": days, "error": "'show user activity' is implemented in enterprise edition", } return result, nil } // ShowUserDatasetSummary show user dataset summary for enterprise edition func (s *Service) ShowUserDatasetSummary(email, dataset string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "dataset": dataset, "error": "'show user dataset summary' is implemented in enterprise edition", } return result, nil } // GetUserSummary get user summary for enterprise edition func (s *Service) ShowUserSummary(email string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "error": "'show user summary' is implemented in enterprise edition", } return result, nil } // ShowUserStorage show user storage for enterprise edition func (s *Service) ShowUserStorage(email string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "error": "'show user storage' is implemented in enterprise edition", } return result, nil } // ShowUserQuota show user quota for enterprise edition func (s *Service) ShowUserQuota(email string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "error": "'show user quota' is implemented in enterprise edition", } return result, nil } // ShowUserIndex show user index for enterprise edition func (s *Service) ShowUserIndex(email string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "error": "'show user index' is implemented in enterprise edition", } return result, nil } // UpdateUserRole update user role func (s *Service) UpdateUserRole(email, roleName string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "command": "update_user_role", "role": roleName, "email": user.Email, "nickname": user.Nickname, "error": "'update user role' is implemented in enterprise edition", } return result, nil } // ShowUserPermission show user permissions for enterprise edition func (s *Service) ShowUserPermission(email string) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "command": "show_user_permission", "email": user.Email, "nickname": user.Nickname, "error": "'show user permission' is implemented in enterprise edition", } return result, nil } // ListUserDatasets show user datasets for enterprise edition func (s *Service) ListUserDatasets(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_datasets", "email": user.Email, "nickname": user.Nickname, "error": "'list user datasets' is implemented in enterprise edition", }, } return result, nil } // ListUserAgents show user agents for enterprise edition func (s *Service) ListUserAgents(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_agents", "email": user.Email, "nickname": user.Nickname, "error": "'list user agents' is implemented in enterprise edition", }, } return result, nil } // ListUserChats show user chats for enterprise edition func (s *Service) ListUserChats(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_chats", "email": user.Email, "nickname": user.Nickname, "error": "'list user chats' is implemented in enterprise edition", }, } return result, nil } // ListUserSearches show user searches for enterprise edition func (s *Service) ListUserSearches(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_searches", "email": user.Email, "nickname": user.Nickname, "error": "'list user searches' is implemented in enterprise edition", }, } return result, nil } // ListUserModels show user models for enterprise edition func (s *Service) ListUserModels(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_models", "email": user.Email, "nickname": user.Nickname, "error": "'list user models' is implemented in enterprise edition", }, } return result, nil } // ListUserFiles show user files for enterprise edition func (s *Service) ListUserFiles(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_files", "email": user.Email, "nickname": user.Nickname, "error": "'list user files' is implemented in enterprise edition", }, } return result, nil } // ListUserProviders show user providers for enterprise edition func (s *Service) ListUserProviders(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_providers", "email": user.Email, "nickname": user.Nickname, "error": "'list user providers' is implemented in enterprise edition", }, } return result, nil } // ListUserProviderInstances show user provider instances for enterprise edition func (s *Service) ListUserProviderInstances(email, providerName string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_provider_instances", "email": user.Email, "nickname": user.Nickname, "provider_name": providerName, "error": "'list user provider instances' is implemented in enterprise edition", }, } return result, nil } // ListUserProviderInstanceModels show user provider instance models for enterprise edition func (s *Service) ListUserProviderInstanceModels(email, providerName, instanceName string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_provider_instance_models", "email": user.Email, "nickname": user.Nickname, "provider_name": providerName, "instance_name": instanceName, "error": "'list user provider instance models' is implemented in enterprise edition", }, } return result, nil } // ListUserDefaultModels show user default models for enterprise edition func (s *Service) ListUserDefaultModels(email string) ([]map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := []map[string]interface{}{ { "command": "list_user_default_models", "email": user.Email, "nickname": user.Nickname, "error": "'list user default models' is implemented in enterprise edition", }, } return result, nil } // ShowUsersSummary show users summary for enterprise edition func (s *Service) ShowUsersSummary() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_users_summary", "error": "'show users summary' is implemented in enterprise edition", } return result, nil } // ShowUsersActivity show users activity for enterprise edition func (s *Service) ShowUsersActivity(days, windows *int) (map[string]interface{}, error) { daysInt := 0 if days != nil { daysInt = *days } windowsInt := 0 if windows != nil { windowsInt = *windows } result := map[string]interface{}{ "days": daysInt, "windows": windowsInt, "command": "show_users_activity", "error": "'show users activity' is implemented in enterprise edition", } return result, nil } func (s *Service) ListUsersEnterprise(pageIndex, pageSize int, status, orderBy, plan *string, top, days, quota *int) ([]map[string]interface{}, error) { item := map[string]interface{}{} if status != nil { item["status"] = *status } if orderBy != nil { item["order_by"] = *orderBy } if plan != nil { item["plan"] = *plan } if top != nil { item["top"] = *top } if days != nil { item["days"] = *days } if quota != nil { item["quota"] = *quota } var result []map[string]interface{} result = append(result, item) return result, nil } // ListUsersReports list users reports for enterprise edition func (s *Service) ListUsersReports(pageIndex, pageSize int, status, plan *string, days *int) (map[string]interface{}, error) { statusStr := "all" if status != nil { statusStr = *status } planStr := "all" daysInt := 0 if days != nil { daysInt = *days } if plan != nil { planStr = *plan } result := map[string]interface{}{ "page_index": pageIndex, "page_size": pageSize, "status": statusStr, "plan": planStr, "days": daysInt, "command": "list_users_reports", "error": "'List users reports' is implemented in enterprise edition", } return result, nil } // ListUsersStorage list users storage for enterprise edition func (s *Service) ListUsersStorage(pageIndex, pageSize, top int) (map[string]interface{}, error) { result := map[string]interface{}{ "page_index": pageIndex, "page_size": pageSize, "top": top, "command": "list_users_storage", "error": "'List users storage' is implemented in enterprise edition", } return result, nil } // ListUsersDocuments list users documents for enterprise edition func (s *Service) ListUsersDocuments(pageIndex, pageSize, top int) (map[string]interface{}, error) { result := map[string]interface{}{ "page_index": pageIndex, "page_size": pageSize, "top": top, "command": "list_users_documents", "error": "'List users documents' is implemented in enterprise edition", } return result, nil } // ListUsersIndex list users index for enterprise edition func (s *Service) ListUsersIndex(pageIndex, pageSize, top int) (map[string]interface{}, error) { result := map[string]interface{}{ "page_index": pageIndex, "page_size": pageSize, "top": top, "command": "list_users_index", "error": "'List users index' is implemented in enterprise edition", } return result, nil } // ListUsersQuota list users quota for enterprise edition func (s *Service) ListUsersQuota(pageIndex, pageSize, top int, quotaThreshold *int, plan *string, days *int) (map[string]interface{}, error) { quotaThresholdInt := 0 if quotaThreshold != nil { quotaThresholdInt = *quotaThreshold } planStr := "all" daysInt := 0 if days != nil { daysInt = *days } if plan != nil { planStr = *plan } result := map[string]interface{}{ "page_index": pageIndex, "page_size": pageSize, "top": top, "quota_threshold": quotaThresholdInt, "plan": planStr, "days": daysInt, "command": "list_users_quota", "error": "'List users quota' is implemented in enterprise edition", } return result, nil } // ShowUsersPlanSummary show users plan summary for enterprise edition func (s *Service) ShowUsersPlanSummary() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_users_plan_summary", "error": "'Show users plan summary' is implemented in enterprise edition", } return result, nil } // ShowUsersQuotaSummary show users quota summary for enterprise edition func (s *Service) ShowUsersQuotaSummary() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_users_quota_summary", "error": "'Show users quota summary' is implemented in enterprise edition", } return result, nil } // ShowIngestionTasksSummary show ingestion tasks summary for enterprise edition func (s *Service) ShowIngestionTasksSummary() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_ingestion_tasks_summary", "error": "'Show ingestion tasks summary' is implemented in enterprise edition", } return result, nil } // ShowDataSummary show data summary for enterprise edition func (s *Service) ShowDataSummary() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_data_summary", "error": "'Show data summary' is implemented in enterprise edition", } return result, nil } // ShowDataOrphan show data orphan for enterprise edition func (s *Service) ShowDataOrphan() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_data_orphan", "error": "'Show data orphan' is implemented in enterprise edition", } return result, nil } // ShowDataStorage show data storage for enterprise edition func (s *Service) ShowDataStorage() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_data_storage", "error": "'Show data storage' is implemented in enterprise edition", } return result, nil } // ShowDataIndex show data index for enterprise edition func (s *Service) ShowDataIndex() (map[string]interface{}, error) { result := map[string]interface{}{ "command": "show_data_index", "error": "'Show data index' is implemented in enterprise edition", } return result, nil } // PurgeOrphanData purge orphan data for enterprise edition func (s *Service) PurgeOrphanData(preview bool) (map[string]interface{}, error) { result := map[string]interface{}{ "command": "purge_orphan_data", "preview": preview, "error": "'Purge orphan data' is implemented in enterprise edition", } return result, nil } // PurgeUserData purge user data for enterprise edition func (s *Service) PurgeUserData(email string, preview bool) (map[string]interface{}, error) { // Query user by email var user entity.User err := dao.DB.Where("email = ?", email).First(&user).Error if err != nil { return nil, common.ErrUserNotFound } result := map[string]interface{}{ "email": user.Email, "nickname": user.Nickname, "preview": preview, "error": "'Purge user data' is implemented in enterprise edition", } return result, nil } // PurgeUsersData purge users data for enterprise edition func (s *Service) PurgeUsersData(preview bool, days int, userPlan *string, userActivity *string) (map[string]interface{}, error) { plan := "all" activity := "all" if userPlan != nil { plan = *userPlan } if userActivity != nil { activity = *userActivity } result := map[string]interface{}{ "command": "purge_users_data", "preview": preview, "days": days, "plan": plan, "activity": activity, "error": "'Purge users data' is implemented in enterprise edition", } return result, nil } // GenerateUserAPIKey create tenant API key for tenant func (s *Service) GenerateUserAPIKey(username string) (map[string]interface{}, error) { user, err := s.userDAO.GetByEmail(username) if err != nil { return nil, fmt.Errorf("user not found: %w", err) } result := map[string]interface{}{ "command": "create_user_api_key", "email": user.Email, "nickname": user.Nickname, "error": "'Create user API key' is implemented in enterprise edition", } return result, nil } // DeleteUserAPIKey delete user API key func (s *Service) DeleteUserAPIKey(username, key string) (map[string]interface{}, error) { user, err := s.userDAO.GetByEmail(username) if err != nil { return nil, fmt.Errorf("user not found: %w", err) } result := map[string]interface{}{ "command": "delete_user_api_key", "email": user.Email, "nickname": user.Nickname, "api_key": key, "error": "'Delete user API key' is implemented in enterprise edition", } return result, nil } // ListUserAPIKeys list user API keys func (s *Service) ListUserAPIKeys(username string) ([]map[string]interface{}, error) { user, err := s.userDAO.GetByEmail(username) if err != nil { return nil, fmt.Errorf("user not found: %w", err) } result := []map[string]interface{}{ { "command": "list_user_api_keys", "email": user.Email, "nickname": user.Nickname, "error": "'List user API keys' is implemented in enterprise edition", }, } return result, nil } func (s *Service) ListIngestionTasksByCondition(email, status *string) ([]map[string]interface{}, error) { if email == nil && status == nil { return nil, fmt.Errorf("email or status are required") } element := map[string]interface{}{ "command": "list_ingestion_tasks_by_condition", "error": "'List ingestion tasks by condition' is implemented in enterprise edition", } if email != nil { element["email"] = *email } if status != nil { element["status"] = *status } return []map[string]interface{}{element}, nil } func (s *Service) StopIngestionTasksByCondition(tasks []string, email, status *string) ([]map[string]interface{}, error) { if email == nil && status == nil { return nil, fmt.Errorf("email or status are required") } element := map[string]interface{}{ "command": "stop_ingestion_tasks_by_condition", "tasks": tasks, "error": "'Stop ingestion tasks by condition' is implemented in enterprise edition", } if email != nil { element["email"] = *email } if status != nil { element["status"] = *status } return []map[string]interface{}{element}, nil } func (s *Service) RemoveIngestionTasksByCondition(tasks []string, email, status *string) ([]map[string]interface{}, error) { if email == nil && status == nil { return nil, fmt.Errorf("email or status are required") } element := map[string]interface{}{ "command": "remove_ingestion_tasks_by_condition", "tasks": tasks, "error": "'Remove ingestion tasks by condition' is implemented in enterprise edition", } if email != nil { element["email"] = *email } if status != nil { element["status"] = *status } return []map[string]interface{}{element}, nil }