File size: 2,202 Bytes
81e8bb6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
"""
Test Data Visibility Implementation
"""
import sys
sys.path.append('backend')

def test_visibility():
    print("=== Data Visibility Test ===\n")
    
    # 1. Test DataVisibility enum
    from core.data_visibility import DataVisibility
    print("1. DataVisibility Enum:")
    for v in DataVisibility:
        print(f"   - {v.name}: {v.value}")
    
    # 2. Test can_access function
    from core.data_visibility import can_access
    
    class MockTeam:
        def __init__(self, id):
            self.id = id
    
    class MockUser:
        def __init__(self, id, team_ids):
            self.id = id
            self.teams = [MockTeam(tid) for tid in team_ids]
    
    class MockResource:
        def __init__(self, visibility, owner_id, team_id):
            self.visibility = visibility
            self.owner_id = owner_id
            self.team_id = team_id
    
    user_a = MockUser("user_a", ["team_1"])
    user_b = MockUser("user_b", ["team_2"])
    
    # Test private visibility
    private_resource = MockResource("private", "user_a", None)
    assert can_access(user_a, private_resource) == True, "Owner should access private"
    assert can_access(user_b, private_resource) == False, "Non-owner should NOT access private"
    print("\n2. Private visibility: ✓")
    
    # Test team visibility
    team_resource = MockResource("team", "user_a", "team_1")
    assert can_access(user_a, team_resource) == True, "Team member should access"
    assert can_access(user_b, team_resource) == False, "Non-team member should NOT access"
    print("3. Team visibility: ✓")
    
    # Test workspace visibility
    workspace_resource = MockResource("workspace", "user_a", None)
    assert can_access(user_a, workspace_resource) == True
    assert can_access(user_b, workspace_resource) == True
    print("4. Workspace visibility: ✓")
    
    # 3. Test models have visibility
    from core.models import WorkflowExecution, ChatProcess
    assert hasattr(WorkflowExecution, 'visibility')
    assert hasattr(ChatProcess, 'visibility')
    print("\n5. Models have visibility columns: ✓")
    
    print("\n=== All Tests Passed ===")

if __name__ == "__main__":
    test_visibility()