def admin_userfeeds(): """ Present menu page of user account feed related options """ feeds = UFeeds.all_list() return render_template( "admin_user_feeds.html", feeds=feeds )
def users_update_from_feed(upids): """ Given a list of upids, go through and try to fetch details from feed, updating/creating the accounts if needed. """ for upid in upids: user_id = Users2.uid_by_uname(upid) if not user_id: # we don't know who they are, so create them. for feed in UFeeds.all_list(): try: out = feeds_run_user_script(feed.script, args=[upid, ]) except BaseException as err: L.error("Exception in user feed '%s': %s" % (feed.script, err)) continue res = out.splitlines() if res[0].startswith("ERROR"): L.error("Error running user feed '%s': %s" % (feed.script, res)) continue line = res[1] studentid = "" try: (upid, name, email, studentid) = line.split(',') except ValueError: try: (upid, name, email) = line.split(',') except ValueError: continue given = name.split(" ")[0] try: family = " ".join(name.split(" ")[1:]) except ValueError: family = "" Users2.create(upid, '', given, family, 2, studentid, email, None, 'feed', '', True) break else: L.error("Error running user feed for existing account %s" % user_id) return
def user_update_details_from_feed(uid, upid): """ Refresh the user's details from feed. Maybe their name or ID changed. """ for feed in UFeeds.all_list(): try: out = feeds_run_user_script(feed.script, args=[upid, ]) except BaseException as err: L.error("Exception running user feed '%s': %s" % (feed.script, err)) continue res = out.splitlines() if res[0].startswith("ERROR"): L.error("Error running user feed '%s': %s" % (feed.script, res)) continue line = res[1] studentid = "" try: (upid, name, email, studentid) = line.split(',') except ValueError: try: (upid, name, email) = line.split(',') except ValueError: continue given = name.split(" ")[0] try: family = " ".join(name.split(" ")[1:]) except ValueError: family = "" Users.set_email(uid, email) Users.set_givenname(uid, given) Users.set_familyname(uid, family) Users.set_studentid(uid, studentid)