From 549dda3f628e56aff425e04aaa2d1518d6d22c52 Mon Sep 17 00:00:00 2001 From: Robert Wright Date: Feb 22 2024 15:38:45 +0000 Subject: removing FAS dependancies to eliminate Kerberos --- diff --git a/README b/README index 8575805..570a0c8 100644 --- a/README +++ b/README @@ -25,6 +25,7 @@ Nick Bebout (Fedora card layout fixes) Michael Scherer (security fixes) Brian Exelbierd (continued maintenance) Michel Alexandre Salim (testing) +Robert Wright (removes FAS dependancy) -- diff --git a/fedora_business_cards/common.py b/fedora_business_cards/common.py index 07f1af8..1eb138e 100644 --- a/fedora_business_cards/common.py +++ b/fedora_business_cards/common.py @@ -24,7 +24,7 @@ Common functions shared across the code. from decimal import Decimal from distutils.sysconfig import get_python_lib -import imp # Python: Level up for slaying the imp. +import importlib from xml.dom import minidom from fedora_business_cards import __version__ @@ -79,26 +79,9 @@ def find_node(doc_node, tag_name, attribute_name, attribute_value): if element.hasAttribute(attribute_name): if element.getAttribute(attribute_name) == attribute_value: return element - - + def recursive_import(module, system=False): - if '.' in module: - split = module.split('.') - parent = recursive_import('.'.join(split[:-1])) - return imp.load_module(split[-1], - *imp.find_module(split[-1], parent.__path__)) - else: - if system: - return system_import(module) - else: - return imp.load_module(module, *imp.find_module(module)) - + return importlib.import_module(module) def system_import(module): - try: - themodule = imp.load_module(module, - *imp.find_module(module, [get_python_lib()])) - except ImportError: - themodule = imp.load_module(module, - *imp.find_module(module, [get_python_lib(1)])) - return themodule + return importlib.import_module(module) diff --git a/fedora_business_cards/generators/__init__.py b/fedora_business_cards/generators/__init__.py index 6403f1e..68d564b 100644 --- a/fedora_business_cards/generators/__init__.py +++ b/fedora_business_cards/generators/__init__.py @@ -23,7 +23,6 @@ Various business card generators can be placed here (i.e., a Fedora business card layout, a Beefy Miracle business card layout). """ -from fedora.client.fas2 import AccountSystem from getpass import getpass from fedora_business_cards import __version__ @@ -74,17 +73,16 @@ class BaseGenerator(object): } else: # ask for FAS login - print("Login to FAS:") - username = input("Username: ") - password = getpass() - - # get information from FAS - fas = AccountSystem(username=username, password=password, - useragent='fedora-business-cards/%s' % __version__) - if self.options.username: - username = self.options.username - return fas.person_by_username(username) - + print("Enter your information to generate the business card...") + username = input("FAS Account Username: ") + human_name = input("Full Name: ") + return { + 'human_name': human_name, + 'ircnick': username, + 'username': username, + } + + def collect_information(self): pass diff --git a/fedora_business_cards/generators/fedora-horizontal.py b/fedora_business_cards/generators/fedora-horizontal.py index f71a2a7..81c8a91 100644 --- a/fedora_business_cards/generators/fedora-horizontal.py +++ b/fedora_business_cards/generators/fedora-horizontal.py @@ -59,21 +59,13 @@ class FedoraHorizontalGenerator(BaseGenerator): self.fields['name'] = userinfo["human_name"] self.fields['title'] = "Fedora Project Contributor" self.fields['lines'] = [''] * 6 - self.fields['lines'][0] = '%s@fedoraproject.org' % userinfo['username'] - self.fields['lines'][1] = 'fedoraproject.org' - next_line = 2 - if userinfo['ircnick']: - self.fields['lines'][next_line] = '%s on irc.freenode.net' % \ - userinfo['ircnick'] - next_line += 1 + self.fields['lines'][0] = 'email: %s@fedoraproject.org' % userinfo['username'] + self.fields['lines'][1] = 'matrix: @%s:fedora.im' % userinfo['username'] + self.fields['lines'][2] = 'fedoraproject.org' + next_line = 3 + next_line += 1 next_line += 1 # blank line - if userinfo['gpg_keyid'] == None: - gpg = '' - else: - gpg = "GPG: %s" % userinfo['gpg_keyid'] - self.fields['lines'][next_line] = gpg - # ask user to edit information def cmdline_card_line(data): return "| %s%s |" % (data, ' ' * (59 - len(data))) diff --git a/fedora_business_cards/generators/fedora-vertical.py b/fedora_business_cards/generators/fedora-vertical.py index 12fb797..f05f8f6 100644 --- a/fedora_business_cards/generators/fedora-vertical.py +++ b/fedora_business_cards/generators/fedora-vertical.py @@ -55,26 +55,18 @@ class FedoraVerticalGenerator(BaseGenerator): def collect_information(self): userinfo = self.collect_fas_information() + # set business card fields self.fields['name'] = userinfo["human_name"] self.fields['title'] = "Fedora Project Contributor" - self.fields['lines'] = [''] * 5 - self.fields['lines'][0] = '%s@fedoraproject.org' % userinfo['username'] - self.fields['lines'][1] = 'fedoraproject.org' - next_line = 2 - if userinfo['ircnick']: - self.fields['lines'][next_line] = '%s on irc.freenode.net' % \ - userinfo['ircnick'] - next_line += 1 + self.fields['lines'] = [''] * 6 + self.fields['lines'][0] = 'email: %s@fedoraproject.org' % userinfo['username'] + self.fields['lines'][1] = 'matrix: @%s:fedora.im' % userinfo['username'] + self.fields['lines'][2] = 'fedoraproject.org' + next_line = 3 + next_line += 1 next_line += 1 # blank line - - # Short GPG is insecure lets omit it - #if userinfo['gpg_keyid'] == None: - # gpg = '' - #else: - # gpg = "GPG: %s" % userinfo['gpg_keyid'] - # self.fields['lines'][next_line] = gpg - + # ask user to edit information def cmdline_card_line(data): return "| %s%s |" % (data, ' ' * (35 - len(data))) diff --git a/fedora_business_cards/generators/fedora.py b/fedora_business_cards/generators/fedora.py index 1cbba27..01463d9 100644 --- a/fedora_business_cards/generators/fedora.py +++ b/fedora_business_cards/generators/fedora.py @@ -53,27 +53,20 @@ class FedoraGenerator(BaseGenerator): # set business card fields self.fields['name'] = userinfo["human_name"] self.fields['title'] = "Fedora Project Contributor" - if userinfo['gpg_keyid'] == None: - gpg = '' - else: - gpg = "GPG key ID: %s" % userinfo['gpg_keyid'] self.fields['lines'] = [''] * 6 - self.fields['lines'][0] = '%s@fedoraproject.org' % userinfo['username'] - self.fields['lines'][1] = 'fedoraproject.org' - next_line = 2 - if userinfo['ircnick']: - self.fields['lines'][next_line] = '%s on irc.freenode.net' % \ - userinfo['ircnick'] - next_line += 1 + self.fields['lines'][0] = 'email: %s@fedoraproject.org' % userinfo['username'] + self.fields['lines'][1] = 'matrix: @%s:fedora.im' % userinfo['username'] + self.fields['lines'][2] = 'fedoraproject.org' + next_line = 3 + next_line += 1 next_line += 1 # blank line - self.fields['lines'][next_line] = gpg # ask user to edit information def cmdline_card_line(data): return "| %s%s |" % (data, ' ' * (59 - len(data))) # don't prompt user to edit in test mode - done_editing = self.options.test + done_editing = False #self.options.test while not done_editing: print("Current business card layout:") print(" +" + "-" * 61 + "+")