import traceback from functions.ldap import ConnectLDAP # ------------------------------------------------------------------------------ # @brif ホームディレクトリ取得 # @param ctrid:コンテナID uid:ユーザID # @return rootディレクトリのパス(例外時は空文字を返却する) # def get_root_dir(ctrid, uid, d_service): """ 指定ユーザのホームディレクトリのリアルな絶対パスを取得する関数 Parameters ---------- ctrid : str コンテナID uid : str ユーザID d_service : str サービス名 premium, business Returns ------- root_dir 指定ユーザのホームディレクトリの絶対パス 例外時は空文字列""を返却する Notes ----- """ try: user_type = check_privilege(ctrid, uid) if user_type == 1: root_dir = "/usr/home/" + ctrid else: root_dir = "/usr/home" + ctrid + "/users/" + uid return root_dir except Exception as e: print(traceback(e)) return "" ########################################################################## # 概要 :ログインユーザーがサーバ管理者かドメイン管理者かエンドユーザどうかのチェックを行う #    : 引数  ctrid, ユーザーID #    : 返却値 ビジエコ:1(サーバ管理者), 0(エンドユーザ) # プレミアム:1(サーバ管理者), 2(ドメイン管理者), 0(エンドユーザ) # エラー時は例外を上げる ########################################################################## def check_privilege(ctrid, user_id): try: retcode = 0 if user_id is False or user_id == "": print(u"パラメータエラー:" + str(user_id)) raise # サーバ管理者: server_admin, ドメイン管理者: dom_admin, 一般ユーザ: user with ConnectLDAP(ctrid) as conn: ret = conn.check_admin(user_id) if ret == "server_admin": retcode = 1 elif ret == "dom_admin": retcode = 2 else: retcode = 0 return retcode except Exception as e: print(traceback(e)) raise