Exemplo n.º 1
0
        public ActionResult Detail(int id)
        {
            var model = new MasterDataApprovalItemViewModel();

            model.CurrentMenu = PageInfo;
            model.MainMenu    = _mainMenu;

            var data            = _masterDataAprovalBLL.GetByApprovalId(id);
            var workflowHistory = _workflowHistoryBLL.GetByFormTypeAndFormId(new GetByFormTypeAndFormIdInput()
            {
                FormId   = data.APPROVAL_ID,
                FormType = Enums.FormType.MasterDataApproval
            });

            model.WorkflowHistory = new List <WorkflowHistoryViewModel>();
            model.WorkflowHistory.Add(new WorkflowHistoryViewModel()
            {
                ACTION       = EnumHelper.GetDescription(Enums.ActionType.Created),
                ACTION_BY    = data.CREATED_BY,
                ACTION_DATE  = data.CREATED_DATE,
                FORM_TYPE_ID = Enums.FormType.MasterDataApproval,
                FORM_NUMBER  = data.FORM_ID,
                Role         = EnumHelper.GetDescription(_poaBLL.GetUserRole(data.CREATED_BY)),
                USERNAME     = data.CREATED_BY
            });
            model.WorkflowHistory.AddRange(Mapper.Map <List <WorkflowHistoryViewModel> >(workflowHistory));
            model.Detail = Mapper.Map <MasterDataApprovalDetailViewModel>(data);
            var detailObject = _masterDataAprovalBLL.GetObjectDetails(data.FORM_ID, data.PAGE_ID);

            model.Detail.DetailObject = Mapper.Map <List <MasterDataApprovalDetail> >(detailObject);
            model.IsMasterApprover    = _userBLL.IsUserMasterApprover(CurrentUser.USER_ID);
            return(View(model));
        }
Exemplo n.º 2
0
        public void SetLoginSession()
        {
            if (Session[Core.Constans.SessionKey.CurrentUser] == null)
            {
                var      userId  = User.Identity.Name.Split('\\')[User.Identity.Name.Split('\\').Length - 1]; //User.Identity.Name.Remove(0, 4);
                IUserBLL userBll = MvcApplication.GetInstance <UserBLL>();
                IPOABLL  poabll  = MvcApplication.GetInstance <POABLL>();
                IUserAuthorizationBLL userAuthorizationBll = MvcApplication.GetInstance <UserAuthorizationBLL>();
                var loginResult = userBll.GetLogin(userId);

                if (loginResult != null)
                {
                    //CurrentUser = loginResult;
                    loginResult.UserRole       = poabll.GetUserRole(loginResult.USER_ID);
                    loginResult.AuthorizePages = userAuthorizationBll.GetAuthPages(loginResult.USER_ID);
                    loginResult.NppbckPlants   = userAuthorizationBll.GetNppbckPlants(loginResult.USER_ID);
                    loginResult.ListUserPlants = new List <string>();
                    loginResult.ListUserNppbkc = new List <string>();
                    switch (loginResult.UserRole)
                    {
                    case Enums.UserRole.User:
                    case Enums.UserRole.Viewer:
                    case Enums.UserRole.Controller:
                        loginResult.ListUserPlants =
                            userAuthorizationBll.GetListPlantByUserId(loginResult.USER_ID);
                        loginResult.ListUserNppbkc =
                            userAuthorizationBll.GetListNppbkcByUserId(loginResult.USER_ID);
                        break;

                    case Enums.UserRole.POA:
                        loginResult.ListUserPlants = new List <string>();
                        foreach (var nppbkcPlantDto in loginResult.NppbckPlants)
                        {
                            foreach (var plantDto in nppbkcPlantDto.Plants)
                            {
                                loginResult.ListUserPlants.Add(plantDto.WERKS);
                            }
                        }
                        loginResult.ListUserNppbkc = loginResult.NppbckPlants.Select(c => c.NppbckId).ToList();
                        break;
                    }
                }
                Session[Core.Constans.SessionKey.CurrentUser] = loginResult;
            }
        }
Exemplo n.º 3
0
        public ActionResult Index(LoginFormModel model)
        {
            var loginResult = _userBll.GetLogin(model.Login.UserId);

            if (loginResult != null)
            {
                //CurrentUser = loginResult;
                CurrentUser.UserRole       = _poabll.GetUserRole(loginResult.USER_ID);
                CurrentUser.AuthorizePages = _userAuthorizationBll.GetAuthPages(loginResult.USER_ID);
                CurrentUser.NppbckPlants   = _userAuthorizationBll.GetNppbckPlants(loginResult.USER_ID);
                CurrentUser.ListUserPlants = new List <string>();
                CurrentUser.ListUserNppbkc = new List <string>();
                switch (CurrentUser.UserRole)
                {
                case Enums.UserRole.User:
                case Enums.UserRole.Controller:
                case Enums.UserRole.Viewer:
                    CurrentUser.ListUserPlants =
                        _userAuthorizationBll.GetListPlantByUserId(loginResult.USER_ID);
                    CurrentUser.ListUserNppbkc =
                        _userAuthorizationBll.GetListNppbkcByUserId(loginResult.USER_ID);
                    break;

                case Enums.UserRole.POA:
                    CurrentUser.ListUserPlants = new List <string>();
                    foreach (var nppbkcPlantDto in CurrentUser.NppbckPlants)
                    {
                        foreach (var plantDto in nppbkcPlantDto.Plants)
                        {
                            CurrentUser.ListUserPlants.Add(plantDto.WERKS);
                        }
                    }
                    CurrentUser.ListUserNppbkc = CurrentUser.NppbckPlants.Select(c => c.NppbckId).ToList();
                    break;
                }


                return(RedirectToAction("Index", "Home"));
            }

            return(RedirectToAction("Unauthorized", "Error"));
        }
Exemplo n.º 4
0
        public bool IsAllowEditLack1(string createdUser, string currentUserId, Enums.DocumentStatus status, Enums.UserRole role, string documentNumber)
        {
            if (_poabll.GetUserRole(currentUserId) == Enums.UserRole.Administrator)
            {
                return(true);
            }

            if (status == Enums.DocumentStatus.WaitingGovApproval)
            {
                string originalPoa;

                if (createdUser == currentUserId)
                {
                    return(true);
                }

                originalPoa = createdUser;

                if (role == Enums.UserRole.POA)
                {
                    //get poa Original that already approve or reject
                    var workflowHistoryDto =
                        _workflowHistoryBll.GetDtoApprovedRejectedPoaByDocumentNumber(documentNumber);

                    if (workflowHistoryDto != null)
                    {
                        if (!string.IsNullOrEmpty(workflowHistoryDto.COMMENT) &&
                            workflowHistoryDto.COMMENT.Contains(Constans.LabelDelegatedBy)) //approve by delegated
                        {
                            //find the original
                            originalPoa =
                                workflowHistoryDto.COMMENT.Substring(
                                    workflowHistoryDto.COMMENT.IndexOf(Constans.LabelDelegatedBy,
                                                                       System.StringComparison.Ordinal));
                            originalPoa = originalPoa.Replace(Constans.LabelDelegatedBy, "");
                            originalPoa = originalPoa.Replace("]", "");
                        }
                        else
                        {
                            originalPoa = workflowHistoryDto.ACTION_BY;
                        }
                    }
                }

                //get delegated user
                var listUser = new List <string>();
                listUser.Add(originalPoa);
                var poaDelegate = _poaDelegationServices.GetPoaDelegationToByPoaFromAndDate(originalPoa,
                                                                                            DateTime.Now);

                listUser.AddRange(poaDelegate);

                if (originalPoa != createdUser)
                {
                    //get delegate for created user too
                    poaDelegate = _poaDelegationServices.GetPoaDelegationToByPoaFromAndDate(createdUser,
                                                                                            DateTime.Now);

                    listUser.AddRange(poaDelegate);
                }

                if (listUser.Contains(currentUserId))
                {
                    return(true);
                }
            }

            if (createdUser != currentUserId)
            {
                if (
                    !_poaDelegationServices.IsDelegatedUserByUserAndDate(createdUser, currentUserId,
                                                                         DateTime.Now))
                {
                    return(false);
                }
            }

            if (!(status == Enums.DocumentStatus.Draft || status == Enums.DocumentStatus.Rejected ||
                  status == Enums.DocumentStatus.WaitingGovApproval || status == Enums.DocumentStatus.Completed))
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 5
0
        public List <UserDto> GetListUserRoleByUserId(string userId)
        {
            var userRole = _poabll.GetUserRole(userId);

            List <string> listPlantUserFrom;
            List <string> listPlantUserTo;

            if (userRole == Enums.UserRole.POA)
            {
                listPlantUserFrom = _poabll.GetPoaPlantByPoaId(userId);
            }
            else if (userRole == Enums.UserRole.User)
            {
                listPlantUserFrom = _userPlantMapBll.GetByUserId(userId).Select(c => c.PLANT_ID).ToList();
            }
            else
            {
                listPlantUserFrom = new List <string>();
            }

            var listUser = _repository.Get();

            var filterResult = new List <USER>();

            foreach (var user in listUser)
            {
                var role = _poabll.GetUserRole(user.USER_ID);

                if (userRole == role)
                {
                    if (role == Enums.UserRole.POA)
                    {
                        //get list plant from poa_map

                        listPlantUserTo = _poabll.GetPoaPlantByPoaId(user.USER_ID);
                        //foreach (var plantUserTo in listPlantUserTo)
                        //{
                        //    foreach (var plantUserFrom in listPlantUserFrom)
                        //    {
                        //        if (plantUserFrom == plantUserTo)
                        //            filterResult.Add(user);
                        //    }
                        //}
                    }
                    else if (role == Enums.UserRole.User)
                    {
                        //get list plant from user_plant map

                        listPlantUserTo = _userPlantMapBll.GetByUserId(user.USER_ID).Select(c => c.PLANT_ID).ToList();
                    }
                    else
                    {
                        listPlantUserTo = new List <string>();
                    }

                    foreach (var plantUserTo in listPlantUserTo)
                    {
                        foreach (var plantUserFrom in listPlantUserFrom)
                        {
                            if (plantUserFrom == plantUserTo)
                            {
                                filterResult.Add(user);
                            }
                        }
                    }
                }
            }

            filterResult = filterResult.Where(c => c.USER_ID != userId).DistinctBy(c => c.USER_ID).ToList();

            return(Mapper.Map <List <UserDto> >(filterResult));
        }
        public JsonResult GetUserRole(string userId)
        {
            var dbUser = _poabll.GetUserRole(userId);

            return(Json(dbUser.ToString()));
        }