public TCoreUsers()
 {
     _tcoreUserObject              = new TCoreUsersObject();
     _databaseOperations           = new DatabaseOps();
     _resultTable                  = new DataTable();
     _tcoreUserObjectList          = new List <TCoreDeptUnit>();
     _vRTNUserDeptRoleForQbObjects = new List <VRTNUserDeptRoleForQbObject>();
 }
        public string AppUserRole(TCoreUsersObject userobj)
        {
            var sqlText = "select a.role_name from t_application_roles a inner join t_app_user_role b on a.role_id = b.role_id inner join t_core_users c on b.user_id = c.app_user_id where c.user_name = @user_name";

            using (SqlCommand command = new SqlCommand(sqlText, DatabaseOps.OpenSqlConnection()))
            {
                command.Parameters.AddWithValue("@user_name", userobj.user_name);
                RealData = _databaseOperations.GetData(command);
                if (string.IsNullOrWhiteSpace(RealData))
                {
                    RealData = string.Empty;
                }
                else
                {
                    return(RealData);
                }
            }

            return(RealData);
        }
        public string UserInst(TCoreUsersObject username)
        {
            string data    = null;
            var    sqlText = $@"select user_inst from t_core_users where user_name = @user_name and is_regulator = 1";

            using (SqlCommand command = new SqlCommand(sqlText, DatabaseOps.OpenSqlConnection()))
            {
                command.Parameters.AddWithValue("@user_name", username.user_name);
                data = _databaseOperations.GetData(command);
                if (string.IsNullOrWhiteSpace(data))
                {
                    data = string.Empty;
                }
                else
                {
                    return(data);
                }
            }

            return(data);
        }
 public int ConfirmEmail(TCoreUsersObject appuserid, bool enable)
 {
     if (appuserid == null)
     {
         throw new ArgumentNullException("User object - User ID is required");
     }
     try
     {
         var sqlText = $@"update t_application_users set emailconfirmed = {(enable == true ? 1 : 0)} where userid = @app_user_id";
         using (SqlCommand command = new SqlCommand(sqlText, DatabaseOps.OpenSqlConnection()))
         {
             command.Parameters.AddWithValue("@app_user_id", appuserid.app_user_id);
             rowsAffected = _databaseOperations.ExecuteNonQuery(command);
             return(rowsAffected);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public DataTable GetAllUser(TCoreUsersObject username)
        {
            if (username == null || username.user_name.Length < 1)
            {
                throw new ArgumentException("TCoreUsers username is required");
            }

            try
            {
                var sqlText = @"SELECT a.app_user_id AS 'Application User ID', a.user_name AS 'Username', a.last_name AS 'Last Name', a.first_name AS 'First Name', a.middle_name AS 'Middle Name', a.email AS 'Email Address', CASE WHEN a.is_active = 1 THEN 'Active' WHEN a.is_active = 0 THEN 'Not Active' ELSE 'Not Set' END AS 'Is Active', CASE WHEN b.EmailConfirmed = 1 THEN 'Confirmed' WHEN b.EmailConfirmed = 0 THEN 'Not Confirmed' ELSE 'Not Set' END AS 'Email Confirmation', CASE WHEN b.TwoFactorEnabled = 0 THEN 'Disabled' WHEN b.TwoFactorEnabled = 1 THEN 'Enable' ELSE 'Not Set' End AS 'Two Factor Authentication', CASE WHEN b.LockoutEnabled = 1 THEN 'Enable' WHEN b.LockoutEnabled = 0 THEN 'Disabled' ELSE 'Not Set' END AS 'Lock Out Enabled' FROM t_core_users a INNER JOIN t_application_users b ON a.user_name = b.UserName WHERE a.user_name != @username";
                using (SqlCommand command = new SqlCommand(sqlText, DatabaseOps.OpenSqlConnection()))
                {
                    command.Parameters.AddWithValue("@username", username.user_name);
                    _resultTable = _databaseOperations.GetDataTable(command);
                    return(_resultTable);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public int SetTwoFactor(TCoreUsersObject appuserid, bool enable)
 {
     if (appuserid == null)
     {
         throw new ArgumentNullException("User object - User ID is required");
     }
     try
     {
         int value   = (enable == true) ? 1 : 0;
         var sqlText = $@"update t_application_users set TwoFactorEnabled = @twofactorenable where UserId = @userid";
         using (SqlCommand command = new SqlCommand(sqlText, DatabaseOps.OpenSqlConnection()))
         {
             command.Parameters.AddWithValue("@twofactorenable", value);
             command.Parameters.AddWithValue("@userid", appuserid.app_user_id);
             rowsAffected = _databaseOperations.ExecuteNonQuery(command);
             return(rowsAffected);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    if (base.Error.Count > 0)
                    {
                        divAlert.Visible = true;
                        lblErrorMsg.Text = base.Error[0];
                        return;
                    }

                    _helicaInstallationPath = SharedConst.HELICA_INSTALLATION_PATH ?? null;
                    if (_helicaInstallationPath == null || _helicaInstallationPath.Length < 1)
                    {
                        divAlert.Visible = true;
                        lblErrorMsg.Text = "Cant load the query builder! please contact system administrator";
                    }
                }

                //Get the user name of the currently logged in user and decrypt it and the UseDefault property value
                currentUser = Request.QueryString[SharedConst.QUERY_STRING_USER_NAME] ?? null;

                if (!String.IsNullOrWhiteSpace(currentUser))
                {
                    currentUser = Request.QueryString[SharedConst.QUERY_STRING_USER_NAME];
                    _useDefault = Request.QueryString["usedefault"] ?? null;

                    //Get the users role and company i.e user institution
                    var user = new TCoreUsersObject()
                    {
                        user_name = currentUser
                    };

                    List <VRTNUserDeptRoleForQbObject> units = _tCoreUser.Roles(user);
                    if (units == null || units.Count < 1)
                    {
                        //_stringToencrypt = $"username={currentUser}|role={_defaultRole}|company={_companyName}";
                        _stringToencrypt = $"username={currentUser}|role={SharedConst.HELICA_DEFAULT_ROLENAME}";
                    }
                    else
                    {
                        foreach (var unit in units)
                        {
                            if (_defaultRole == "")
                            {
                                _defaultRole = $"{unit.role_name}";
                            }
                            else
                            {
                                _defaultRole = $"{_defaultRole},{unit.role_name}";
                            }
                        }

                        _stringToencrypt = $"username={currentUser}|role={_defaultRole.TrimEnd(',')}";
                    }

                    //if (_useDefault == null || _useDefault.Length < 1)
                    //{
                    //    //_stringToencrypt = $"username={currentUser}|role={_defaultRole}|company={_companyName}";
                    //    //_stringToencrypt = $"username={currentUser}|role={SharedConst.HELICA_DEFAULT_ROLENAME}";
                    //}

                    //if (_useDefault.Equals("true") == true)
                    //{

                    //}
                    //else
                    //    return;
                }
                else
                {
                    divAlert.Visible      = true;
                    this.lblErrorMsg.Text = "Username can't be decoded or helica insight cant be found! please contact the administrator";
                    this.qbNew.Disabled   = true;
                    return;
                }

                //The aes cryptographic key
                if (SharedConst.HELICA_DEFAULT_CYPHER_KEY != null && SharedConst.HELICA_DEFAULT_CYPHER_KEY.Length > 0)
                {
                    //Encrypt the currently logged-in username using aes encryption
                    var encToken = AESEncryptionUtil.EncryptTextToBase64String(_stringToencrypt, SharedConst.HELICA_DEFAULT_CYPHER_KEY);

                    //Transform the encrypted string to a URL safe string
                    _urlSafeencToken = encToken.TrimEnd('=').Replace('+', '-').Replace('/', '_');
                    var helicaUrlStringBuilder = $"{_helicaInstallationPath}?authToken={_urlSafeencToken}";

                    lblerror.Text   = helicaUrlStringBuilder;
                    this.qbNew.HRef = helicaUrlStringBuilder;

                    Response.Redirect(helicaUrlStringBuilder, false);
                    //ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", $"loadTab({_helicaInstallationPath})", true);
                }
            }
            catch (Exception ex)
            {
                LogUtitlity.LogToText(SharedConst.Ad_HOC_LOG_PATH, ex.ToString());
            }
        }
        public static object HelicaRun(string username)
        {
            var        response         = new ResponseHandler();
            TCoreUsers _tCoreUser       = new TCoreUsers();
            string     _stringToencrypt = string.Empty;

            try
            {
                string _helicaInstallationPath = ConfigurationManager.AppSettings["HelicaInstallPath"];
                if (_helicaInstallationPath == null || _helicaInstallationPath.Length < 1)
                {
                    response.Status  = 0;
                    response.Message = "Cant load the query builder/BI tool! please contact system administrator";
                    return(response);
                }

                //Get the user name of the currently logged in user and decrypt it and the UseDefault property value
                //string currentUser = username;

                if (!String.IsNullOrWhiteSpace(username))
                {
                    string _useCompany = (string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["company"])) ? "CBN_NDIC" : ConfigurationManager.AppSettings["company"];

                    //Get the users role and company i.e user institution
                    var user = new TCoreUsersObject()
                    {
                        user_name = username
                    };

                    List <VRTNUserDeptRoleForQbObject> units = _tCoreUser.Roles(user);
                    if (units == null || units.Count < 1)
                    {
                        //if current user doesn't belong to a role
                        //Assign a deault role ROLE_USER to the role parameter on helica insight
                        _stringToencrypt = $"username={username}|role={SharedConst.HELICA_DEFAULT_ROLENAME}";
                    }
                    else
                    {
                        string _roles = "";
                        foreach (var unit in units)
                        {
                            if (_roles == "")
                            {
                                _roles = $"{unit.role_name}";
                            }
                            else
                            {
                                _roles = $"{_roles},{unit.role_name}";
                            }
                        }

                        _stringToencrypt = $"username={username}|role={_roles.TrimEnd(',')}";

                        if (_useCompany != null)
                        {
                            //Get the user company name if it exists - example CBN or NDIC
                            //and modify the helica SSO string accordingly
                            if (!string.IsNullOrWhiteSpace(_tCoreUser.UserInst(username)))
                            {
                                _stringToencrypt = $"username={username}|role={_roles.TrimEnd(',')}|company={_useCompany}";
                            }
                        }
                    }
                }
                else
                {
                    response.Status  = 0;
                    response.Message = "Username cant be empty";
                    return(response);
                }

                //Check if the encryption key is available for use
                //else throw and log an error - encryption key not available
                if (SharedConst.HELICA_DEFAULT_CYPHER_KEY != null && SharedConst.HELICA_DEFAULT_CYPHER_KEY.Length > 0)
                {
                    //Encrypt the currently logged-in username using aes encryption
                    var encToken = AESEncryptionUtil.EncryptTextToBase64String(_stringToencrypt, SharedConst.HELICA_DEFAULT_CYPHER_KEY);

                    //Transform the encrypted string to a URL safe string

                    string _urlSafeencToken       = encToken.TrimEnd('=').Replace('+', '-').Replace('/', '_');
                    var    helicaUrlStringBuilder = $"{_helicaInstallationPath}?authToken={_urlSafeencToken}";

                    response.Status  = 1;
                    response.Message = helicaUrlStringBuilder;
                    return(response);
                }
                else
                {
                    LogUtitlity.LogToText("The encryption key cant be located");
                }
            }
            catch (Exception ex)
            {
                LogUtitlity.LogToText(ex.ToString());
            }

            return(response);
        }
 public List <TDbQueryGroupObject> QueryGroupName(TCoreUsersObject username)
 {
     _tDbQueryGroupObjList = QueryGroupName(username.user_name);
     return(_tDbQueryGroupObjList);
 }
 public string Get(TCoreUsersObject username)
 {
     return(Get(username.user_name));
 }
 public List <VRTNUserDeptRoleForQbObject> Roles(TCoreUsersObject username)
 {
     _vRTNUserDeptRoleForQbObjects = Roles(username.user_name);
     return(_vRTNUserDeptRoleForQbObjects);
 }
 public List <TCoreDeptUnit> Units(TCoreUsersObject username)
 {
     _tcoreUserObjectList = Units(username.user_name);
     return(_tcoreUserObjectList);
 }
Beispiel #13
0
        /// <summary>
        /// Get the institution the currently logged in user belongs to -  i.e CBN or NDIC
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        public string UserInst(TCoreUsersObject username)
        {
            string data = UserInst(username.user_name);

            return(data);
        }