Beispiel #1
0
        public void testGrandBy_UnixPermissionRequired_Granted()
        {
            var user       = new SystemUser();
            var profile    = new SystemProfile(true);
            var permission = new SystemPermission(user, profile);

            var admin = new SystemAdmin();

            permission.grantBy(admin);
            Assert.AreEqual(SystemPermission.REQUESTED, permission.State(), "requested");
            Assert.AreEqual(false, permission.IsGranted(), "not granted");

            permission.claimBy(admin);
            Assert.AreEqual(SystemPermission.CLAIMED, permission.State(), "claimed");
            Assert.AreEqual(false, permission.IsGranted(), "not granted");

            permission.grantBy(admin);
            Assert.AreEqual(SystemPermission.UNIX_REQUESTED, permission.State(), "Unix requested");
            Assert.AreEqual(false, permission.IsGranted(), "not granted");

            permission.claimBy(admin);
            Assert.AreEqual(SystemPermission.UNIX_CLAIMED, permission.State(), "Unix Claimed");
            Assert.AreEqual(false, permission.IsGranted(), "not granted");

            permission.grantBy(admin);
            Assert.AreEqual(SystemPermission.GRANTED, permission.State(), "granted");
            Assert.AreEqual(true, permission.IsGranted(), "granted");
        }
Beispiel #2
0
        public void SetUp()
        {
            SystemUser    user    = new SystemUser();
            SystemProfile profile = new SystemProfile();

            this._permission = new SystemPermission(user, profile);
        }
 public SystemPermission(SystemUser requestor, SystemProfile profile)
 {
     this.requestor = requestor;
     this.profile   = profile;
     state          = REQUESTED;
     isGranted      = false;
     notifyAdminOfPermissionRequest();
 }
Beispiel #4
0
        /// <summary>
        ///  override method of BaseAction.<br></br>
        /// </summary>
        /// <param name="context">input parameter</param>
        /// <returns>if successful,return the result.</returns>
        public override BaseActionResult Execute(Context context)
        {
            DataSetActionResult result = new DataSetActionResult();

            SystemProfile systemProfile = new SystemProfile();
            DsProfile     ds            = systemProfile.Load((context.Model as DsSystemProfileModel).ModuleID);

            result.Result      = true;
            result.DataSetData = ds;
            return(result);
        }
Beispiel #5
0
        // TODO: Metodo de Teste GetAll

        private int InsertItem()
        {
            var systemProfile = new SystemProfile
            {
                Name        = "Teste",
                HasAdmin    = true,
                SystemUsers = null
            };

            return(_systemProfileRepository.Add(systemProfile));
        }
Beispiel #6
0
        private string GetNewReferralID(string domain)
        {
            string referralIDLengthName = "ReferralIDLength";
            int    length = 5;
            //get length
            SystemProfile systemProfile = _dbContext.Set <SystemProfile>().Where(s => s.Name == referralIDLengthName).FirstOrDefault();

            if (systemProfile != null)
            {
                Int32.TryParse(systemProfile.Value, out length);
                if (length < 1)
                {
                    length = 5;
                }
            }
            //get prefix
            DomainList domainList = _dbContext.Set <DomainList>().Where(s => s.DomainName == domain).FirstOrDefault();
            string     preFix     = string.Empty;

            if (domainList != null && !string.IsNullOrEmpty(domainList.DomainPrefix))
            {
                preFix = domainList.DomainPrefix;
            }
            int maxID = -1;

            using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required,
                                                              new TransactionOptions()
            {
                IsolationLevel = System.Transactions.IsolationLevel.Serializable
            }))
            {
                IDMaxValue idMaxValue = _dbContext.Set <IDMaxValue>().Where(s => s.Tag == 4).FirstOrDefault();
                if (idMaxValue == null || idMaxValue.Value == null)
                {
                    return("");
                }

                idMaxValue.Value = idMaxValue.Value + 1;
                maxID            = idMaxValue.Value;
                _dbContext.SaveChanges();
                // SAVE DATA
                ts.Complete();
            }

            if (maxID != -1)
            {
                return(preFix + maxID.ToString().PadLeft(length, '0'));
            }

            return("");
        }
Beispiel #7
0
        public void TestClaimedBy()
        {
            SystemUser       user       = new SystemUser();
            SystemProfile    profile    = new SystemProfile();
            SystemPermission permission = new SystemPermission(user, profile);

            Assert.AreEqual(PermissionState.REQUESTED, permission.GetState());

            SystemAdmin admin = new SystemAdmin();

            permission.ClaimedBy(admin);
            Assert.AreEqual(PermissionState.CLAIMED, permission.GetState());
            Assert.AreEqual(false, permission.IsGranted());
        }
Beispiel #8
0
        //public static readonly string REQUESTED = "REQUESTED";
        //public static readonly string CLAIMED = "CLAIMED";
        //public static readonly string GRANTED = "GRANTED";
        //public static readonly string DENIED = "DENIED";
        //// UNIX 权限相关的状态值
        //public static readonly string UNIX_REQUESTED = "UNIX_REQUESTED";
        //public static readonly string UNIX_CLAIMED = "UNIX_CLAIMED";

        public SystemPermission(SystemUser requestor, SystemProfile profile)
        {
            Admin      = new SystemAdmin();
            _requestor = requestor;
            Profile    = profile;
            if (profile.IsUnixPermissionRequired())
            {
                State = PermissionState.UNIX_REQUESTED;
            }
            else
            {
                State = PermissionState.REQUESTED;
            }
            Granted = false;
            notifyAdminOfPermissionRequest();
        }
Beispiel #9
0
        public void TestClaimedByWithUnixConcerned()
        {
            SystemUser    user    = new SystemUser();
            SystemProfile profile = new SystemProfile();

            profile.SetUnixPermissionRequired(true);
            SystemPermission permission = new SystemPermission(user, profile);

            Assert.AreEqual(PermissionState.UNIX_REQUESTED, permission.GetState());

            SystemAdmin admin = new SystemAdmin();

            permission.ClaimedBy(admin);
            Assert.AreEqual(PermissionState.UNIX_CLAIMED, permission.GetState());
            Assert.AreEqual(false, permission.IsGranted());
        }
        public void testGrandBy_NoUnixPermissionRequired_NoClaimed_Denied()
        {
            var user       = new SystemUser();
            var profile    = new SystemProfile(false);
            var permission = new SystemPermission(user, profile);

            var admin = new SystemAdmin();

            permission.grantBy(admin);
            Assert.AreEqual(SystemPermission.REQUESTED, permission.State(), "requested");
            Assert.AreEqual(false, permission.IsGranted(), "not granted");

            permission.deniedBy(admin);
            Assert.AreEqual(SystemPermission.REQUESTED, permission.State(), "requested");
            Assert.AreEqual(false, permission.IsGranted(), "not granted");
        }
Beispiel #11
0
 public SystemPermission(SystemUser requestor, SystemProfile profile)
 {
     _admin     = new SystemAdmin();
     _requestor = requestor;
     _profile   = profile;
     if (profile.IsUnixPermissionRequired())
     {
         _state = UNIX_REQUESTED;
     }
     else
     {
         _state = REQUESTED;
     }
     _granted = false;
     notifyAdminOfPermissionRequest();
 }
Beispiel #12
0
        private string GetConfigValue(string name, string site)
        {
            SiteProfile siteProfile = _dbContext.Set <SiteProfile>().Where(s => s.Name == name && s.Site == site).FirstOrDefault();

            if (siteProfile != null)
            {
                return(siteProfile.Value);
            }

            SystemProfile systemProfile = _dbContext.Set <SystemProfile>().Where(s => s.Name == name).FirstOrDefault();

            if (systemProfile != null)
            {
                return(systemProfile.Value);
            }

            return("");
        }
Beispiel #13
0
 public IActionResult GetCustomerByIdentification([FromBody] GetPaginatedSearchTerm request)
 {
     try
     {
         int idUser = 0;
         idUser = int.Parse(User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value);
         SystemUser    systemUser    = _unitOfWork.User.GetById(idUser);
         UserProfile   userProfile   = _unitOfWork.UserProfile.UserProfileByUser(idUser);
         SystemProfile systemProfile = _unitOfWork.SystemProfile.GetById(userProfile.IdProfile);
         int           idSalesman    = 0;
         if (systemProfile.ValidateCustomer)
         {
             idSalesman = systemUser.IdSalesman;
         }
         return(Ok(_unitOfWork.Customer.CustomerByIdentificationNumber(request.SearchTerm, idSalesman, request.Type)));
     }
     catch (Exception ex)
     {
         return(StatusCode(500, "Internal server error: " + ex.Message));
     }
 }
Beispiel #14
0
        public void UpdateInvalidCount(string userID, string domain)
        {
            var user = _UserRepository.Get(p => p.UniqueID == userID).FirstOrDefault();

            if (user != null)
            {
                SystemProfile systemProfile = _dbContext.Set <SystemProfile>().Where(s => s.Name == "InvalidLoginMaxCount" && s.Domain == domain).FirstOrDefault();

                if (systemProfile != null && systemProfile.Value != "")
                {
                    int maxCount = 0;
                    int.TryParse(systemProfile.Value, out maxCount);
                    if (maxCount > 0)
                    {
                        //set invalid count
                        if (user.InvalidLoginCount == null)
                        {
                            user.InvalidLoginCount = 1;
                        }
                        else if (user.InvalidLoginCount.HasValue)
                        {
                            user.InvalidLoginCount += 1;
                        }

                        //is lock

                        if (user.InvalidLoginCount >= maxCount)
                        {
                            user.IsLocked = 1;
                        }

                        _UserRepository.SaveChanges();
                    }
                }
            }
        }
Beispiel #15
0
        /// <summary>
        /// add or update online info when login
        /// </summary>
        /// <param name="onlineClientDto"></param>
        /// <returns>0:sucess;1:error, same user login on other location;2:error, max user; 3:same user login in other location 4: can not get license data 5:license expired</returns>
        public int LoginToOnline(OnlineClientDto onlineClientDto, string isForce, out string message)
        {
            message = "";
            List <OnlineClient> onlineClientList = _OnlineClientRepository.Get(o => o.MachineIP == onlineClientDto.MachineIP && o.IsOnline == 1).ToList();

            foreach (OnlineClient onlineClient in onlineClientList)
            {
                //not selfservice login user
                if ((onlineClient.Comments == null || onlineClient.Comments.ToLower() != "selfservice login user") &&
                    string.Compare(onlineClient.UniqueID, onlineClientDto.UniqueID, true) != 0)
                {
                    //同一台机器上只能允许登陆1次,请退出后再登陆!
                    if (isForce == "0")
                    {
                        UserDto user = GetUserByID(onlineClient.UniqueID);
                        if (user != null)
                        {
                            message = user.LoginName;
                        }
                        return(1);
                    }
                    else
                    {
                        //onlineClient.IsOnline = 0;
                    }
                }
            }

            //get max value
            string        countName     = "OnlineUserCheckTimePeriod";
            string        countValue    = null;
            int           currentOnline = 0;
            SystemProfile systemProfile = null;
            SiteProfile   siteProfile   = _dbContext.Set <SiteProfile>().Where(s => s.Name == countName && s.Domain == onlineClientDto.Domain && s.Site == onlineClientDto.Site).FirstOrDefault();

            if (siteProfile != null && siteProfile.Value != null)
            {
                countValue    = siteProfile.Value;
                currentOnline = _OnlineClientRepository.Get(o => o.IsOnline == 1 && o.Domain == onlineClientDto.Domain && o.Site == onlineClientDto.Site).Count();
            }
            else
            {
                systemProfile = _dbContext.Set <SystemProfile>().Where(s => s.Name == countName && s.Domain == onlineClientDto.Domain).FirstOrDefault();
                if (systemProfile != null && systemProfile.Value != null)
                {
                    countValue    = systemProfile.Value;
                    currentOnline = _OnlineClientRepository.Get(o => o.IsOnline == 1 && o.Domain == onlineClientDto.Domain).Count();
                }
            }
            if (countValue != null)
            {
                //Max user count reached
                int profileMaxUserNumber = GetMaxOnlineUserCount(countValue);

                if (currentOnline >= profileMaxUserNumber)
                {
                    return(2);
                }
            }

            List <OnlineClient> onlineClientList2 = _OnlineClientRepository.Get(o => o.UniqueID == onlineClientDto.UniqueID && o.IsOnline == 1).ToList();

            foreach (OnlineClient onlineClient in onlineClientList2)
            {
                //not selfservice login user
                //if ((onlineClient.Comments == null || onlineClient.Comments.ToLower() != "selfservice login user")
                //    && (string.Compare(onlineClient.MachineIP, onlineClientDto.MachineIP, true) != 0
                //    || string.Compare(onlineClient.Comments, onlineClientDto.Comments, true) != 0))


                if (onlineClient.Comments != null && onlineClient.Comments.ToLower() != "selfservice login user" &&
                    string.Compare(onlineClient.MachineIP, onlineClientDto.MachineIP, true) != 0)
                {
                    //同一用户只能在一个地方登录
                    if (isForce == "0")
                    {
                        message = onlineClient.MachineName + "&" + onlineClient.MachineIP;
                        return(3);
                    }
                    else
                    {
                        //onlineClient.IsOnline = 0;
                    }
                }
            }

            //clear all offline
            List <OnlineClient> onlineClientList3 = _OnlineClientRepository.Get(o => o.UniqueID == onlineClientDto.UniqueID && o.IsOnline == 0).ToList();

            foreach (OnlineClient onlineClient in onlineClientList3)
            {
                _OnlineClientRepository.Delete(onlineClient);
            }
            _OnlineClientRepository.SaveChanges();

            //add or update online data
            string webUserFlag = "web login user";

            // check web license
            var webOnline = _OnlineClientRepository.Get(o => o.IsOnline == 1 && o.Domain == onlineClientDto.Domain && o.Comments == webUserFlag).Count();

            if (_license.IsSuccessed)
            {
                if (_license.IsExpired)
                {
                    return(5);
                }
                if (webOnline >= _license.MaxOnlineUserCount)
                {
                    return(2);
                }
            }
            else
            {
                return(4);
            }


            OnlineClient onlineClientOld = _OnlineClientRepository.Get(o => o.UniqueID == onlineClientDto.UniqueID && o.Comments != "selfservice login user").FirstOrDefault();

            if (onlineClientOld != null && onlineClientOld.IsOnline == 1)
            {
            }
            else
            {
                OnlineClient onlineClientNew = Mapper.Map <OnlineClientDto, OnlineClient>(onlineClientDto);
                onlineClientNew.RoleName = GetUserDefaultRole(new UserDto {
                    UniqueID = onlineClientDto.UniqueID, Domain = onlineClientDto.Domain
                });
                _OnlineClientRepository.Add(onlineClientNew);

                _OnlineClientRepository.SaveChanges();
            }

            return(0);
        }
 private SystemProfileBo BuiltSystemProfileBo(SystemProfile systemprofile)
 {
     return((SystemProfileBo) new SystemProfileBo().InjectFrom(systemprofile));
 }
Beispiel #17
0
 public Startup(IConfiguration configuration)
 {
     Configuration = configuration;
     //程序启动时注册实体对应Dto的映射关系
     SystemProfile.Initialize();
 }