Ejemplo n.º 1
0
        public ActionResult Personal([Bind(Exclude = "RealName, StuNumber, Identification")] AcntWithoutPsw userAcnt)
        {
            var result = new QsResult {
                Success = false
            };

            if (ModelState.IsValid)
            {
                var userInCookie = CustomAuthorizeAttribute.GetUser();
                if (userAcnt.UserId != userInCookie.UserId)
                {
                    result.Message = @"请不要尝试修改您不允许改动的内容";
                    return(Json(result));
                }
                var original = _userService.GetUserById(userInCookie.UserId);
                if (TryUpdateModel(original, null, null, new [] { "RealName", "StuNumber", "Identification", "Roles" }))
                {
                    _userService.UpdateUserInformation(original);
                    SafeOutAuthCookie();
                    SetAuthCookie(QsMapper.CreateMap <UserDto, UserSafetyModel>(original));
                    result.Success = true;
                    return(Json(result));
                }
            }
            return(Json(result));
        }
Ejemplo n.º 2
0
        public QsResult CheckUserInLogin(string nameOrNumber, string password, bool isAdmin = false)
        {
            var result = new QsResult {
                Success = false
            };
            User model;

            if (isAdmin)
            {
                model =
                    _userRepository.FirstOrDefault(
                        user =>
                        user.UserName.Equals(nameOrNumber) &&
                        (user.Roles.Equals("Admin") || user.Roles.Equals("Editor")));
            }
            else
            {
                model = _userRepository.FirstOrDefault(user => user.UserName.Equals(nameOrNumber));
            }
            if (model == null)
            {
                result.Message = @"该用户不存在";
                return(result);
            }
            if (model.Password.Equals(password))
            {
                result.Success = true;
                result.Message = model.UserId.ToString(CultureInfo.InvariantCulture);
                return(result);
            }
            result.Message = @"密码输入错误";
            return(result);
        }
Ejemplo n.º 3
0
        public ActionResult ChangePassword(ProfileChangePassword model)
        {
            model.Trim();
            var result = new QsResult {
                Success = false
            };

            if (!ModelState.IsValid)
            {
                return(Json(result));
            }
            var user = _userService.GetUserById(GetUserInCookie().UserId);

            if (!user.Password.Equals(Utilities.MD5(model.CurrentPassword)))
            {//验证原始密码
                result.Message = @"原始密码输入错误";
                ModelState.AddModelError("CurrentPassword", result.Message);
                return(Json(result));
            }
            if (model.CurrentPassword.Equals(model.NewPassword))
            {//判断到新旧密码一致
                result.Message = @"新旧密码一致,未进行修改操作";
                return(Json(result));
            }
            user.Password = Utilities.MD5(model.NewPassword);
            _userService.UpdateUserInformation(user);
            SafeOutAuthCookie();
            result.Success = true;
            return(Json(result));
        }
Ejemplo n.º 4
0
        public QsResult SharedCoverSaveAs(HttpPostedFileBase postedFile, bool isReOriginal = false)
        {
            var result   = new QsResult();
            var fileType = Utilities.GetFileTypeName(postedFile.FileName);
            var fileSize = postedFile.ContentLength;
            var fileName =
                postedFile.FileName.Substring(postedFile.FileName.LastIndexOf(@"\", StringComparison.Ordinal) + 1);
            var newFileName = Utilities.GetRamCodeOnDate() + "." + fileType;

            if (isReOriginal)
            {
                //如果 isReOriginal为True,那就使用原始名字
                newFileName = Utilities.GetFileNameWithoutType(fileName) + "." + fileType;
            }
            if (!CheckFileExt(fileType))
            {
                result.Success = false;
                result.Message = @"不允许上传的文件类型";
                return(result);
            }
            if (!IsImage(fileType))
            {
                result.Success = false;
                result.Message = @"检测到上传的是非图片文件";
                return(result);
            }
            if (!CheckFileSize(fileSize))
            {
                result.Success = false;
                result.Message = @"上传的图片大小超出限制的 " + _siteConfig.AttachImgSize;
                return(result);
            }

            var dirPath = GetUpLoadPath();

            //存储至物理路径
            var toFileFullPath = Utilities.GetMapPath(dirPath);

            if (!Directory.Exists(toFileFullPath))
            {
                Directory.CreateDirectory(toFileFullPath);
            }
            postedFile.SaveAs(toFileFullPath + newFileName);
            if (_siteConfig.AttachImgMaxHeight > 0 || _siteConfig.AttachImgMaxWidth > 0)
            {
                Thumbnail.MakeThumbnailImage(toFileFullPath + newFileName, toFileFullPath + newFileName, _siteConfig.AttachImgMaxWidth, _siteConfig.AttachImgMaxHeight);
            }
            var serverFileName = dirPath + newFileName;

            result.Message = serverFileName;
            return(result);
        }
        public ActionResult Delete(Int64 id)
        {
            var result = new QsResult();
            var model  = _suggestionService.GetSuggestionById(id);

            if (model == null)
            {
                result.Success = false;
                result.Message = @"找不到对象";
                return(Json(result));
            }
            _suggestionService.DeleteSuggestion(id);
            return(Json(result));
        }
Ejemplo n.º 6
0
        public ActionResult Delete(int id)
        {
            var result = new QsResult();
            var model  = _tagService.GetTagById(id);

            if (model == null)
            {
                result.Success = false;
                result.Message = @"找不到对象";
                return(Json(result));
            }
            _tagService.DeleteTag(id);
            return(Json(result));
        }
        public ActionResult Delete(Int64 id)
        {
            var result = new QsResult();
            var model  = _recentService.GetRecentActivityById(id);

            if (model == null)
            {
                result.Success = false;
                result.Message = @"找不到对象";
                return(Json(result));
            }
            _recentService.DeleteRecentActivity(id);
            return(Json(result));
        }
Ejemplo n.º 8
0
        public ActionResult NewsFormPartial(NewsCommentDto model)
        {
            var result = new QsResult();

            if (!Request.IsAjaxRequest())
            {
                return(new EmptyResult());
            }
            model.CreateTime = DateTime.Now;
            model.UniqueKey  = Utilities.GetRamCodeOnDate();
            if (System.Web.HttpContext.Current.Request.IsAuthenticated)
            {
                var curUser = CustomAuthorizeAttribute.GetUser();
                if (curUser.UserId == model.IsMember)
                {
                    if (ModelState.IsValid)
                    {
                        //result.Success = true;
                        //result.Message = @"用户登陆状态下验证成功";
                        _commentService.AddNewsComment(model);
                        var newModel = _commentService.GetNewestCommentInNewsWithFilter(model.UniqueKey);
                        return(PartialView("_SegmentPartial", newModel));
                    }
                    result.Success = false;
                    result.Message = @"用户登陆状态下验证失败~~";
                    return(Json(result));
                }
                result.Success = false;
                result.Message = @"用户的编号在客户端被修改,导致内容不一致";
                return(Json(result));
            }
            if (ModelState.IsValid)
            {
                //result.Success = true;
                //result.Message = @"游客状态下验证成功";
                //return Json(result);
                if (String.IsNullOrEmpty(model.NickName))
                {
                    model.NickName = @"[匿名用户]";
                }
                _commentService.AddNewsComment(model);
                var newModel = _commentService.GetNewestCommentInNewsWithFilter(model.UniqueKey);
                return(PartialView("_SegmentPartial", newModel));
            }
            result.Success = false;
            result.Message = @"游客状态下验证失败";
            return(Json(result));
        }
Ejemplo n.º 9
0
        public QsResult DeleteUser(int id)
        {
            var result = new QsResult {
                Success = false
            };
            var currentUser = _userRepository.Get(id);

            if (currentUser == null)
            {
                result.Message = @"找不到对象";
                return(result);
            }
            _userRepository.Remove(currentUser);
            _userRepository.UnitOfWork.Commit();
            result.Success = true;
            return(result);
        }
Ejemplo n.º 10
0
        public ActionResult SuggestionFormPartial(SuggestionDto model)
        {
            if (!Request.IsAjaxRequest())
            {
                return(new EmptyResult());
            }
            var result = new QsResult();

            if (ModelState.IsValid)
            {
                _suggestionService.AddSuggestion(model);
                result.Success = true;
                return(Json(result));
            }
            result.Success = false;
            result.Message = @"回传成功,验证失败";
            return(Json(result));
        }
Ejemplo n.º 11
0
        public QsResult CheckUserInLogin(string nameOrNumber, string password, bool isAdmin = false)
        {
            var result = new QsResult {
                Success = false
            };
            User model;

            if (isAdmin)
            {
                model =
                    _userRepository.FirstOrDefault(
                        user =>
                        user.UserName.Equals(nameOrNumber) &&
                        (user.Roles.Equals("Admin") || user.Roles.Equals("Editor")));
            }
            else
            {
                model = _userRepository.FirstOrDefault(user => user.UserName.Equals(nameOrNumber));
            }
            //后台的话就不允许使用学号登录
            if (!isAdmin && model == null && nameOrNumber.All(Char.IsNumber))
            {//如果用户不存在且用户名都是数字,则判断输入的是否为学号,根据学号找其数据
                model = _userRepository.FirstOrDefault(user => user.StuNumber.Equals(nameOrNumber));

                if (model == null)
                {
                    result.Message = @"该用户不存在";
                    return(result);
                }
            }
            if (model == null)
            {
                result.Message = @"该用户不存在";
                return(result);
            }
            if (model.Password.Equals(password))
            {
                result.Success = true;
                result.Message = model.UserId.ToString(CultureInfo.InvariantCulture);
                return(result);
            }
            result.Message = @"密码输入错误";
            return(result);
        }
Ejemplo n.º 12
0
        public ActionResult ResetPassword(int id)
        {
            var result = new QsResult();

            if (Request.IsAjaxRequest())
            {
                var model = _userService.GetUserById(id);
                if (model == null)
                {
                    result.Success = false;
                    result.Message = @"找不到对象";
                    return(Json(result));
                }
                model.Password = Utilities.MD5(model.StuNumber);
                _userService.UpdateUserInformation(model);
                return(Json(result));
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult ChangeStatus(Int64 id)
        {
            var result = new QsResult();
            var model  = _recentService.GetRecentActivityById(id);

            if (model == null)
            {
                result.Success = false;
                result.Message = @"找不到对象";
                return(Json(result));
            }
            if (!model.Status)
            {
                result.Success = false;
                result.Message = @"该活动已经处于过去状态,修改状态失败";
                return(Json(result));
            }
            model.Status = false;
            _recentService.ChangeRecentActivityDescription(id, model);
            return(Json(result));
        }
Ejemplo n.º 14
0
        public ActionResult ChangeImage()
        {
            var result = new QsResult {
                Success = false
            };
            var user = _userService.GetUserById(GetUserInCookie().UserId);
            var file = Request.Files["ImageInput"];

            if (file != null && file.ContentLength > 0)
            {
                var fileName      = file.FileName;
                var fileExtension = fileName.Substring(fileName.IndexOf('.'), fileName.Length - fileName.IndexOf('.'));
                if (!String.IsNullOrWhiteSpace(user.PhotoUrl))
                {
                    if (!user.PhotoUrl.Equals("no-image.png"))
                    {
                        var deleteFileName = Server.MapPath("~/Profiles/HeadImage/" + user.PhotoUrl);
                        System.IO.File.Delete(deleteFileName);
                    }
                    //物理存储头像
                    result.Message = user.PhotoUrl = user.StuNumber + "_" + DateTime.Now.Ticks + fileExtension;
                    file.SaveAs(System.IO.Path.Combine(Server.MapPath("~/Profiles/HeadImage"), user.PhotoUrl));
                    result.Message = "/Profiles/HeadImage/" + result.Message;
                    //修改用户信息

                    _userService.UpdateUserInformation(user);
                    //更新Cookie中用户的信息
                    SafeOutAuthCookie();
                    user = _userService.GetUserById(user.UserId);
                    SetAuthCookie(QsMapper.CreateMap <UserDto, UserSafetyModel>(user));
                    //更新完成
                    result.Success = true;
                    return(Json(result));
                }
            }
            result.Message = @"请选择想要上传的头像";
            ModelState.AddModelError("PhotoUrl", @"请选择想要上传的头像");
            return(Json(result));
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 上传心理委员提交的心理反馈表
        /// </summary>
        /// <param name="postedFile">上传的文件</param>
        /// <param name="latter">上传用户的学号</param>
        /// <returns>返回原始的文件名,未包含学号</returns>
        public QsResult DocumentSaveAs(HttpPostedFileBase postedFile, string latter)
        {
            var result = new QsResult {
                Success = false
            };
            var fileType = Utilities.GetFileTypeName(postedFile.FileName);
            var fileSize = postedFile.ContentLength;
            var fileName =
                postedFile.FileName.Substring(postedFile.FileName.LastIndexOf(@"\", StringComparison.Ordinal) + 1);
            var newFileName = Utilities.GetFileNameWithoutType(fileName) + "_" + latter + "." + fileType;

            if (!CheckFileExt(fileType))
            {
                result.Message = @"不允许上传的文件类型";
                return(result);
            }
            if (!CheckFileSize(fileSize))
            {
                result.Message = @"上传的文件大小超出限制的 " + _siteConfig.AttachImgSize;
                return(result);
            }
            var dirPath = GetUpLoadPath();
            //存储至物理路径
            var toFileFullPath = Utilities.GetMapPath(dirPath);

            if (!Directory.Exists(toFileFullPath))
            {
                Directory.CreateDirectory(toFileFullPath);
            }
            postedFile.SaveAs(toFileFullPath + newFileName);
            var serverFileName = dirPath + newFileName;

            result.Success = true;
            result.Message = serverFileName;
            return(result);
        }
                /// <summary>
                /// Creates an operation call from the conditional control API for Result literal comparisons.
                /// </summary>
                private TypedExpression CreateApplyIfExpression(QsResult result, TypedExpression conditionExpression, QsScope conditionScope, QsScope defaultScope)
                {
                    var(isConditionValid, conditionId, conditionArgs) = this.IsValidScope(conditionScope);
                    var(isDefaultValid, defaultId, defaultArgs)       = this.IsValidScope(defaultScope);

                    BuiltIn         controlOpInfo;
                    TypedExpression controlArgs;
                    ImmutableArray <ResolvedType> targetArgsTypes;

                    var props = ImmutableHashSet <OpProperty> .Empty;

                    if (isConditionValid)
                    {
                        // Get characteristic properties from global id
                        if (conditionId.ResolvedType.Resolution is ResolvedTypeKind.Operation op)
                        {
                            props = op.Item2.Characteristics.GetProperties();
                            if (defaultId != null && defaultId.ResolvedType.Resolution is ResolvedTypeKind.Operation defaultOp)
                            {
                                props = props.Intersect(defaultOp.Item2.Characteristics.GetProperties());
                            }
                        }

                        (bool adj, bool ctl) = (props.Contains(OpProperty.Adjointable), props.Contains(OpProperty.Controllable));

                        if (isDefaultValid)
                        {
                            if (adj && ctl)
                            {
                                controlOpInfo = BuiltIn.ApplyIfElseRCA;
                            }
                            else if (adj)
                            {
                                controlOpInfo = BuiltIn.ApplyIfElseRA;
                            }
                            else if (ctl)
                            {
                                controlOpInfo = BuiltIn.ApplyIfElseRC;
                            }
                            else
                            {
                                controlOpInfo = BuiltIn.ApplyIfElseR;
                            }

                            (TypedExpression, ImmutableArray <ResolvedType>) GetArgs(TypedExpression zeroId, TypedExpression zeroArgs, TypedExpression oneId, TypedExpression oneArgs) =>
                            (this.CreateValueTupleExpression(
                                 conditionExpression,
                                 this.CreateValueTupleExpression(zeroId, zeroArgs),
                                 this.CreateValueTupleExpression(oneId, oneArgs)),

                             ImmutableArray.Create(zeroArgs.ResolvedType, oneArgs.ResolvedType));

                            (controlArgs, targetArgsTypes) = (result == QsResult.Zero)
                                ? GetArgs(conditionId, conditionArgs, defaultId, defaultArgs)
                                : GetArgs(defaultId, defaultArgs, conditionId, conditionArgs);
                        }
                        else if (defaultScope == null)
                        {
                            if (adj && ctl)
                            {
                                controlOpInfo = (result == QsResult.Zero)
                                ? BuiltIn.ApplyIfZeroCA
                                : BuiltIn.ApplyIfOneCA;
                            }
                            else if (adj)
                            {
                                controlOpInfo = (result == QsResult.Zero)
                                ? BuiltIn.ApplyIfZeroA
                                : BuiltIn.ApplyIfOneA;
                            }
                            else if (ctl)
                            {
                                controlOpInfo = (result == QsResult.Zero)
                                ? BuiltIn.ApplyIfZeroC
                                : BuiltIn.ApplyIfOneC;
                            }
                            else
                            {
                                controlOpInfo = (result == QsResult.Zero)
                                ? BuiltIn.ApplyIfZero
                                : BuiltIn.ApplyIfOne;
                            }

                            controlArgs = this.CreateValueTupleExpression(
                                conditionExpression,
                                this.CreateValueTupleExpression(conditionId, conditionArgs));

                            targetArgsTypes = ImmutableArray.Create(conditionArgs.ResolvedType);
                        }
                        else
                        {
                            return(null); // ToDo: Diagnostic message - default block exists, but is not valid
                        }
                    }
                    else
                    {
                        return(null); // ToDo: Diagnostic message - condition block not valid
                    }

                    return(this.CreateControlCall(controlOpInfo, props, controlArgs, targetArgsTypes));
                }