public ActionResult Undelete(string id, FormCollection collection)
        {
            if (!ModelState.IsValid)
            {
                string errorMessage = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));

                ModelState.AddModelError("", errorMessage);
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Error, errorMessage);

                return(View(collection));
            }

            UnitOfWork uow       = new UnitOfWork();
            string     auditGUID = Guid.NewGuid().ToString();

            var model = uow.RoleRepository.GetRecordByUID(id, StatusConstant.Inactive);

            model.StatusFlag   = StatusConstant.Active;
            model.ModifiedBy   = jvkUserPrivateData.userUID;
            model.ModifiedDate = DateTime.Now;
            model.AuditGUID    = auditGUID;

            uow.SaveDBChanges();

            TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "Role is successfully undeleted.");

            return(RedirectToAction("Index"));
        }
        public ActionResult Create(MenuEditViewModel collection)
        {
            if (!ModelState.IsValid)
            {
                string errorMessage = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));

                ModelState.AddModelError("", errorMessage);
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Error, errorMessage);

                return(View(collection));
            }

            UnitOfWork uow       = new UnitOfWork();
            string     auditGUID = Guid.NewGuid().ToString();

            //check if LoginID is already taken
            var duplicateMenu = uow.MenuRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active) && c.MenuName.ToUpper().Equals(collection.MenuName.ToUpper())).SingleOrDefault();

            if (duplicateMenu == null)
            {
                var parentModel = uow.MenuRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active) && c.MenuUID == collection.ParentMenuUID).SingleOrDefault();

                var Menu = new JVK.Domain.DBModels.Menu();

                Menu.MenuUID         = Guid.NewGuid().ToString();
                Menu.MenuName        = collection.MenuName;
                Menu.MenuDescription = collection.MenuDescription;
                Menu.MenuURL         = collection.MenuURL;
                Menu.ParentMenuUID   = collection.ParentMenuUID;
                Menu.OrderNumber     = collection.OrderNumber;
                if (parentModel != null)
                {
                    Menu.HLevel = parentModel.HLevel + 1;
                }
                else
                {
                    Menu.HLevel = 0;
                }
                Menu.StatusFlag   = StatusConstant.Active;
                Menu.ModifiedBy   = jvkUserPrivateData.userUID;
                Menu.ModifiedDate = DateTime.Now;
                Menu.AuditGUID    = auditGUID;

                uow.MenuRepository.AddRecord(Menu);

                uow.SaveDBChanges();

                TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "Menu is successfully added.");

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Warning, "Menu Name is already taken. Please try another name.");

                return(View(collection));
            }
        }
Пример #3
0
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                JVKUserPrivateData jvkUserPrivateData = new JVKUserPrivateData();
                JVKUser            jvkUser            = new JVKUser();
                JVKCache           jvkCache           = new JVKCache();
                UnitOfWork         uow = new UnitOfWork();

                var recordUser = uow.UserRepository.GetRecordsByFilter(c => c.StatusFlag == StatusConstant.Active && c.LoginID == model.LoginID).SingleOrDefault();

                if (recordUser != null)
                {
                    //verify password
                    if (model.Password == "password")
                    //if (System.Web.Helpers.Crypto.VerifyHashedPassword(recordUser.PasswordHash, model.Password))
                    {
                        //remove jvkUserPrivateData and jvsUser from cache
                        jvkCache.RemoveFromCache("jvsUserData" + recordUser.UserUID);
                        jvkCache.RemoveFromCache("jvsUser" + recordUser.UserUID);

                        jvkUserPrivateData = jvkCache.GetJVKUserPrivateData(recordUser.UserUID);
                        jvkUser            = jvkCache.GetJVKUser(recordUser.UserUID);

                        //clear all existing cookies
                        Response.Cookies.Clear();

                        //set authentication cookie
                        int sessionCookieTimeout             = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["sessionCookieTimeout"]);
                        FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, jvkUser.userCookieToken, DateTime.Now, DateTime.Now.AddMinutes(sessionCookieTimeout), false, jvkUser.userRoleIds);
                        HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket));

                        //add cookie to the response stream
                        Response.Cookies.Add(authCookie);

                        if (Url.IsLocalUrl(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    else
                    {
                        ///// login failed /////
                        //cross controller call, put in TempData instead of ViewBag
                        TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "Login failed. Try again.");

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

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public ActionResult Create(RoleEditViewModel collection)
        {
            if (!ModelState.IsValid)
            {
                string errorMessage = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));

                ModelState.AddModelError("", errorMessage);
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Error, errorMessage);

                return(View(collection));
            }

            UnitOfWork uow       = new UnitOfWork();
            string     auditGUID = Guid.NewGuid().ToString();

            //check if RoleName is already taken
            var duplicateRole = uow.RoleRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active) && c.RoleName.ToUpper().Equals(collection.RoleName.ToUpper())).SingleOrDefault();

            if (duplicateRole == null)
            {
                var Role = new JVK.Domain.DBModels.Role();

                Role.RoleUID         = Guid.NewGuid().ToString();
                Role.RoleName        = collection.RoleName;
                Role.RoleDescription = collection.RoleDescription;
                Role.StatusFlag      = StatusConstant.Active;
                Role.ModifiedBy      = jvkUserPrivateData.userUID;
                Role.ModifiedDate    = DateTime.Now;
                Role.AuditGUID       = auditGUID;

                uow.RoleRepository.AddRecord(Role);

                uow.SaveDBChanges();

                TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "Role is successfully added.");

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Warning, "Role Name is already taken. Please try another name.");

                return(View(collection));
            }
        }
Пример #5
0
        public ActionResult List(string id, string[] permits)
        {
            UnitOfWork uow       = new UnitOfWork();
            string     auditGUID = Guid.NewGuid().ToString();

            //deactivate all existing role permits
            uow.RolePermitRepository.GetRecordsByFilter(c => c.RoleUID == id).ToList().ForEach(c => { c.StatusFlag = StatusConstant.Inactive; c.ModifiedBy = jvkUserPrivateData.userUID; c.ModifiedDate = DateTime.Now; c.AuditGUID = auditGUID; });

            foreach (var itemRolePermitID in permits)
            {
                var recordRolePermit = uow.RolePermitRepository.GetRecordsByFilter(c => c.StatusFlag == StatusConstant.Active && c.RoleUID == id && c.PermitConst == itemRolePermitID).SingleOrDefault();

                if (recordRolePermit != null)
                {
                    //reactivate existing record
                    recordRolePermit.StatusFlag   = StatusConstant.Active;
                    recordRolePermit.ModifiedBy   = jvkUserPrivateData.userUID;
                    recordRolePermit.ModifiedDate = DateTime.Now;
                    recordRolePermit.AuditGUID    = auditGUID;
                }
                else
                {
                    var rolePermit = new RolePermit();

                    rolePermit.RolePermitUID = Guid.NewGuid().ToString();
                    rolePermit.RoleUID       = id;
                    rolePermit.PermitConst   = itemRolePermitID;
                    rolePermit.StatusFlag    = StatusConstant.Active;
                    rolePermit.ModifiedBy    = jvkUserPrivateData.userUID;
                    rolePermit.ModifiedDate  = DateTime.Now;
                    rolePermit.AuditGUID     = auditGUID;

                    uow.RolePermitRepository.AddRecord(rolePermit);
                }
            }

            //Save
            uow.SaveDBChanges();

            //set alert box
            TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "Role Permits are successfully modified.");

            return(RedirectToAction("List"));
        }
Пример #6
0
        public ActionResult Edit(string id, UserEditViewModel collection)
        {
            if (!ModelState.IsValid)
            {
                string errorMessage = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));

                ModelState.AddModelError("", errorMessage);
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Error, errorMessage);

                return(View(collection));
            }

            UnitOfWork uow       = new UnitOfWork();
            string     auditGUID = Guid.NewGuid().ToString();

            //check if LoginID is already taken
            var duplicateUser = uow.UserRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active) && c.LoginID.ToUpper().Equals(collection.LoginID.ToUpper()) && c.UserUID != id).SingleOrDefault();

            if (duplicateUser == null)
            {
                //edit the user
                var recordUser = uow.UserRepository.GetRecordByUID(id, StatusConstant.Active);

                recordUser.LoginID      = collection.LoginID;
                recordUser.StatusFlag   = StatusConstant.Active;
                recordUser.ModifiedBy   = jvkUserPrivateData.userUID;
                recordUser.ModifiedDate = DateTime.Now;
                recordUser.AuditGUID    = auditGUID;

                //deactivate all existing user roles
                var listAllUserRoles = uow.UserRoleRepository.GetRecordsByFilter(c => c.UserUID == id).ToList();
                listAllUserRoles.ForEach(c => { c.StatusFlag = StatusConstant.Inactive; c.ModifiedBy = jvkUserPrivateData.userUID; c.ModifiedDate = DateTime.Now; c.AuditGUID = auditGUID; });

                //now activate the roles received
                if (collection.Roles != null)
                {
                    foreach (var itemRoleUID in collection.Roles)
                    {
                        var recordUserRole = uow.UserRoleRepository.GetRecordsByFilter(c => c.UserUID == id && c.RoleUID == itemRoleUID).SingleOrDefault();

                        if (recordUserRole != null)
                        {
                            //reactivate the existing record
                            recordUserRole.StatusFlag   = StatusConstant.Active;
                            recordUserRole.ModifiedBy   = jvkUserPrivateData.userUID;
                            recordUserRole.ModifiedDate = DateTime.Now;
                            recordUserRole.AuditGUID    = auditGUID;
                        }
                        else
                        {
                            //add a new role record
                            UserRole userRole = new UserRole();

                            userRole.UserRoleUID  = Guid.NewGuid().ToString();
                            userRole.UserUID      = id;
                            userRole.RoleUID      = itemRoleUID;
                            userRole.StatusFlag   = StatusConstant.Active;
                            userRole.ModifiedBy   = jvkUserPrivateData.userUID;
                            userRole.ModifiedDate = DateTime.Now;
                            userRole.AuditGUID    = auditGUID;

                            uow.UserRoleRepository.AddRecord(userRole);
                        }
                    }
                }

                uow.SaveDBChanges();

                TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "User is successfully modified.");

                return(RedirectToAction("Index"));
            }
            else
            {
                var listRoles     = uow.RoleRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active)).ToList();
                var listUserRoles = uow.UserRoleRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active) && c.UserUID == id).OrderBy(c => c.Role.RoleName).ToList();

                ViewBag.listRoles     = listRoles;
                ViewBag.listUserRoles = listUserRoles;
                ViewBag.alertBox      = new BootstrapAlertBox(AlertType.Warning, "User Name is already taken. Please try another name.");

                return(View(collection));
            }
        }
Пример #7
0
        public ActionResult Register(RegisterViewModel collection)
        {
            if (!ModelState.IsValid)
            {
                string errorMessage = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));

                ModelState.AddModelError("", errorMessage);
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Error, errorMessage);

                return(View(collection));
            }

            if (!collection.Password.Equals(collection.ConfirmPassword))
            {
                string errorMessage = "The password and confirmation password do not match";

                ModelState.AddModelError("", errorMessage);
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Error, errorMessage);

                return(View(collection));
            }

            string     auditGUID = Guid.NewGuid().ToString();
            UnitOfWork uow       = new UnitOfWork();

            //check if LoginID exists
            var duplicateUser = uow.UserRepository.GetRecordsByFilter(c => c.StatusFlag.Equals(StatusConstant.Active) && c.LoginID.ToUpper().Equals(collection.LoginID.ToUpper())).SingleOrDefault();

            if (duplicateUser == null)
            {
                var user = new JVK.Domain.DBModels.User();

                user.UserUID      = Guid.NewGuid().ToString();
                user.LoginID      = collection.LoginID;
                user.PasswordHash = System.Web.Helpers.Crypto.HashPassword(collection.Password);
                user.StatusFlag   = StatusConstant.Active;
                user.ModifiedBy   = "SYSTEM - New User Registration";
                user.ModifiedDate = DateTime.Now;
                user.AuditGUID    = auditGUID;

                uow.UserRepository.AddRecord(user);

                uow.SaveDBChanges();

                if (collection.redirectAction != null && collection.redirectAction == "UserController.Create")
                {
                    //cross controller call, put in TempData instead of ViewBag
                    TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "User [" + collection.LoginID + "] is successfully added.");

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

                //cross controller call, put in TempData instead of ViewBag
                TempData["alertBox"] = new BootstrapAlertBox(AlertType.Success, "User [" + collection.LoginID + "] is successfully added. Please Login;");

                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                //set alert box
                ViewBag.alertBox = new BootstrapAlertBox(AlertType.Warning, "User Name is already taken. Please try another name.");

                return(View(collection));
            }
        }