def main(): parser = OptionParser(description=__doc__, usage="%prog [options] old_name new_name") parser.add_option( '-C', '--config', dest='config', default=None, help="Specify a paster config file. Defaults to $CWD/etc/karl.ini") parser.add_option( '-d', '--dry-run', dest='dry_run', action="store_true", default=False, help="Don't commit the transactions") parser.add_option('-M', '--merge', dest='merge', action='store_true', default=False, help='Merge with an existing user.') options, args = parser.parse_args() if len(args) < 2: parser.error("Too few parameters: %s" % repr(args)) if len(args) > 2: parser.error("Too many parameters: %s" % repr(args)) config = options.config if config is None: config = get_default_config() root, closer = open_root(config) old_name, new_name = args rename_user(root, old_name, new_name, options.merge, sys.stdout) if options.dry_run: transaction.abort() else: transaction.commit()
def rename_or_merge_user_view(request, rename_user=rename_user): """ Rename or merge users. """ context = request.context api = AdminTemplateAPI(context, request) old_username = request.params.get("old_username") new_username = request.params.get("new_username") if old_username and new_username: merge = bool(request.params.get("merge")) rename_messages = StringIO() try: rename_user(context, old_username, new_username, merge=merge, out=rename_messages) api.status_message = rename_messages.getvalue() except ValueError, e: api.error_message = str(e)
def rename_or_merge_user_view(request, rename_user=rename_user): """ Rename or merge users. """ request.layout_manager.use_layout('admin') context = request.context api=AdminTemplateAPI(context, request, 'Admin UI: Rename or Merge Users') old_username = request.params.get('old_username') new_username = request.params.get('new_username') if old_username and new_username: merge = bool(request.params.get('merge')) rename_messages = StringIO() try: rename_user(context, old_username, new_username, merge=merge, out=rename_messages) api.status_message = rename_messages.getvalue() except ValueError, e: api.error_message = str(e)
from karl.utils import find_users from karl.models.interfaces import ICatalogSearch from karl.models.interfaces import IProfile from karl.utilities.rename_user import rename_user import transaction root._p_jar.sync() users = find_users(root) search = ICatalogSearch(root) count, docids, resolver = search(interfaces=[IProfile]) inactive = [] for docid in docids: profile = resolver(docid) if profile.security_state == 'inactive': inactive.append(profile.__name__) print str(len(inactive)) for id in inactive: rename_user(root, id, 'admin', merge=True) transaction.commit()
def evolve(root): try: rename_user(root, 'jonathanhulland', 'jhulland', True, sys.stdout) except ValueError: pass