Exemple #1
0
        public IHttpActionResult Delete(int id)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                if (!DataProvider.UserDao.ApiIsExists(id))
                {
                    return(NotFound());
                }

                var userInfo = DataProvider.UserDao.ApiDelete(id);

                return(Ok(new OResponse(userInfo)));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #2
0
        /// <summary>
        /// 短信验证码是否正确
        /// </summary>
        /// <param name="phone">手机号码</param>
        /// <param name="code">短信验证码</param>
        /// <returns></returns>
        public static bool CheckAuthCode(String phone, String code)
        {
            return(true);

            var nonce   = OSecurity.GetRandomString(16);
            var curTime = OSecurity.DateTimeToTimeStamp(DateTime.Now).ToString();
            var sha1    = OSecurity.SHA1(appSecret + nonce + curTime);
            var errcode = ORequest.RequestPost("https://api.netease.im/sms/verifycode.action",
                                               "&phone=" + phone,
                                               "code",
                                               new WebHeaderCollection
            {
                { "AppKey", appKey },
                { "Nonce", nonce },
                { "CurTime", curTime },
                { "CheckSum", sha1 }
            });


            if (errcode == "200")
            {
                return(true);
            }
            return(false);
        }
Exemple #3
0
        public IHttpActionResult CreateLog(int id, [FromBody] UserLogInfo logInfo)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                if (!DataProvider.UserDao.ApiIsExists(id))
                {
                    return(NotFound());
                }

                var userName = DataProvider.UserDao.GetUserName(id);

                var retval = DataProvider.UserLogDao.ApiInsert(userName, logInfo);

                return(Ok(new OResponse(retval)));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #4
0
        public IHttpActionResult Create([FromBody] UserInfoCreateUpdate userInfo)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                string errorMessage;
                var    retval = DataProvider.UserDao.ApiInsert(userInfo, PageUtils.GetIpAddress(), out errorMessage);
                if (retval == null)
                {
                    return(BadRequest(errorMessage));
                }

                return(Ok(new OResponse(retval)));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #5
0
        public IHttpActionResult ResetPassword([FromBody] ActionsResetPasswordBody body)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                string userName;
                string errorMessage;
                if (!DataProvider.UserDao.Validate(body.Account, body.Password, true, out userName, out errorMessage))
                {
                    return(BadRequest(errorMessage));
                }

                if (!DataProvider.UserDao.ChangePassword(userName, body.NewPassword, out errorMessage))
                {
                    return(BadRequest(errorMessage));
                }

                var userInfo = DataProvider.UserDao.GetUserInfoByUserName(userName);

                return(Ok(new OResponse(userInfo)));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #6
0
        public HttpResponseMessage UpdateUser(int id, [FromBody] UserInfo userInfo)
        {
            try
            {
                var oRequest = new ORequest();

                if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Unauthorized"));
                }

                if (userInfo == null)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Could not read user from body"));
                }

                if (!DataProvider.UserDao.ApiIsExists(id))
                {
                    return(Request.CreateResponse(HttpStatusCode.NoContent, "User is not found"));
                }

                DataProvider.UserDao.ApiUpdateUser(id, userInfo);

                var oResponse = new OResponse(userInfo);

                return(Request.CreateResponse(oResponse));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Exemple #7
0
        public IHttpActionResult Update(int id, [FromBody] UserInfoCreateUpdate userInfo)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                if (userInfo == null)
                {
                    return(BadRequest("Could not read user from body"));
                }

                if (!DataProvider.UserDao.ApiIsExists(id))
                {
                    return(NotFound());
                }

                string errorMessage;
                var    retval = DataProvider.UserDao.ApiUpdate(id, userInfo, out errorMessage);
                if (retval == null)
                {
                    return(BadRequest(errorMessage));
                }

                return(Ok(new OResponse(retval)));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #8
0
        public IHttpActionResult Register([FromBody] UserInfo userInfo)
        {
            try
            {
                var oRequest = new ORequest();

                if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers))
                {
                    return(Unauthorized());
                }

                string errorMessage;
                if (!DataProvider.UserDao.ApiInsert(userInfo, PageUtils.GetIpAddress(), out errorMessage))
                {
                    return(BadRequest(errorMessage));
                }

                return(Ok(new OResponse(userInfo)));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #9
0
        public IHttpActionResult GetLogs(int id)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                var userName = DataProvider.UserDao.GetUserName(id);
                if (string.IsNullOrEmpty(userName))
                {
                    return(NotFound());
                }

                var logs = DataProvider.UserLogDao.ApiGetLogs(userName, oRequest.Skip, oRequest.Top);

                return(Ok(new OResponse(oRequest, logs)
                {
                    Count = DataProvider.UserDao.ApiGetCount()
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #10
0
        public IHttpActionResult UploadAvatar(int id)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                if (!DataProvider.UserDao.ApiIsExists(id))
                {
                    return(NotFound());
                }

                var userInfo = DataProvider.UserDao.ApiGetUser(id);

                foreach (string name in HttpContext.Current.Request.Files)
                {
                    var postFile = HttpContext.Current.Request.Files[name];

                    if (postFile == null)
                    {
                        return(BadRequest("Could not read image from body"));
                    }

                    var directoryPath = PathUtils.GetUserUploadDirectoryPath(userInfo.UserName);
                    var fileName      = PathUtils.GetUserUploadFileName(postFile.FileName);
                    if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName)))
                    {
                        return(BadRequest("image file extension is not correct"));
                    }

                    postFile.SaveAs(PathUtils.Combine(directoryPath, fileName));

                    userInfo.AvatarUrl = PageUtils.AddProtocolToUrl(PageUtils.GetUserFilesUrl(userInfo.UserName, fileName));

                    string errorMessage;
                    var    user = DataProvider.UserDao.ApiUpdate(id, new UserInfoCreateUpdate
                    {
                        AvatarUrl = userInfo.AvatarUrl
                    }, out errorMessage);

                    if (user == null)
                    {
                        return(BadRequest(errorMessage));
                    }
                }

                var oResponse = new OResponse(userInfo);

                return(Ok(oResponse));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #11
0
        public IHttpActionResult GetChannelContents(int siteId, int channelId)
        {
            try
            {
                var request = new ORequest(AccessTokenManager.ScopeContents);
                if (request.IsApiAuthenticated && !request.IsApiAuthorized)
                {
                    return(Unauthorized());
                }
                if (!request.IsAdminLoggin)
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                if (!request.AdminPermissions.HasChannelPermissions(siteId, channelId,
                                                                    ConfigManager.ChannelPermissions.ContentView))
                {
                    return(Unauthorized());
                }

                var tableName = ChannelManager.GetTableName(siteInfo, channelInfo);

                int count;
                var contentIdList = DataProvider.ContentDao.ApiGetContentIdListByChannelId(tableName, siteId, channelId, request.Top, request.Skip, request.Like, request.OrderBy, request.QueryString, out count);
                var value         = new List <Dictionary <string, object> >();
                foreach (var contentId in contentIdList)
                {
                    var contentInfo = DataProvider.ContentDao.GetContentInfo(tableName, contentId);
                    if (contentInfo != null)
                    {
                        value.Add(contentInfo.ToDictionary());
                    }
                }

                return(Ok(new OResponse(request, value)
                {
                    Count = count
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #12
0
        /// <summary>
        /// 只能由RefreshAccessToken()调用
        /// </summary>
        /// <returns></returns>
        private static string RefreshJsapiTicket()
        {
            string url        = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
            var    jsonObject = ORequest.RequestGet(url, new System.Collections.Generic.Dictionary <string, string>
            {
                { "access_token", GetAccessToken() },
                { "type", "jsapi" }
            });

            // 获取ticket
            jsapi_ticket = jsonObject["ticket"].ToString();
            return(jsapi_ticket);
        }
Exemple #13
0
        /// <summary>
        /// 添加客服
        /// </summary>
        /// <param name="account">客服账号名</param>
        /// <param name="nick">客服昵称</param>
        /// <returns></returns>
        public static bool AddKF(string account, string nick, string pass)
        {
            string postData = "{\"kf_account\":\"" + account + "@" + gh + "\",\"nickname\":\"" + nick + "\",\"password\":\"" + pass + "\"}";
            var    errcode  = ORequest.RequestPost("https://api.weixin.qq.com/customservice/kfaccount/add?access_token=" + GetAccessToken(),
                                                   postData,
                                                   "errcode");

            if (errcode == "0")
            {
                return(true);
            }

            return(false);
        }
Exemple #14
0
        /// <summary>
        /// 发送客服消息
        /// </summary>
        /// <param name="OPENID"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static bool SendMessage(string OPENID, string content)
        {
            var jsonStr = "{\"touser\":\"" + OPENID + "\",\"msgtype\":\"text\",\"text\":{\"content\":\"" + content + "\"}}";
            var errcode = ORequest.RequestPost("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + GetAccessToken(),
                                               jsonStr,
                                               "errcode");

            if (errcode == "0")
            {
                return(true);
            }

            return(false);
        }
Exemple #15
0
        /// <summary>
        /// 刷新access_token
        /// </summary>
        /// <returns></returns>
        public static string RefreshAccessToken()
        {
            string url        = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
            var    jsonObject = ORequest.RequestGet(url, new System.Collections.Generic.Dictionary <string, string>
            {
                { "appid", appID },
                { "secret", appsecret }
            });

            // 获取access_token,计算过期时间
            access_token = jsonObject["access_token"].ToString();
            timeStamp    = OSecurity.DateTimeToTimeStamp(DateTime.Now) +
                           Convert.ToInt64(jsonObject["expires_in"].ToString());
            RefreshJsapiTicket();
            return(access_token);
        }
Exemple #16
0
        public IHttpActionResult GetLogs(int id)
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                var userName = DataProvider.UserDao.GetUserName(id);
                if (string.IsNullOrEmpty(userName))
                {
                    return(NotFound());
                }

                var logs      = DataProvider.UserLogDao.ApiGetLogs(userName, oRequest.Skip, oRequest.Top);
                var oResponse = new OResponse(logs);

                var count = DataProvider.UserDao.ApiGetCount();
                if (oRequest.Count)
                {
                    oResponse.Count = count;
                }

                if (oRequest.Top + oRequest.Skip < count)
                {
                    oResponse.Next =
                        PageUtils.AddQueryString(
                            PageUtils.RemoveQueryString(oRequest.RawUrl, new List <string> {
                        "top", "skip"
                    }),
                            new NameValueCollection
                    {
                        { "top", oRequest.Top.ToString() },
                        { "skip", (oRequest.Top + oRequest.Skip).ToString() }
                    });
                }

                return(Ok(oResponse));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #17
0
        /// <summary>
        /// 创建微信公众号的菜单
        /// </summary>
        /// <returns></returns>
        public static bool CreateMenu()
        {
            var menuJson = "{\"button\":[{\"type\":\"view\",\"name\":\"我的\"," +
                           "\"url\":\"http://debug.ocrosoft.com/UserLogin.aspx\"}," +
                           "{\"type\":\"view\",\"name\":\"当前活动\",\"url\":\"http://debug.ocrosoft.com/Activity.aspx\"}]}";
            var errcode = ORequest.RequestPost(
                "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + GetAccessToken(),
                menuJson,
                "errcode");

            if (errcode == "0")
            {
                return(true);
            }

            return(false);
        }
Exemple #18
0
        public IHttpActionResult UploadAvatar(HttpPostedFileBase uploadedFile)
        {
            try
            {
                var oRequest = new ORequest();

                if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers))
                {
                    return(Unauthorized());
                }

                var users     = DataProvider.UserDao.ApiGetUsers(oRequest.Skip, oRequest.Top);
                var oResponse = new OResponse(users);

                HttpResponseMessage result = null;
                var httpRequest            = HttpContext.Current.Request;

                if (httpRequest.Files.Count > 0)
                {
                    var docfiles = new List <string>();

                    foreach (string file in httpRequest.Files)
                    {
                        var postedFile = httpRequest.Files[file];
                        var filePath   = HttpContext.Current.Server.MapPath("~/" + postedFile.FileName);
                        postedFile.SaveAs(filePath);
                        docfiles.Add(filePath);
                    }

                    result = Request.CreateResponse(HttpStatusCode.Created, docfiles);
                }
                else
                {
                    result = Request.CreateResponse(HttpStatusCode.BadRequest);
                }

                return(ResponseMessage(result));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult List()
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeAdministrators);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                var administrators = DataProvider.AdministratorDao.ApiGetAdministrators(oRequest.Skip, oRequest.Top);
                var oResponse      = new OResponse(administrators);

                var count = DataProvider.AdministratorDao.ApiGetCount();
                if (oRequest.Count)
                {
                    oResponse.Count = count;
                }

                if (oRequest.Top + oRequest.Skip < count)
                {
                    oResponse.Next =
                        PageUtils.AddQueryString(
                            PageUtils.RemoveQueryString(oRequest.RawUrl, new List <string> {
                        "top", "skip"
                    }),
                            new NameValueCollection
                    {
                        { "top", oRequest.Top.ToString() },
                        { "skip", (oRequest.Top + oRequest.Skip).ToString() }
                    });
                }

                return(Ok(oResponse));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #20
0
        public IHttpActionResult GetUser(int id)
        {
            try
            {
                var oRequest = new ORequest();

                if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers))
                {
                    return(Unauthorized());
                }

                var user      = DataProvider.UserDao.ApiGetUser(id);
                var oResponse = new OResponse(user);

                return(Ok(oResponse));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Exemple #21
0
        public IHttpActionResult List()
        {
            try
            {
                var oRequest = new ORequest(AccessTokenManager.ScopeUsers);
                if (!oRequest.IsApiAuthorized)
                {
                    return(Unauthorized());
                }

                var users = DataProvider.UserDao.ApiGetUsers(oRequest.Skip, oRequest.Top);
                var count = DataProvider.UserDao.ApiGetCount();

                return(Ok(new OResponse(oRequest, users)
                {
                    Count = count
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }