Switch to unified view

a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
...
...
79
    anonymous = M.User(_id=None,
79
    anonymous = M.User(_id=None,
80
                       username='*anonymous',
80
                       username='*anonymous',
81
                       display_name='Anonymous Coward')
81
                       display_name='Anonymous Coward')
82
    root = create_user('Root')
82
    root = create_user('Root')
83
83
84
    n_projects = M.Neighborhood(name='Projects',
84
    n_projects = M.Neighborhood(name='Projects', url_prefix='/p/')
85
                             url_prefix='/p/',
86
                             acl=dict(read=[None], create=[],
87
                                      moderate=[root._id], admin=[root._id]))
88
    n_users = M.Neighborhood(name='Users',
85
    n_users = M.Neighborhood(name='Users', url_prefix='/u/',
89
                             url_prefix='/u/',
90
                             shortname_prefix='u/',
86
                             shortname_prefix='u/')
91
                             acl=dict(read=[None], create=[],
92
                                      moderate=[root._id], admin=[root._id]))
93
    n_adobe = M.Neighborhood(name='Adobe',
87
    n_adobe = M.Neighborhood(name='Adobe', url_prefix='/adobe/')
94
                             url_prefix='/adobe/',
95
                             acl=dict(read=[None], create=[],
96
                                      moderate=[root._id], admin=[root._id]))
97
    assert tg.config['auth.method'] == 'local'
88
    assert tg.config['auth.method'] == 'local'
98
    project_reg = plugin.ProjectRegistrationProvider.get()
89
    project_reg = plugin.ProjectRegistrationProvider.get()
99
    p_projects = project_reg.register_neighborhood_project(n_projects, [root])
90
    p_projects = project_reg.register_neighborhood_project(n_projects, [root], allow_register=True)
100
    p_users = project_reg.register_neighborhood_project(n_users, [root])
91
    p_users = project_reg.register_neighborhood_project(n_users, [root])
101
    p_adobe = project_reg.register_neighborhood_project(n_adobe, [root])
92
    p_adobe = project_reg.register_neighborhood_project(n_adobe, [root])
102
    ThreadLocalORMSession.flush_all()
93
    ThreadLocalORMSession.flush_all()
103
    ThreadLocalORMSession.close_all()
94
    ThreadLocalORMSession.close_all()
104
95
...
...
136
        u_admin.set_password('foo')
127
        u_admin.set_password('foo')
137
        u_admin_adobe = M.User.register(dict(username='adobe-admin',
128
        u_admin_adobe = M.User.register(dict(username='adobe-admin',
138
                                   display_name='Adobe Admin'))
129
                                   display_name='Adobe Admin'))
139
        u_admin_adobe.set_password('foo')
130
        u_admin_adobe.set_password('foo')
140
        # Admin1 is almost root, with admin access for Users and Projects neighborhoods
131
        # Admin1 is almost root, with admin access for Users and Projects neighborhoods
141
        n_projects.acl['admin'].append(u_admin._id)
132
        p_projects.acl.append(
142
        n_users.acl['admin'].append(u_admin._id)
133
            M.ACE.allow(u_admin.project_role(project=p_projects), 'admin'))
134
        p_users.acl.append(
135
            M.ACE.allow(u_admin.project_role(project=p_projects), 'admin'))
143
136
144
        p_allura = n_projects.register_project('allura', u_admin)
137
        p_allura = n_projects.register_project('allura', u_admin)
145
    u1 = M.User.register(dict(username='test-user',
138
    u1 = M.User.register(dict(username='test-user',
146
                              display_name='Test User'))
139
                              display_name='Test User'))
147
    u1.set_password('foo')
140
    u1.set_password('foo')
148
    p_adobe1 = n_adobe.register_project('adobe-1', u_admin_adobe)
141
    p_adobe1 = n_adobe.register_project('adobe-1', u_admin_adobe)
149
    n_adobe.acl['admin'].append(u_admin_adobe._id)
142
    p_adobe.acl.append(
143
        M.ACE.allow(u_admin_adobe.project_role(p_adobe)._id, 'admin'))
150
    p0 = n_projects.register_project('test', u_admin)
144
    p0 = n_projects.register_project('test', u_admin)
151
    p0._extra_tool_status = [ 'alpha', 'beta' ]
145
    p0._extra_tool_status = [ 'alpha', 'beta' ]
152
    # Ming doesn't detect substructural changes in newly created objects (vs loaded from DB)
146
    # Ming doesn't detect substructural changes in newly created objects (vs loaded from DB)
153
    state(n_adobe).status = 'dirty'
147
    state(n_adobe).status = 'dirty'
154
    state(n_projects).status = 'dirty'
148
    state(n_projects).status = 'dirty'