fedora-infra / fas

Fedora Account System
https://admin.fedoraproject.org/accounts
GNU General Public License v2.0
40 stars 50 forks source link

Changing/editing group membership of a user fails #249

Closed ryanlerch closed 6 years ago

ryanlerch commented 7 years ago

When trying to change/edit the membership of a person in a group, it fails.

Steps to reproduce

  1. Log into a user with administrator rights for a group
  2. go to the group page for the group that the user has privs for, i.e. http://localhost:5002/group/details/304
  3. try to change the membership of another user in the group (upgrade, downgrade or revoke) using the purple button dropdown "Edit Membership" groupedit

resulting behavior Nothing happens, and the membership appears to not change. The following error is returned on the console:

2017-01-26 00:01:06,300 ERROR [waitress:8492][waitress:channel][service:341] Exception when serving /group/update/
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/waitress/channel.py", line 338, in service
    task.service()
  File "/usr/lib/python2.7/site-packages/waitress/task.py", line 169, in service
    self.execute()
  File "/usr/lib/python2.7/site-packages/waitress/task.py", line 399, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/usr/lib/python2.7/site-packages/pyramid/router.py", line 233, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/usr/lib/python2.7/site-packages/pyramid/router.py", line 208, in invoke_subrequest
    response = handle_request(request)
  File "/usr/lib/python2.7/site-packages/pyramid_debugtoolbar/toolbar.py", line 187, in toolbar_tween
    return handler(request)
  File "/usr/lib/python2.7/site-packages/pyramid/tweens.py", line 62, in excview_tween
    reraise(*attrs['exc_info'])
  File "/usr/lib/python2.7/site-packages/pyramid/tweens.py", line 22, in excview_tween
    response = handler(request)
  File "/usr/lib/python2.7/site-packages/pyramid_tm/__init__.py", line 119, in tm_tween
    reraise(*exc_info)
  File "/usr/lib/python2.7/site-packages/pyramid_tm/__init__.py", line 105, in tm_tween
    manager.commit()
  File "/usr/lib/python2.7/site-packages/transaction/_manager.py", line 124, in commit
    return self.get().commit()
  File "/usr/lib/python2.7/site-packages/transaction/_transaction.py", line 311, in commit
    reraise(t, v, tb)
  File "/usr/lib/python2.7/site-packages/transaction/_transaction.py", line 302, in commit
    self._commitResources()
  File "/usr/lib/python2.7/site-packages/transaction/_transaction.py", line 447, in _commitResources
    reraise(t, v, tb)
  File "/usr/lib/python2.7/site-packages/transaction/_transaction.py", line 419, in _commitResources
    rm.tpc_begin(self)
  File "/usr/lib/python2.7/site-packages/zope/sqlalchemy/datamanager.py", line 96, in tpc_begin
    self.session.flush()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2139, in flush
    self._flush(objects)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2259, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2223, in _flush
    flush_context.execute()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 389, in execute
    rec.execute(self)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 548, in execute
    uow
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj
    mapper, table, insert)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 835, in _emit_insert_statements
    execute(statement, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 945, in execute
    return meth(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1393, in _handle_dbapi_exception
    exc_info
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
    cursor.execute(statement, parameters)
ProgrammingError: (psycopg2.ProgrammingError) missing FROM-clause entry for table "accountlogtype"
LINE 1: ...S (1651, 'Unknown', '192.168.121.122', 'Firefox', AccountLog...
                                                             ^
 [SQL: 'INSERT INTO people_activity_log (person_id, location, remote_ip, access_from, event, event_msg, event_timestamp) VALUES (%(person_id)s, %(location)s, %(remote_ip)s, %(access_from)s, %(event)s, %(event_msg)s, CURRENT_TIMESTAMP) RETURNING people_activity_log.id'] [parameters: {'access_from': 'Firefox', 'event_msg': u'SPONSOR: Personnel_officer', 'location': u'Unknown', 'person_id': 1651, 'event': <AccountLogType.DOWNGRADED_GROUP_MEMBERSHIP: 16>, 'remote_ip': '192.168.121.122'}]