diff --git a/src/wuttaweb/views/people.py b/src/wuttaweb/views/people.py index 372673f..b840a25 100644 --- a/src/wuttaweb/views/people.py +++ b/src/wuttaweb/views/people.py @@ -93,6 +93,11 @@ class PersonView(MasterView): } return self.render_to_response('view_profile', context) + def make_user(self): + """ """ + self.request.session.flash("TODO: this feature is not yet supported", 'error') + return self.redirect(self.request.get_referrer()) + @classmethod def defaults(cls, config): cls._defaults(config) @@ -101,6 +106,7 @@ class PersonView(MasterView): @classmethod def _people_defaults(cls, config): route_prefix = cls.get_route_prefix() + url_prefix = cls.get_url_prefix() instance_url_prefix = cls.get_instance_url_prefix() permission_prefix = cls.get_permission_prefix() @@ -112,6 +118,14 @@ class PersonView(MasterView): route_name=f'{route_prefix}.view_profile', permission=f'{permission_prefix}.view_profile') + # make user for person + config.add_route(f'{route_prefix}.make_user', + f'{url_prefix}/make-user', + request_method='POST') + config.add_view(cls, attr='make_user', + route_name=f'{route_prefix}.make_user', + permission='users.create') + def defaults(config, **kwargs): base = globals() diff --git a/tests/views/test_people.py b/tests/views/test_people.py index cd6e1ae..d8bd715 100644 --- a/tests/views/test_people.py +++ b/tests/views/test_people.py @@ -56,3 +56,18 @@ class TestPersonView(WebTestCase): self.request.matchdict = {'uuid': person.uuid} response = view.view_profile(session=self.session) self.assertEqual(response.status_code, 200) + + def test_make_user(self): + self.pyramid_config.include('wuttaweb.views.common') + + model = self.app.model + person = model.Person(full_name="Barney Rubble") + self.session.add(person) + self.session.commit() + + # sanity check + view = self.make_view() + self.request.matchdict = {'uuid': person.uuid} + response = view.make_user() + # nb. this always redirects for now + self.assertEqual(response.status_code, 302)