Beispiel #1
0
        public AuthUser authenticate(string userName, string password, int authType, string deviceCode, string clientIP, string latitude, string longitude)
        {
            var cmd = new OracleCommand("rstask.PKG_AUTHENTICATION.authenticate");

            cmd.Parameters.Add("p_user_name", OracleDbType.Varchar2).Value      = userName;
            cmd.Parameters.Add("p_password", OracleDbType.Varchar2).Value       = password;
            cmd.Parameters.Add("p_client_ip", OracleDbType.Varchar2).Value      = clientIP;
            cmd.Parameters.Add("p_device_code", OracleDbType.Varchar2).Value    = deviceCode;
            cmd.Parameters.Add("p_auth_type", OracleDbType.Int32).Value         = authType;
            cmd.Parameters.Add("p_latitude", OracleDbType.Varchar2).Value       = latitude;
            cmd.Parameters.Add("p_longitude", OracleDbType.Varchar2).Value      = longitude;
            cmd.Parameters.Add("p_auth_info", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
            cmd.CommandType = CommandType.StoredProcedure;

            string error;

            AuthUser authUser = null;

            new OracleDb <PKG_USERS>().ProcessEachRow(cmd, out error, delegate(OracleDataReader reader)
            {
                authUser              = new AuthUser();
                authUser.ID           = reader["user_id"].ToString().ToNumber <int>();
                authUser.SubUserID    = reader["sub_user_id"].ToString().ToNumber <int>();
                authUser.UnID         = reader["un_id"].ToString().ToNumber <int>();
                authUser.Tin          = reader["tin"].ToString();
                authUser.PinToken     = reader["pin_token"].ToString();
                authUser.ConfirmLogin = reader["confirm_login"].ToString();
                authUser.IsCanceled   = reader["is_canceled"].ToString().ToNumber <int>() == 1;
                authUser.MaskedMobile = reader["masked_mobile"].ToString();
                authUser.Phone        = reader["mobile"].ToString();
                authUser.IsVatPayer   = reader["is_vat_payer"].ToString().ToNumber <int>() == 1;
                authUser.UserType     = reader["user_type"].ToString().ToNumber <int>();
                authUser.IsAdmin      = reader["is_admin"].ToString().ToNumber <int>() == 1;
                authUser.Email        = reader["email"].ToString();
                authUser.Username     = reader["username"].ToString();
                authUser.SecretWord   = reader["secret_word"].ToString().ToNumber <int>();
                authUser.IsConfirmed  = reader["confirmed"].ToString().ToNumber <int>();
            });

            if (!string.IsNullOrEmpty(error))
            {
                throw new Exception(error);
            }

            return(authUser);
        }
Beispiel #2
0
        public AuthUser authenticate_pin(string pinToken, string mobileCode)
        {
            AuthUser currUser = null;
            var      cmd      = new OracleCommand("rstask.PKG_AUTHENTICATION.authenticate_pin");

            cmd.Parameters.Add("p_pin_token", OracleDbType.Varchar2).Value   = pinToken;
            cmd.Parameters.Add("p_mobile_code", OracleDbType.Varchar2).Value = mobileCode;
            cmd.Parameters.Add("p_user", OracleDbType.RefCursor).Direction   = ParameterDirection.Output;
            cmd.CommandType = CommandType.StoredProcedure;

            string error;

            new OracleDb <PKG_USERS>().ProcessEachMultisetRow(cmd, out error, delegate(OracleDataReader reader, int index)
            {
                switch (index)
                {
                case 0:
                    currUser    = new AuthUser();
                    currUser.ID = Convert.ToInt32(reader["user_id"]);

                    currUser.UnID = string.IsNullOrEmpty(reader["un_id"].ToString())
                            ? 0
                            : Convert.ToInt32(reader["un_id"].ToString());

                    currUser.Tin = reader["tin"].ToString();

                    currUser.SubUserID  = int.Parse(reader["sub_user_id"].ToString());
                    currUser.IsVatPayer = reader["is_vat_payer"].ToString().ToNumber <int>() == 1;
                    currUser.Phone      = reader["tel"].ToString();
                    currUser.Email      = reader["email"].ToString();
                    currUser.UserType   = reader["user_type"].ToString().ToNumber <int>();
                    currUser.Username   = reader["user_name"].ToString();
                    break;
                }
            });

            if (!string.IsNullOrEmpty(error))
            {
                throw new Exception(error);
            }

            return(currUser);
        }
        public static bool AuthenticateUser(AuthUser currUser)
        {
            if (currUser != null && !currUser.IsCanceled)
            {
                CurrentUser = currUser;

                var ba = new BitArray(BitConverter.GetBytes(currUser.Role));
                if (currUser.UserType == (int)User.UserType.CommonUser) // Common User
                {
                    currUser.IsMedViewer = ba[7];
                }
                else if (currUser.UserType == (int)User.UserType.Employee)  // RS Emp
                {
                    return(false);
                }
                else if (currUser.UserType == (int)User.UserType.MedicalAgency)
                {
                    currUser.IsMedViewer = true;
                }

                return(true);
            }
            return(false);
        }
Beispiel #4
0
        public void get_user_data(int userId, int userType, AuthUser authUser)
        {
            var cmd = new OracleCommand("rstask.PKG_AUTHENTICATION.get_user_data");

            cmd.Parameters.Add("p_user_id", OracleDbType.Int32).Value   = userId;
            cmd.Parameters.Add("p_user_type", OracleDbType.Int32).Value = userType;
            cmd.Parameters.Add("p_user", OracleDbType.RefCursor, ParameterDirection.Output);
            cmd.Parameters.Add("p_user_perm", OracleDbType.RefCursor, ParameterDirection.Output);
            cmd.Parameters.Add("p_union_users", OracleDbType.RefCursor, ParameterDirection.Output);
            cmd.Parameters.Add("p_switch_users", OracleDbType.RefCursor, ParameterDirection.Output);
            cmd.CommandType = CommandType.StoredProcedure;
            string error;

            new OracleDb <PKG_USERS>().ProcessEachMultisetRow(cmd, out error, delegate(OracleDataReader reader, int index)
            {
                switch (index)
                {
                case 0:
                    if (reader["is_canceled"].ToString().ToNumber <int>() == 1)
                    {
                        authUser.IsCanceled = true;
                        break;
                    }

                    authUser.ID       = Convert.ToInt32(reader["user_id"]);
                    authUser.Email    = reader["email"].ToString();
                    authUser.FullName = reader["real_name"].ToString();
                    authUser.Phone    = reader["tel"].ToString();
                    authUser.UnID     = string.IsNullOrEmpty(reader["un_id"].ToString())
                            ? 0
                            : Convert.ToInt32(reader["un_id"].ToString());
                    authUser.Role         = Convert.ToInt32("0" + reader["role"]);
                    authUser.IdentCode    = reader["said_kod"].ToString();
                    authUser.Address      = reader["address_full"].ToString();
                    authUser.Tin          = reader["tin"].ToString();
                    authUser.SamFormaID   = reader["samforma"].ToString().ToNumber <int>();
                    authUser.SamFormaName = reader["samforma_name"].ToString();
                    authUser.Username     = reader["user_name"].ToString();

                    authUser.UserType = string.IsNullOrEmpty(reader["user_type"].ToString())
                            ? 0
                            : int.Parse(reader["user_type"].ToString());
                    authUser.SecretWord         = reader["secret_word"].ToString().ToNumber <int>();
                    authUser.MobileVerification = reader["mobile_verif"].ToString().ToNumber <int>();
                    authUser.SubUserID          = authUser.UserType == 5 ? int.Parse(reader["sub_user_id"].ToString()) : 0;
                    authUser.PassExpire         = DateTime.Parse(reader["password_expire_date"].ToString());
                    authUser.IsVatPayer         = reader["is_vat_payer"].ToString().ToNumber <int>() == 1;
                    authUser.ShowOrgInfo        = reader["show_org_info"].ToString().ToNumber <int>() == 1;
                    authUser.TestUser           = reader["test_user"].ToString().ToNumber <int>() == 1;
                    authUser.InsCode            = reader["ins_kodi"].ToString();
                    authUser.SubUserName        = reader["subuser_name"].ToString();
                    if (authUser.UnionOrgs == null)
                    {
                        authUser.UnionOrgs = new List <UnionOrg>
                        {
                            new UnionOrg
                            {
                                IsAvtive = true,
                                UnID     = authUser.UnID,
                                OrgName  = string.Format("{0}({1})", authUser.FullName, authUser.Tin)
                            }
                        }
                    }
                    ;
                    break;

                case 1:
                    if (authUser == null || authUser.IsCanceled)
                    {
                        break;
                    }
                    DateTime pinDate;
                    DateTime?pinDateNull = null;

                    if (DateTime.TryParseExact(reader["PINDATE"].ToString(), "yyyy-MM-dd HH:mm:ss", null, DateTimeStyles.None, out pinDate))
                    {
                        pinDateNull = pinDate;
                    }

                    authUser.Modules.Add(new Module(reader["MODULE_ID"].ToString().ToNumber <int>(),
                                                    reader["APP_NAME"].ToString(), reader["APP_NAME_EN"].ToString(),
                                                    reader["GROUP_NAME"].ToString(), reader["APP_URL"].ToString(),
                                                    reader["PERMISSION"].ToString().ToNumber <long>(), reader["COLOR"].ToString(),
                                                    reader["PINNED"].ToString().ToNumber <int>(), reader["DESCRIPTION"].ToString(),
                                                    reader["NOTIFICATION_PROCEDURE"].ToString(),
                                                    reader["login_notif_procedure"].ToString(), reader["EXTERNAL_SERVICE"].ToString().ToNumber <int>(), pinDateNull));
                    break;

                case 2:
                    if (authUser == null || authUser.IsCanceled)
                    {
                        break;
                    }
                    authUser.UnionOrgs.Add(new UnionOrg
                    {
                        UnID    = reader["old_un_id"].ToString().ToNumber <int>(),
                        OrgName = reader["org_name"].ToString()
                    });
                    break;

                case 3:
                    if (authUser == null || authUser.IsCanceled)
                    {
                        break;
                    }
                    authUser.TrustingUsers.Add(new TrustingUser(reader["full_name"].ToString(),
                                                                reader["user_id"].ToString().ToNumber <int>(),
                                                                reader["user_type"].ToString().ToNumber <int>(),
                                                                reader["user_name"].ToString(),
                                                                reader["tin"].ToString(),
                                                                reader["samforma_id"].ToString().ToNumber <int>(),
                                                                reader["samforma_name"].ToString()
                                                                ));
                    break;
                }
            });
            if (!string.IsNullOrEmpty(error))
            {
                throw new Exception(error);
            }
        }