Beispiel #1
0
 def wrapped_function(*args, **kwargs):
     git_revision = subprocess.check_output(
         ['git', 'rev-parse', '--short', 'HEAD']).decode('utf-8').rstrip()
     uuid = str(session["userinfo"].get("sub", ""))
     uid = str(session["userinfo"].get("preferred_username", ""))
     user_obj = _ldap.get_member(uid, uid=True)
     info = {
         "git_revision":
         git_revision,
         "uuid":
         uuid,
         "uid":
         uid,
         "user_obj":
         user_obj,
         "member_info":
         get_member_info(uid),
         "color":
         requests.get(
             'https://themeswitcher.csh.rit.edu/api/colour').content,
         "current_year":
         parse_account_year(str(datetime.datetime.now().strftime("%Y%m"))),
         "rtp":
         ldap_is_rtp(user_obj)
     }
     kwargs["info"] = info
     return func(*args, **kwargs)
Beispiel #2
0
def ldap_update_profile(form_dict, uid):
    account = _ldap.get_member(uid, uid=True)

    form_input = form_dict.to_dict(flat=True)
    for key, value in form_input.items():
        if value == "None" or value == "":
            form_input[key] = None

    if not form_input["name"] == account.cn:
        account.cn = form_input["name"]

    if not form_input["birthday"] == account.birthday:
        account.birthday = form_input["birthday"]

    if not form_input["phone"] == account.mobile:
        account.mobile = form_input["phone"]

    if not form_input["plex"] == account.plex:
        account.plex = form_input["plex"]

    if "major" in form_input.keys():
        if not form_input["major"] == account.major:
            account.major = form_input["major"]

    if "minor" in form_input.keys():
        if not form_input["minor"] == account.minor:
            account.minor = form_input["minor"]

    if "ritYear" in form_input.keys():
        if not form_input["ritYear"] == account.ritYear:
            account.ritYear = form_input["ritYear"]

    if not form_input["website"] == account.homepageURL:
        account.homepageURL = form_input["website"]

    if not form_input["github"] == account.github:
        account.github = form_input["github"]

    if not form_input["twitter"] == account.twitterName:
        account.twitterName = form_input["twitter"]

    if not form_input["blog"] == account.blogURL:
        account.blogURL = form_input["blog"]

    if not form_input["google"] == account.googleScreenName:
        account.googleScreenName = form_input["google"]

    if not form_input["mail"] == account.mail:
        account.mail = form_input["mail"]

    if not form_input["nickname"] == account.nickname:
        account.nickname = form_input["nickname"]

    if not form_input["shell"] == account.shell:
        account.loginShell = form_input["shell"]
Beispiel #3
0
 def wrapped_function(*args, **kwargs):
     git_revision = subprocess.check_output(
         ['git', 'rev-parse', '--short', 'HEAD']).decode('utf-8').rstrip()
     uuid = str(session["userinfo"].get("sub", ""))
     uid = str(session["userinfo"].get("preferred_username", ""))
     user_obj = _ldap.get_member(uid, uid=True)
     info = {
         "git_revision": git_revision,
         "uuid": uuid,
         "uid": uid,
         "user_obj": user_obj,
         "member_info": get_member_info(uid)
     }
     kwargs["info"] = info
     return func(*args, **kwargs)
Beispiel #4
0
def ldap_multi_update(uid, attribute, value):
    dn = "uid={},cn=users,cn=accounts,dc=csh,dc=rit,dc=edu".format(uid)

    try:
        current = _ldap.get_member(uid, uid=True).get(attribute)
    except KeyError:
        current = []

    remove = list(set(current) - set(value))
    add = list(set(value) - set(current))

    conn = _ldap.get_con()
    mod_list = []

    for entry in remove:
        mod = (ldap.MOD_DELETE, attribute, entry.encode('utf-8'))
        mod_list.append(mod)

    for entry in add:
        if entry:
            mod = (ldap.MOD_ADD, attribute, entry.encode('utf-8'))
            mod_list.append(mod)

    conn.modify_s(dn, mod_list)
Beispiel #5
0
def ldap_get_member(username):
    return _ldap.get_member(username, uid=True)
Beispiel #6
0
def ldap_update_profile(form_input, uid):
    account = _ldap.get_member(uid, uid=True)
    empty = ["None", ""]
    for key, value in form_input.items():
        if value in empty:
            form_input[key] = None

    if not form_input["name"] == account.cn:
        account.cn = form_input["name"]

    if not form_input["birthday"] == account.birthday:
        date = form_input["birthday"].split('/')
        account.birthday = date[2] + date[0] + date[1]

    try:
        if not form_input["phone"] == account.get("mobile"):
            ldap_multi_update(uid, "mobile", form_input["phone"])
    except KeyError:
        ldap_multi_update(uid, "mobile", form_input["phone"])

    if not form_input["plex"] == account.plex:
        account.plex = form_input["plex"]

    if "major" in form_input.keys():
        if not form_input["major"] == account.major:
            account.major = form_input["major"]

    if "minor" in form_input.keys():
        if not form_input["minor"] == account.minor:
            account.minor = form_input["minor"]

    if "ritYear" in form_input.keys():
        if not form_input["ritYear"] == account.ritYear:
            account.ritYear = form_input["ritYear"]

    if not form_input["website"] == account.homepageURL:
        account.homepageURL = form_input["website"]

    if not form_input["twitter"] == account.twitterName:
        account.twitterName = form_input["twitter"]

    if not form_input["blog"] == account.blogURL:
        account.blogURL = form_input["blog"]

    if not form_input["resume"] == account.resumeURL:
        account.resumeURL = form_input["resume"]

    if not form_input["google"] == account.googleScreenName:
        account.googleScreenName = form_input["google"]

    try:
        if not form_input["mail"] == account.mail:
            ldap_multi_update(uid, "mail", form_input["mail"])
    except KeyError:
        ldap_multi_update(uid, "mail", form_input["mail"])

    try:
        if not form_input["nickname"] == account.nickname:
            ldap_multi_update(uid, "nickname", form_input["nickname"])
    except KeyError:
        ldap_multi_update(uid, "nickname", form_input["nickname"])

    if not form_input["shell"] == account.shell:
        account.loginShell = form_input["shell"]
Beispiel #7
0
def ldap_get_member(username):
    try:
        return _ldap.get_member(username, uid=True)
    except KeyError as kerr:
        raise BadQueryError("invalid user") from kerr