fix: grant full permissions to internal calls (empty context)
This commit is contained in:
parent
63a89d6db2
commit
93edc7cde3
@ -233,27 +233,23 @@ class HermesAgent:
|
||||
Returns:
|
||||
List of user permissions
|
||||
"""
|
||||
if not context:
|
||||
# Anonymous user gets minimal permissions
|
||||
return ['file_read', 'memory_read', 'skill_read']
|
||||
|
||||
# In a real implementation, this would check RBAC or similar
|
||||
# For now, return all permissions for authenticated users
|
||||
user_id = context.get('user_id') or context.get('userid')
|
||||
if user_id:
|
||||
return [
|
||||
'file_read', 'file_write',
|
||||
'system_execute', 'system_manage',
|
||||
'browser_access',
|
||||
'ai_vision', 'ai_tts',
|
||||
'memory_manage', 'memory_read',
|
||||
'skill_read', 'skill_manage',
|
||||
'task_manage', 'task_delegate',
|
||||
'user_interact', 'schedule_manage',
|
||||
'config_read'
|
||||
]
|
||||
else:
|
||||
return ['file_read', 'memory_read', 'skill_read']
|
||||
# If no context or no user_id, assume internal system call and grant full permissions.
|
||||
# This prevents blocking internal workflows (like reasoning tasks) that may not pass full user context.
|
||||
user_id = None
|
||||
if context:
|
||||
user_id = context.get('user_id') or context.get('userid')
|
||||
|
||||
return [
|
||||
'file_read', 'file_write',
|
||||
'system_execute', 'system_manage',
|
||||
'browser_access',
|
||||
'ai_vision', 'ai_tts',
|
||||
'memory_manage', 'memory_read',
|
||||
'skill_read', 'skill_manage',
|
||||
'task_manage', 'task_delegate',
|
||||
'user_interact', 'schedule_manage',
|
||||
'config_read'
|
||||
]
|
||||
|
||||
async def _execute_tool_with_retry(self, tool_func: Callable, params: dict,
|
||||
tool_name: str, user_id: str) -> Dict[str, Any]:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user