コード例 #1
0
        public ActionResult EditAnExistingUser(string id)
        {
            EditUser UserToBeEdited = new EditUser();

            try
            {
                if (id != null)
                {
                    var presentUserToBeEdited = from usertable in database.DX_USER where usertable.userid == id select usertable;
                    if (presentUserToBeEdited != null && presentUserToBeEdited.ToList().Count() == 1)
                    {
                        DX_USER user = (DX_USER)presentUserToBeEdited.ToList().First();



                        UserToBeEdited.FirstName = user.fname;
                        UserToBeEdited.LastName  = user.lname;
                        UserToBeEdited.Email     = user.userid;
                        UserToBeEdited.Position  = user.role;
                        List <int> depts = DbCommonQueries.getDepartmentIds(user.userid, database);
                        UserToBeEdited.Department  = depts;
                        UserToBeEdited.AccessLevel = user.accesslevel;
                    }
                }


                populateDepartmenetsList();
            }
            catch
            {
                ModelState.AddModelError("", "Error occured while editing existing user");
            }
            return(View(UserToBeEdited));
        }
コード例 #2
0
        public ActionResult DeactivateAnExistingUser(string id)
        {
            try
            {
                var allusers = from usertable in database.DX_USER where usertable.userid == id select usertable;
                if (allusers != null && allusers.ToList().Count == 1)
                {
                    DX_USER user = allusers.ToList().First();

                    switch (user.role)
                    {
                    case "ceo": user.accesslevel = Constants.DEACTIVATED_USER_ACCESS;
                        break;

                    case "manager": user.accesslevel = Constants.DEACTIVATED_USER_ACCESS;
                        break;

                    case "employee": user.accesslevel = Constants.DEACTIVATED_USER_ACCESS;
                        break;

                    case "vp": user.accesslevel = Constants.DEACTIVATED_USER_ACCESS;
                        break;

                    default:
                        break;
                    }
                    database.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
                    int success = database.SaveChanges();
                }
            }
            catch { ModelState.AddModelError("", "Error occured while tdeactivating the user"); }
            return(RedirectToAction("AllExistingUsers"));
        }
コード例 #3
0
        public ActionResult VerifySecret(VerifySecrete secretModel)
        {
            ViewBag.SecQ = SessionKeyMgmt.SecreteQuestion;
            if (ModelState.IsValid)
            {
                if (SessionKeyMgmt.UserId != null && !"".Equals(SessionKeyMgmt.UserId))
                {
                    if (verifyCaptcha() == false)
                    {
                        return(View(secretModel));
                    }

                    var allusers = from usertabel in database.DX_USER
                                   where usertabel.userid == SessionKeyMgmt.UserId
                                   select usertabel;

                    if (allusers != null && allusers.ToList().Count == 1)
                    {
                        DX_USER user = allusers.ToList().First();
                        if (secretModel.Answer != null && !"".Equals(secretModel.Answer) && generateHash(secretModel.Answer.ToLower()).Equals(user.anshash))
                        {
                            if (sendNotificationCode())
                            {
                                return(RedirectToAction("EnterActivationCode", "Account"));
                            }
                            else
                            {
                                ModelState.AddModelError("", "Problem in sending notificatoin code please try recovering the password later!");
                                return(RedirectToAction("LogOn", "Account"));
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("", "Your request is invalid, sorry we cant process it!");
                            return(View(secretModel));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Your request is invalid, sorry we cant process it!");
                        return(View(secretModel));
                    }
                }
            }
            return(View(secretModel));
        }
コード例 #4
0
        public ActionResult EditAnExistingUser(EditUser model)
        {
            try
            {
                var editedUser = from usertable in database.DX_USER where usertable.userid == model.Email select usertable;
                if (editedUser != null && editedUser.ToList().Count() == 1)
                {
                    //var DepartmentRecord = alldepartments.First();
                    DX_USER user = (DX_USER)editedUser.ToList().First();
                    user.accesslevel = model.AccessLevel;
                    user.role        = model.Position;
                    database.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
                }
                var userCurrentdepartments = from usertable in database.DX_USERDEPT where usertable.userid == model.Email select usertable;

                if (userCurrentdepartments != null && userCurrentdepartments.ToList().Count >= 1)
                {
                    foreach (DX_USERDEPT userdepartment in userCurrentdepartments.ToList())
                    {
                        // DX_USERDEPT userDept = new DX_USERDEPT();
                        database.DX_USERDEPT.DeleteObject(userCurrentdepartments.ToList().First());
                        int success = database.SaveChanges();
                    }
                    var alldepartment = from usertable in database.DX_DEPARTMENT where model.Department.Contains(usertable.deptid) select usertable;
                    if (alldepartment != null && alldepartment.ToList().Count() >= 1)
                    {
                        foreach (DX_DEPARTMENT dept in alldepartment.ToList())
                        {
                            DX_USERDEPT userDept = new DX_USERDEPT();
                            userDept.deptid = dept.deptid;
                            userDept.userid = model.Email;
                            database.DX_USERDEPT.AddObject(userDept);
                            int success = database.SaveChanges();
                        }
                    }
                }
            }
            catch
            {
                ModelState.AddModelError("", "Error while updating user details");
            }

            return(RedirectToAction("AllExistingUsers"));
        }
コード例 #5
0
 public ActionResult ResetPassword(ResetPasswordModel model)
 {
     if (ModelState.IsValid && verifyCaptcha())
     {
         if (model.Password.Equals(model.ConfirmPassword))
         {
             try
             {
                 if (SessionKeyMgmt.UserId != null && !"".Equals(SessionKeyMgmt.UserId))
                 {
                     var allusers = from usertabel in database.DX_USER where usertabel.userid == SessionKeyMgmt.UserId select usertabel;
                     if (allusers != null && allusers.ToList().Count == 1)
                     {
                         DX_USER user = allusers.ToList().First();
                         user.salt    = generateSalt();
                         user.pwdhash = generateHash(user.salt, model.Password);
                     }
                     database.SaveChanges();
                     return(RedirectToAction("PasswordSuccess", "Account"));
                 }
                 else
                 {
                     ModelState.AddModelError("", "Could not reset the password please try after some time");
                 }
             }
             catch (Exception)
             {
                 ModelState.AddModelError("", "Could not reset the password please try after some time");
             }
         }
         else
         {
             ModelState.AddModelError("", "Password don't match!!");
         }
     }
     return(View(model));
 }
コード例 #6
0
        public ActionResult AssignAccessLevel(string id)
        {
            try
            {
                if (id != null)
                {
                    var allusers = from usertabel in database.DX_USER where usertabel.userid == id select usertabel;

                    if (allusers != null && allusers.ToList().Count == 1)
                    {
                        DX_USER user = allusers.ToList().First();

                        switch (user.role)
                        {
                        case "ceo": user.accesslevel = Constants.CEO_USER_ACCESS;
                            break;

                        case "manager": user.accesslevel = Constants.MANAGER_USER_ACCESS;

                            break;

                        case "employee": user.accesslevel = Constants.EMPLOYEE_USER_ACCESS;
                            break;

                        case "vp": user.accesslevel = Constants.VP_USER_ACCESS;
                            break;

                        default:
                            break;
                        }
                        database.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
                        if (user.accesslevel != Constants.EMPLOYEE_USER_ACCESS)
                        {
                            var userdept = from userdepttable in database.DX_USERDEPT
                                           where userdepttable.userid == id
                                           select userdepttable;
                            if (userdept == null)
                            {
                                throw new Exception("error while retrieving user department");
                            }
                            List <string> usersList = new List <string>();
                            foreach (DX_USERDEPT dept in userdept)
                            {
                                var deptmembers = from userdepttable in database.DX_USERDEPT
                                                  where userdepttable.deptid == dept.deptid && userdepttable.userid != id
                                                  select userdepttable;
                                if (deptmembers != null)
                                {
                                    foreach (DX_USERDEPT deptuser in deptmembers)
                                    {
                                        string deptUserid = deptuser.userid;
                                        if (!usersList.Contains(deptUserid))
                                        {
                                            usersList.Add(deptUserid);
                                        }
                                        else
                                        {
                                            continue;
                                        }
                                        var useraccess = database.DX_USER.SingleOrDefault(x => x.userid == deptuser.userid);
                                        switch (user.accesslevel)
                                        {
                                        case "manager":
                                        {
                                            if (useraccess.accesslevel.Equals("ceo") || useraccess.accesslevel.Equals("vp"))
                                            {
                                                continue;
                                            }
                                            break;
                                        }

                                        case "vp":
                                        {
                                            if (useraccess.accesslevel.Equals("ceo"))
                                            {
                                                continue;
                                            }
                                            break;
                                        }
                                        }

                                        var employeeFiles = from files in database.DX_FILES
                                                            where files.ownerid == useraccess.userid
                                                            select files;
                                        if (employeeFiles != null)
                                        {
                                            foreach (DX_FILES employeeFile in employeeFiles)
                                            {
                                                var file = from prev in database.DX_PRIVILEGE where prev.userid == id && prev.fileid == employeeFile.fileid select prev;
                                                if (file != null && file.Count() < 1)
                                                {
                                                    DX_PRIVILEGE filePriv = new DX_PRIVILEGE();
                                                    filePriv.fileid = employeeFile.fileid;
                                                    filePriv.userid = id;
                                                    filePriv.read   = true;
                                                    filePriv.update = true;
                                                    filePriv.delete = true;
                                                    filePriv.check  = true;
                                                    filePriv.reason = "inherit";
                                                    database.DX_PRIVILEGE.AddObject(filePriv);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        int success = database.SaveChanges();
                        if (success > 0)
                        {
                            String message = Environment.NewLine + "Hi " + user.fname + "," + Environment.NewLine
                                             + "You request has been approved!" + Environment.NewLine
                                             + "You Can now login to your account to access your files" + Environment.NewLine
                                             + "- Docbox Team";
                            try
                            {
                                EmailMessaging.sendMessage(id, message, "Notification");
                            }
                            catch
                            {
                                ModelState.AddModelError("", "User approved, but notification not send");

                                return(View("Error"));
                            }

                            //FormsAuthentication.SetAuthCookie(id, false);
                        }
                    }
                }
            }
            catch { ModelState.AddModelError("", "Error occured while assigning access level to the user"); }
            return(RedirectToAction("Index"));
        }
コード例 #7
0
        public ActionResult Register(RegisterModel model)
        {
            try
            {
                populateDepartmenetsList();

                if (ModelState.IsValid)
                {
                    FormsAuthentication.SignOut();
                    if (validateModelRegister(model) == false)
                    {
                        ViewBag.CaptchaGuid = Guid.NewGuid().ToString("N");
                        return(View(model));
                    }

                    ViewBag.CaptchaGuid = Guid.NewGuid().ToString("N");

                    var allusers = from usertabel in database.DX_USER where usertabel.userid == model.Email select usertabel;
                    if (allusers.ToList().Count == 1)
                    {
                        ModelState.AddModelError("", "Email id not unique, please enter a diffrent valid email id!");
                        return(View(model));
                    }
                    var alldepartment = from usertabel in database.DX_DEPARTMENT where model.Department.Contains(usertabel.deptid) select usertabel;

                    if (Constants.POSITION_CEO_USER.Equals(model.Position))
                    {
                        alldepartment = from usertabel in database.DX_DEPARTMENT select usertabel;
                    }

                    if (alldepartment.ToList().Count >= 1)
                    {
                        DX_USER user = new DX_USER();
                        user.fname       = model.FirstName;
                        user.lname       = model.LastName;
                        user.phone       = model.Phone;
                        user.questionid  = model.Squestion;
                        user.role        = model.Position;
                        user.userid      = model.Email;
                        user.anshash     = generateHash(model.Answer.ToLower());
                        user.accesslevel = Constants.TEMP_USER_ACCESS;
                        user.salt        = generateSalt();
                        user.pwdhash     = generateHash(user.salt, model.Password);
                        user.actcodehash = "dummycode";
                        database.DX_USER.AddObject(user);//Add user

                        foreach (DX_DEPARTMENT dept in alldepartment.ToList())
                        {
                            DX_USERDEPT userDept = new DX_USERDEPT();
                            userDept.deptid = dept.deptid;
                            userDept.userid = model.Email;
                            database.DX_USERDEPT.AddObject(userDept);//Add department
                        }

                        int success = database.SaveChanges();
                        if (success > 0)
                        {
                            String message = Environment.NewLine + "Hi " + model.FirstName + "," + Environment.NewLine
                                             + "Thank you for registering with Docbox!" + Environment.NewLine
                                             + "You will soon get notification, once you are been approved by Docbox Administrator" + Environment.NewLine
                                             + "- Docbox Team";
                            try
                            {
                                EmailMessaging.sendMessage(model.Email, message, "Notification");
                            }
                            catch
                            {
                                ModelState.AddModelError("", "User created but unabe to log in at this point of time try logging in after some time!");

                                return(View(model));
                            }

                            FormsAuthentication.SetAuthCookie(model.Email, false);
                            return(RedirectToAction("Index", "TempUser"));
                        }
                        else
                        {
                            ModelState.AddModelError("", "User can not be registered, Please try after some time!");
                            return(View(model));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Invalid Department Select Correct Department");
                        return(View(model));
                    }
                }
            }
            catch (Exception)
            {
                ModelState.AddModelError("", "Invalid request please try after some time! ");
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }