예제 #1
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public PasswordChangeResultEnum ChangePassword(String newPassword, String oldPassword)
        {
            if (CurrentToken == null)
            {
                return(PasswordChangeResultEnum.TokenNotFound);
            }

            var result  = UserManagementProxy.ChangePassword(CurrentToken.Value, newPassword, oldPassword);
            var success = result == PasswordChangeResultEnum.Success;

            LogEvent("ChangePassword", success);

            if (success)
            {
                var currentLoginName = CurrentUser.LoginName;
                var remember         = IsCurrentLoginInCookies();

                Logout();
                Login(currentLoginName, newPassword);

                if (remember)
                {
                    SaveCurrentLoginCookies();
                }
                else
                {
                    ClearCurrentLoginCookies();
                }
            }

            return(result);
        }
예제 #2
0
        /// <summary>
        ///     Add worker
        /// </summary>
        public void Start()
        {
            UserManagementUpdateOperationResult result;

            if (m_Settings.UseCertificateProxy)
            {
                var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                                 "/Fujitsu.Utilities.UserManagement.Service.UserManagementWithCertificateSecurity";
                using (var proxy = new UserManagementProxyWithCertificateSecurity(remoteHost))
                {
                    result = proxy.ExecuteUpdateOperation(
                        new PasswordResetOperation
                    {
                        WorkerId = m_Settings.TestWorkerID
                    });
                }
            }
            else
            {
                var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                                 "/Fujitsu.Utilities.UserManagement.Service.UserManagement";
                using (var proxy = new UserManagementProxy(remoteHost))
                {
                    result = proxy.ExecuteUpdateOperation(
                        new PasswordResetOperation
                    {
                        WorkerId = m_Settings.TestWorkerID
                    });
                }
            }
            var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();

            m_Controller.ShowResult(xml);
        }
예제 #3
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        private PermissionContract LoadPermission(String path)
        {
            PermissionContract permission;

            if (EnabledPermissionsCache)
            {
                if (PermissionsCache.TryGetValue(path, out permission))
                {
                    return(permission);
                }

                if (EnabledHierachycalSearch)
                {
                    var pathParts = path.Split('/');

                    for (int i = (pathParts.Length - 1); i > 0; i--)
                    {
                        var parentPath = String.Join("/", pathParts, 0, i);

                        if (PermissionsCache.TryGetValue(parentPath, out permission))
                        {
                            return(permission);
                        }
                    }
                }
            }

            permission = UserManagementProxy.GetResourcePermission(CurrentToken.Value, path);
            if (EnabledPermissionsCache)
            {
                PermissionsCache.Add(path, permission);
            }

            return(permission);
        }
 /// <summary>
 ///     Starts the scenario
 /// </summary>
 public void Start()
 {
     if (m_Settings.UseCertificateProxy)
     {
         var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                          "/Fujitsu.Utilities.UserManagement.Service.UserManagementWithCertificateSecurity";
         using (var proxy = new UserManagementProxyWithCertificateSecurity(remoteHost))
         {
             proxy.Initialize(new NetworkIdentifier("SC1", "000C29F0C32B", "StoreCenter"));
             m_Controller.ShowResult(new MessageView
             {
                 //Pretty = Utilities.RenderHTMLMessage(
                 //    "User Management Session Initialized\r\n\r\n" +
                 //    "Start User Management to monitor User Management Messages")
             }
                                     );
         }
     }
     else
     {
         var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                          "/Fujitsu.Utilities.UserManagement.Service.UserManagement";
         using (var proxy = new UserManagementProxy(remoteHost))
         {
             proxy.Initialize(new NetworkIdentifier("SC1", "000C29F0C32B", "StoreCenter"));
             m_Controller.ShowResult(new MessageView
             {
                 //Pretty = Utilities.RenderHTMLMessage(
                 //    "User Management Session Initialized\r\n\r\n" +
                 //    "Start User Management to monitor User Management Messages")
             }
                                     );
         }
     }
 }
예제 #5
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public void PreloadUserPermissions()
        {
            if (CurrentToken == null || ProjectID == null)
            {
                return;
            }

            var allPermissions = UserManagementProxy.GetAllResourcesPermissions(CurrentToken.Value, ProjectID);

            if (allPermissions == null)
            {
                return;
            }

            var permsByProjects = allPermissions.ToLookup(n => n.ProjectID);

            foreach (var permsByProjectGrp in permsByProjects)
            {
                var permsByPathsLp = permsByProjectGrp.ToLookup(n => n.ResourcePath);

                foreach (var permsByPathGrp in permsByPathsLp)
                {
                    var permsByRuleValue = permsByPathGrp.OrderByDescending(n => n.RuleValue);
                    var newPermContract  = permsByRuleValue.First();

                    var path = String.Format("{0}/{1}", permsByProjectGrp.Key, permsByPathGrp.Key);
                    PermissionsCache[path] = newPermContract;
                }
            }
        }
예제 #6
0
        public void Start()
        {
            var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                             "/Fujitsu.Utilities.UserManagement.Service.UserManagement";

            using (var proxy = new UserManagementProxy(remoteHost))
            {
                var readResult = proxy.ExecuteReadOperation(
                    new GetWorkerByIdOperation
                {
                    WorkerId = m_Settings.TestWorkerID
                }
                    );
                UserManagementUpdateOperationResult result = null;
                var getWorkerResult = readResult as GetWorkerByIdOperationResult;
                if (getWorkerResult != null)
                {
                    if (getWorkerResult.Errors.Length == 0)
                    {
                        getWorkerResult.Worker.Person.FirstName = m_Settings.TestWorkerName;
                        result = proxy.ExecuteUpdateOperation(
                            new UpdateWorkerOperation
                        {
                            Worker = getWorkerResult.Worker
                        }
                            );
                    }
                }
                var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();
                m_Controller.ShowResult(xml);
            }
        }
예제 #7
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public List <ProjectContract> GetProjectsByUserToken()
        {
            if (CurrentToken == null)
            {
                return(null);
            }

            return(UserManagementProxy.GetProjectByUserToken(CurrentToken.Value));
        }
예제 #8
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public bool Login(String loginName, String password, bool encryptedPassword)
        {
            if (ProjectID == null)
            {
                return(false);
            }

            if (IsLogged && defComparer.Equals(CurrentUser.LoginName, loginName))
            {
                if (encryptedPassword)
                {
                    var passwordHash = CryptographyUtil.ComputeMD5(CurrentUser.Password);
                    if (defComparer.Equals(passwordHash, password))
                    {
                        return(true);
                    }
                }
                else if (CurrentUser.Password == password)
                {
                    return(true);
                }
            }

            ResetInstanceData();

            var token = UserManagementProxy.Login(loginName, password, encryptedPassword);

            var success = token != null;

            if (success)
            {
                var loginUser = UserManagementProxy.GetCurrentUser(token.Value);
                if (loginUser == null)
                {
                    return(false);
                }

                var userGroups = UserManagementProxy.GetUserGroups(token.Value, loginUser.ID, ProjectID.Value);

                if (!loginUser.IsSuperAdmin && !IgnoreGroupMembership && (userGroups == null || userGroups.Count == 0))
                {
                    return(false);
                }

                currentToken      = token;
                currentUser       = loginUser;
                currentUserGroups = userGroups;

                SaveCurrentTokenCookies();
            }

            LogEvent("LoginByName", loginName, password, token, success);

            return(success);
        }
        public void Start()
        {
            var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                             "/Fujitsu.Utilities.UserManagement.Service.UserManagement";

            using (var proxy = new UserManagementProxy(remoteHost))
            {
                var result = proxy.ExecuteReadOperation(
                    new GetOperatorGroupsOperation()
                    );
                var xml = new MessageViewFormatter <UserManagementReadOperationResult>(result).FormatMessage();
                m_Controller.ShowResult(xml);
            }
        }
예제 #10
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public List <UserContract> GetGroupUsers(Guid groupID)
        {
            if (!IsLogged)
            {
                return(null);
            }

            if (CurrentToken != null)
            {
                return(UserManagementProxy.GetGroupUsers(CurrentToken.Value, groupID));
            }

            return(null);
        }
예제 #11
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public void Logout()
        {
            if (CurrentToken != null)
            {
                LogEvent("Logout");

                UserManagementProxy.Logout(CurrentToken.Value);
            }

            ResetInstanceData();

            ClearCurrentTokenCookies();
            ClearCurrentLoginCookies();
        }
예제 #12
0
        public void Start()
        {
            var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                             "/Fujitsu.Utilities.UserManagement.Service.UserManagement";

            using (var proxy = new UserManagementProxy(remoteHost))
            {
                var result = proxy.ExecuteUpdateOperation(
                    new DeleteWorkerOperation
                {
                    WorkerId = m_Settings.TestWorkerID
                });
                var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();
                m_Controller.ShowResult(xml);
            }
        }
예제 #13
0
        /// <summary>
        ///     Add worker
        /// </summary>
        public void Start()
        {
            UserManagementUpdateOperationResult result;

            var password = new SecureString();

            password.AppendChar('a');
            password.AppendChar('0');
            password.AppendChar('0');
            password.AppendChar('0');
            password.AppendChar('0');
            password.AppendChar('0');
            password.AppendChar('0');
            var helper = RootContainer.container.Resolve <IPasswordHandler>();
            var enc    = helper.EncryptPassword(password).ToString();

            if (m_Settings.UseCertificateProxy)
            {
                var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                                 "/Fujitsu.Utilities.UserManagement.Service.UserManagementWithCertificateSecurity";
                using (var proxy = new UserManagementProxyWithCertificateSecurity(remoteHost))
                {
                    result = proxy.ExecuteUpdateOperation(
                        new PasswordCreateOperation
                    {
                        NewPasswordEncrypted = enc,
                        WorkerID             = m_Settings.TestWorkerID
                    });
                }
            }
            else
            {
                var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                                 "/Fujitsu.Utilities.UserManagement.Service.UserManagement";
                using (var proxy = new UserManagementProxy(remoteHost))
                {
                    result = proxy.ExecuteUpdateOperation(
                        new PasswordChangeOperation
                    {
                        NewPasswordEncrypted = enc
                    });
                }
            }
            var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();

            m_Controller.ShowResult(xml);
        }
        public void Start()
        {
            var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                             "/Fujitsu.Utilities.UserManagement.Service.UserManagement";

            using (var proxy = new UserManagementProxy(remoteHost))
            {
                var result = proxy.ExecuteUpdateOperation(new AddSecurityPointsToOperatorGroupOperation
                {
                    OperatorGroupId  = 1000,
                    ConfigPoint      = 1,
                    SecurityPointIDs = new[] { 1 }
                });
                var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();
                m_Controller.ShowResult(xml);
            }
        }
예제 #15
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public bool Login(Guid token)
        {
            if (ProjectID == null)
            {
                return(false);
            }

            if (!IsTokenValid(token))
            {
                return(false);
            }

            if (CurrentToken == token)
            {
                return(true);
            }

            ResetInstanceData();

            var loginUser = UserManagementProxy.GetCurrentUser(token);

            var success = loginUser != null;

            if (success)
            {
                var userGroups = UserManagementProxy.GetUserGroups(token, loginUser.ID, ProjectID.Value);

                if (!loginUser.IsSuperAdmin && !IgnoreGroupMembership && (userGroups == null || userGroups.Count == 0))
                {
                    return(false);
                }

                currentToken      = token;
                currentUser       = loginUser;
                currentUserGroups = userGroups;

                SaveCurrentTokenCookies();
            }
            LogEvent("LoginByToken", loginUser, token, success);

            return(success);
        }
예제 #16
0
        public void Start()
        {
            var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                             "/Fujitsu.Utilities.UserManagement.Service.UserManagement";

            using (var proxy = new UserManagementProxy(remoteHost))
            {
                var result = proxy.ExecuteUpdateOperation(
                    new CreateOperatorGroupOperation
                {
                    OperatorGroup = new OperatorGroupInfo
                    {
                        Description     = "Test",
                        OperatorGroupId = 1000
                    }
                });
                var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();
                m_Controller.ShowResult(xml);
            }
        }
예제 #17
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public List <MessageContract> GetMessages()
        {
            if (CurrentToken == null || !IsLogged)
            {
                return(null);
            }

            var allMessages = UserManagementProxy.GetMessages(CurrentToken.Value, ProjectID);

            if (allMessages == null)
            {
                return(null);
            }

            var notShowedMessages = (from n in allMessages
                                     where n != null && displayedMessages.Add(n.ID)
                                     select n).ToList();

            return(notShowedMessages);
        }
예제 #18
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        private bool IsTokenValid(Guid?token)
        {
            if (token == null)
            {
                return(false);
            }

            if (Context != null)
            {
                var isActual = Context.Items[isActualRequestKey] as bool?;
                if (isActual == null)
                {
                    isActual = UserManagementProxy.IsTokenActual(token.Value);
                    Context.Items[isActualRequestKey] = isActual;
                }

                return(isActual.GetValueOrDefault());
            }

            return(UserManagementProxy.IsTokenActual(token.Value));
        }
예제 #19
0
파일: UmUtil.cs 프로젝트: ugt-software/LMIS
        public bool HasMessages()
        {
            if (!IsLogged)
            {
                return(false);
            }

            if (UserManagementProxy.HasMessages(CurrentToken.Value, ProjectID))
            {
                var allMessages = UserManagementProxy.GetMessages(CurrentToken.Value, ProjectID);
                if (allMessages != null && allMessages.Count > 0)
                {
                    var hasMessages = (from n in allMessages
                                       where n != null && !displayedMessages.Contains(n.ID)
                                       select n).Any();

                    return(hasMessages);
                }
            }

            return(false);
        }
예제 #20
0
        /// <summary>
        ///     Add worker
        /// </summary>
        public void Start()
        {
            UserManagementUpdateOperationResult result;

            if (m_Settings.UseCertificateProxy)
            {
                var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                                 "/Fujitsu.Utilities.UserManagement.Service.UserManagementWithCertificateSecurity";
                using (var proxy = new UserManagementProxyWithCertificateSecurity(remoteHost))
                {
                    result = proxy.ExecuteUpdateOperation(
                        new CreateWorkerOperation
                    {
                        Worker = new Worker
                        {
                            DefaultLanguageID = 9,
                            HireDate          = DateTimeOffset.Now,
                            Person            = new Person
                            {
                                FirstName  = "John",
                                GenderType = 1,
                                LanguageID = 9,
                                LastName   = "Smith",
                                PartyID    = Guid.NewGuid(),
                                Salutation = "Mr"
                            },
                            TerminationDate = null,
                            WorkerID        = m_Settings.TestWorkerID,
                            WorkerOperators = new[]
                            {
                                new WorkerOperator
                                {
                                    ConfigPoint      = m_Settings.StoreID,
                                    DisplayName      = "Johnny Smith",
                                    OperatorGroupIDs = new[] { -2 },
                                    OperatorID       = m_Settings.OperatorID,
                                    WorkerID         = m_Settings.TestWorkerID
                                }
                            }
                        }
                    });
                }
            }
            else
            {
                var remoteHost = "net.tcp://" + m_Settings.General.RemoteHostName +
                                 "/Fujitsu.Utilities.UserManagement.Service.UserManagement";
                using (var proxy = new UserManagementProxy(remoteHost))
                {
                    result = proxy.ExecuteUpdateOperation(
                        new CreateWorkerOperation
                    {
                        Worker = new Worker
                        {
                            DefaultLanguageID = 9,
                            HireDate          = DateTimeOffset.Now,
                            Person            = new Person
                            {
                                FirstName  = "John",
                                GenderType = 1,
                                LanguageID = 9,
                                LastName   = "Smith",
                                PartyID    = Guid.NewGuid(),
                                Salutation = "Mr"
                            },
                            TerminationDate = null,
                            WorkerID        = m_Settings.TestWorkerID,
                            WorkerOperators = new[]
                            {
                                new WorkerOperator
                                {
                                    ConfigPoint      = m_Settings.StoreID,
                                    DisplayName      = "Johnny Smith",
                                    OperatorGroupIDs = new[] { 1 },
                                    OperatorID       = m_Settings.OperatorID,
                                    WorkerID         = m_Settings.TestWorkerID
                                }
                            },
                            WorkerOperatorSellLocations = new[]
                            {
                                new WorkerOperatorSellLocation
                                {
                                    DefaultTenderContainerID = "101",
                                    SellingLocationID        = 1
                                }
                            }
                        }
                    });
                }
            }
            var xml = new MessageViewFormatter <UserManagementUpdateOperationResult>(result).FormatMessage();

            m_Controller.ShowResult(xml);
        }