diff --git a/client/Application.js b/client/Application.js
index b207ccc5..72855d8a 100644
--- a/client/Application.js
+++ b/client/Application.js
@@ -1,19 +1,26 @@
import React, { Component } from 'react'
import { connect } from 'react-redux'
import PropTypes from 'prop-types'
-import { Route, HashRouter, Redirect, Switch } from 'react-router-dom'
+import { Route, HashRouter } from 'react-router-dom'
import { Home, ProjectGroups, Interface, News, AddInterface } from './containers/index'
import User from './containers/User/User.js'
import Header from './components/Header/Header'
import { checkLoginState } from './actions/login'
+import { requireAuthentication } from './components/AuthenticatedComponent';
const LOADING_STATUS = 0;
-const GUEST_STATUS = 1;
-// const MEMBER_STATUS = 2;
-
-
-class App extends Component {
+@connect(
+ state => {
+ return{
+ loginState:state.login.loginState
+ }
+ },
+ {
+ checkLoginState
+ }
+)
+export default class App extends Component {
constructor(props) {
super(props);
this.state = {
@@ -24,59 +31,32 @@ class App extends Component {
checkLoginState:PropTypes.func,
loginState:PropTypes.number
}
+
+ componentDidMount() {
+ this.props.checkLoginState();
+ }
route = (status) => {
let r;
if (status === LOADING_STATUS) {
return loading...
- } else if (status === GUEST_STATUS) {
- r = (
-
-
-
-
-
-
-
-
-
- )
} else {
r = (
-
-
-
-
-
+
+
+
+
+
)
}
return r
-
}
-
- componentDidMount() {
- this.props.checkLoginState();
- }
-
render() {
- return this.route(this.props.loginState)
+ return this.route(this.props.loginState);
}
}
-
-export default connect(
- state => {
- return{
- loginState:state.login.loginState
- }
- },
- {
- checkLoginState
- }
-)(App)
diff --git a/client/actions/news.js b/client/actions/news.js
index 5f2aef91..24a1fcb6 100644
--- a/client/actions/news.js
+++ b/client/actions/news.js
@@ -3,25 +3,28 @@ import {
FETCH_MORE_NEWS
} from '../constants/action-types.js';
-export function fetchNewsData (logId) {
- const data = {
- newsList:[
- { key: 1,title: '日志标题', username: 'John Brown', content: '您好!亲爱的用户:您已成功申请接口:实时空气质量数据查询,请于两个月内进行应用验证,逾期接口将不能正常使用。如果您在使用的过程中遇到任何问题,欢迎前往交流社区反馈意见,谢谢!',time: '2014-12-01' },
- { key: 2,title: '日志标题', username: 'John Brown', content: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',time: '2014-12-01' },
- { key: 3,title: '日志标题', username: 'John Brown', content: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',time: '2014-12-01' }
- ],
- totalPage: 34
- };
- console.log(logId);
+import axios from 'axios';
+import variable from '../constants/variable';
+
+export function fetchNewsData (uid,page,limit) {
+ // const data = {
+ // newsList:[
+ // { key: 1,title: '日志标题', username: 'John Brown', content: '您好!亲爱的用户:您已成功申请接口:实时空气质量数据查询,请于两个月内进行应用验证,逾期接口将不能正常使用。如果您在使用的过程中遇到任何问题,欢迎前往交流社区反馈意见,谢谢!',time: '2014-12-01' },
+ // { key: 2,title: '日志标题', username: 'John Brown', content: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',time: '2014-12-01' },
+ // { key: 3,title: '日志标题', username: 'John Brown', content: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',time: '2014-12-01' }
+ // ],
+ // totalPage: 34
+ // };
+
+ const param = {
+ uid: uid,
+ page: page,
+ limit: variable.PAGE_LIMIT?variable.PAGE_LIMIT:limit
+ }
+ console.log(param);
return {
type: FETCH_NEWS_DATA,
- payload: new Promise(function(reslove,reject){
- if(data){
- reslove(data);
- }else{
- reject("chucuole");
- }
- })
+ payload: axios.get('/log/list',param)
};
}
diff --git a/client/components/AuthenticatedComponent.js b/client/components/AuthenticatedComponent.js
new file mode 100644
index 00000000..2932c6ca
--- /dev/null
+++ b/client/components/AuthenticatedComponent.js
@@ -0,0 +1,55 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types'
+import { changeMenuItem } from '../actions/menu'
+
+
+export function requireAuthentication(Component) {
+ class AuthenticatedComponent extends React.Component {
+ constructor(props){
+ super(props);
+ }
+ static propTypes ={
+ isAuthenticated : PropTypes.bool,
+ location: PropTypes.object,
+ dispatch: PropTypes.func,
+ history: PropTypes.object,
+ changeMenuItem:PropTypes.func
+ }
+ componentWillMount() {
+ this.checkAuth();
+ }
+ componentWillReceiveProps() {
+ this.checkAuth();
+ }
+ checkAuth() {
+ if( !this.props.isAuthenticated ){
+ this.props.history.push('/');
+ this.props.changeMenuItem('/');
+ }
+ }
+ render() {
+ return (
+
+ {this.props.isAuthenticated
+ ?
+ : null
+ }
+
+ )
+
+ }
+ }
+ return connect(
+ (state) => {
+ return{
+ isAuthenticated: state.login.isLogin
+ }
+ },
+ {
+ changeMenuItem
+ }
+ )(AuthenticatedComponent);
+}
+
+
diff --git a/client/components/Footer/Footer.scss b/client/components/Footer/Footer.scss
index fb523204..d6a1ff70 100644
--- a/client/components/Footer/Footer.scss
+++ b/client/components/Footer/Footer.scss
@@ -2,7 +2,7 @@
.footer{
// max-width: 12rem;
- margin: 20px auto;
+ margin: 0px auto;
clear: both;
font-size: 12px;
background: #000c15;
diff --git a/client/components/Header/Header.js b/client/components/Header/Header.js
index fa252fc5..91816dde 100644
--- a/client/components/Header/Header.js
+++ b/client/components/Header/Header.js
@@ -85,16 +85,9 @@ class HeaderCom extends Component {
}
linkTo = (e) =>{
this.props.changeMenuItem(e.key);
- // this.props.curKey = e.key;
- // this.setState({
- // current : e.key
- // })
}
relieveLink = () => {
this.props.changeMenuItem("");
- // this.setState({
- // current : ""
- // })
}
logout = (e) => {
e.preventDefault();
@@ -129,9 +122,10 @@ class HeaderCom extends Component {
}
render () {
const { login, user, msg, uid, curKey } = this.props;
+ console.log(curKey);
return (
-
+
diff --git a/client/containers/News/News.js b/client/containers/News/News.js
index 395cfbf3..df5bb797 100644
--- a/client/containers/News/News.js
+++ b/client/containers/News/News.js
@@ -10,6 +10,7 @@ import { fetchNewsData } from '../../actions/news.js'
@connect(
state => {
return {
+ uid: state.user.curUid,
newsData: state.news.newsData?state.news.newsData:[]
}
},
@@ -27,7 +28,8 @@ class News extends Component {
}
static propTypes = {
newsData: PropTypes.object,
- fetchNewsData: PropTypes.func
+ fetchNewsData: PropTypes.func,
+ uid: PropTypes.string
}
setLoading(bool){
this.setState({
@@ -35,7 +37,10 @@ class News extends Component {
})
}
componentWillMount(){
- this.props.fetchNewsData()
+ console.log(this.props.uid);
+ this.props.fetchNewsData(1,1,10).then(function(data){
+ console.log(data);
+ })
}
render () {
const data = this.props.newsData
diff --git a/client/containers/News/NewsList/NewsList.js b/client/containers/News/NewsList/NewsList.js
index cd98bb8c..7123ac3c 100644
--- a/client/containers/News/NewsList/NewsList.js
+++ b/client/containers/News/NewsList/NewsList.js
@@ -18,7 +18,9 @@ const logList = [{
}];
@connect(
state => {
+ // console.log(state);
return {
+ uid: state.user.curUid,
newsData: state.news.newsData
}
},
@@ -31,7 +33,8 @@ class NewsList extends Component {
static propTypes = {
fetchNewsData: PropTypes.func,
- setLoading: PropTypes.func
+ setLoading: PropTypes.func,
+ uid: PropTypes.string
}
constructor(props) {
@@ -48,7 +51,8 @@ class NewsList extends Component {
})
const that = this;
this.props.setLoading(true);
- this.props.fetchNewsData(+e.key).then(function(){
+ this.props.fetchNewsData(+this.props.uid,0,5).then(function(data){
+ console.log(data.data);
that.props.setLoading(false);
})
}
diff --git a/client/containers/News/NewsTimeline/NewsTimeline.js b/client/containers/News/NewsTimeline/NewsTimeline.js
index 953bc55e..dcb8f255 100644
--- a/client/containers/News/NewsTimeline/NewsTimeline.js
+++ b/client/containers/News/NewsTimeline/NewsTimeline.js
@@ -57,7 +57,7 @@ class NewsTimeline extends Component {
- 清空消息
+ 项目日志
{
diff --git a/client/reducer/news/news.js b/client/reducer/news/news.js
index 3762f200..0fdf7391 100644
--- a/client/reducer/news/news.js
+++ b/client/reducer/news/news.js
@@ -10,6 +10,7 @@ const initialState = {
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_NEWS_DATA: {
+ // console.log(action.payload);
return {
...state,
newsData: action.payload
diff --git a/server/controllers/interface.js b/server/controllers/interface.js
index cb7c1739..c2211af5 100644
--- a/server/controllers/interface.js
+++ b/server/controllers/interface.js
@@ -48,6 +48,10 @@ class interfaceController extends baseController{
return ctx.body = yapi.commons.resReturn(null, 400, '接口请求路径不能为空');
}
+ if(!yapi.commons.verifyPath(params.path)){
+ return ctx.body = yapi.commons.resReturn(null, 400, '接口path第一位必须是/,最后一位不能为/')
+ }
+
let checkRepeat = await this.Model.checkRepeat(params.path, params.method);
if(checkRepeat > 0){
return ctx.body = yapi.commons.resReturn(null, 401, '已存在的接口:' + params.path + '[' + params.method + ']');
@@ -162,12 +166,17 @@ class interfaceController extends baseController{
return ctx.body = yapi.commons.resReturn(null, 400, '接口id不能为空');
}
let interfaceData = await this.Model.get(id);
+
+ if(params.path && !yapi.commons.verifyPath(params.path)){
+ return ctx.body = yapi.commons.resReturn(null, 400, '接口path第一位必须是/,最后一位不能为/')
+ }
+
if(params.path && params.path !== interfaceData.path && params.method !== interfaceData.method){
let checkRepeat = await this.Model.checkRepeat(params.path, params.method);
if(checkRepeat > 0){
return ctx.body = yapi.commons.resReturn(null, 401, '已存在的接口:' + params.path + '[' + params.method + ']');
}
- }
+ }
let data = {
up_time: yapi.commons.time()
diff --git a/server/controllers/project.js b/server/controllers/project.js
index 82d11a1f..a9f3a83a 100644
--- a/server/controllers/project.js
+++ b/server/controllers/project.js
@@ -18,20 +18,12 @@ class projectController extends baseController {
if(!basepath) return false;
if(basepath[0] !== '/') basepath = '/' + basepath;
if(basepath[basepath.length -1] === '/') basepath = basepath.substr(0, basepath.length -1)
- if(!this.verifyPath(basepath)){
+ if(yapi.commons.verifyPath(basepath)){
return false;
}
return basepath;
}
- verifyPath(path){
- if(/^[a-zA-Z0-9\-\/_:]+$/.test(path)){
- return true;
- }else{
- return false;
- }
- }
-
verifyDomain(domain){
if(!domain) return false;
if(/^[a-zA-Z0-9\-_\.]+[a-zA-Z]{2,6}$/.test(domain)){
@@ -256,12 +248,11 @@ class projectController extends baseController {
let count = await this.Model.listCount(group_id);
let uids = [];
result.forEach( (item)=> {
- if(uids.indexOf(item.uid) !== -1){
+ if(uids.indexOf(item.uid) === -1){
uids.push(item.uid)
}
} )
-
let _users = {}, users = await yapi.getInst(userModel).findByUids(uids);
users.forEach((item)=> {
_users[item._id] = item;
@@ -271,7 +262,7 @@ class projectController extends baseController {
list: result,
userinfo: _users
})
- }catch(err){
+ }catch(e){
ctx.body = yapi.commons.resReturn(null, 402, e.message)
}
}
diff --git a/server/controllers/user.js b/server/controllers/user.js
index da8109b4..11c35e33 100644
--- a/server/controllers/user.js
+++ b/server/controllers/user.js
@@ -139,6 +139,10 @@ class userController extends baseController {
up_time: yapi.commons.time()
}
user = await userInst.save(data);
+ yapi.commons.sendMail({
+ to: params.email,
+ contents: `亲爱的用户:
您好,感谢使用YApi,系统检测您是第一次用Qsso账号登录YApi服务,您的Email是: ${params.email} ,初始化密码为:${passsalt}
`
+ })
}
this.setLoginCookie(user._id, user.passsalt)
@@ -276,7 +280,7 @@ class userController extends baseController {
});
yapi.commons.sendMail({
to: params.email,
- contents: `欢迎注册,您的账号 ${params.email} 已经注册成功`
+ contents: `亲爱的用户:
您好,感谢使用YApi,您的账号 ${params.email} 已经注册成功
`
})
} catch (e) {
ctx.body = yapi.commons.resReturn(null, 401, e.message);
diff --git a/server/models/log.js b/server/models/log.js
index 1a06e2fd..064efd08 100644
--- a/server/models/log.js
+++ b/server/models/log.js
@@ -18,6 +18,12 @@ class logModel extends baseModel {
}
}
+ /**
+ * @param {String} title log标题
+ * @param {String} content log内容
+ * @param {Enum} type log类型, ['user', 'group', 'interface', 'project', 'other']
+ * @param {Number} uid 用户id
+ */
async save(data) {
let userInst = yapi.getInst(userModel);
let username = await userInst.findById(data.uid);
diff --git a/server/models/user.js b/server/models/user.js
index 1e43e3fb..c15dfff6 100644
--- a/server/models/user.js
+++ b/server/models/user.js
@@ -41,7 +41,7 @@ class userModel extends baseModel{
}
findByUids(uids){
return this.model.find({
- _id: {$in: [107]}
+ _id: {$in: uids}
}).select("_id username email role add_time up_time").exec()
}
listWithPaging(page, limit) {
diff --git a/server/utils/commons.js b/server/utils/commons.js
index 1e2a95ac..361dcd13 100644
--- a/server/utils/commons.js
+++ b/server/utils/commons.js
@@ -134,4 +134,16 @@ exports.filterRes = (list, rules) => {
});
return filteredRes;
})
+}
+
+exports.verifyPath = (path) => {
+ if (/^\/[a-zA-Z0-9\-\/_:]+$/.test(path)) {
+ if (path[path.length - 1] === '/') {
+ return false;
+ } else {
+ return true
+ }
+ } else {
+ return false;
+ }
}
\ No newline at end of file
diff --git a/server_dist/controllers/interface.js b/server_dist/controllers/interface.js
index dd88a5ac..e8151334 100644
--- a/server_dist/controllers/interface.js
+++ b/server_dist/controllers/interface.js
@@ -114,21 +114,29 @@ var interfaceController = function (_baseController) {
return _context.abrupt('return', ctx.body = _yapi2.default.commons.resReturn(null, 400, '接口请求路径不能为空'));
case 8:
- _context.next = 10;
- return this.Model.checkRepeat(params.path, params.method);
+ if (_yapi2.default.commons.verifyPath(params.path)) {
+ _context.next = 10;
+ break;
+ }
+
+ return _context.abrupt('return', ctx.body = _yapi2.default.commons.resReturn(null, 400, '接口path第一位必须是/,最后一位不能为/'));
case 10:
+ _context.next = 12;
+ return this.Model.checkRepeat(params.path, params.method);
+
+ case 12:
checkRepeat = _context.sent;
if (!(checkRepeat > 0)) {
- _context.next = 13;
+ _context.next = 15;
break;
}
return _context.abrupt('return', ctx.body = _yapi2.default.commons.resReturn(null, 401, '已存在的接口:' + params.path + '[' + params.method + ']'));
- case 13:
- _context.prev = 13;
+ case 15:
+ _context.prev = 15;
data = {
project_id: params.project_id,
title: params.title,
@@ -148,28 +156,28 @@ var interfaceController = function (_baseController) {
if (params.req_params_form) data.req_params_form = params.req_params_form;
if (params.req_params_other) data.req_params_other = params.req_params_other;
- _context.next = 19;
+ _context.next = 21;
return this.Model.save(data);
- case 19:
+ case 21:
result = _context.sent;
ctx.body = _yapi2.default.commons.resReturn(result);
- _context.next = 26;
+ _context.next = 28;
break;
- case 23:
- _context.prev = 23;
- _context.t0 = _context['catch'](13);
+ case 25:
+ _context.prev = 25;
+ _context.t0 = _context['catch'](15);
ctx.body = _yapi2.default.commons.resReturn(null, 402, _context.t0.message);
- case 26:
+ case 28:
case 'end':
return _context.stop();
}
}
- }, _callee, this, [[13, 23]]);
+ }, _callee, this, [[15, 25]]);
}));
function add(_x) {
@@ -359,25 +367,33 @@ var interfaceController = function (_baseController) {
case 8:
interfaceData = _context4.sent;
- if (!(params.path && params.path !== interfaceData.path && params.method !== interfaceData.method)) {
- _context4.next = 15;
+ if (!(params.path && !_yapi2.default.commons.verifyPath(params.path))) {
+ _context4.next = 11;
break;
}
- _context4.next = 12;
+ return _context4.abrupt('return', ctx.body = _yapi2.default.commons.resReturn(null, 400, '接口path第一位必须是/,最后一位不能为/'));
+
+ case 11:
+ if (!(params.path && params.path !== interfaceData.path && params.method !== interfaceData.method)) {
+ _context4.next = 17;
+ break;
+ }
+
+ _context4.next = 14;
return this.Model.checkRepeat(params.path, params.method);
- case 12:
+ case 14:
checkRepeat = _context4.sent;
if (!(checkRepeat > 0)) {
- _context4.next = 15;
+ _context4.next = 17;
break;
}
return _context4.abrupt('return', ctx.body = _yapi2.default.commons.resReturn(null, 401, '已存在的接口:' + params.path + '[' + params.method + ']'));
- case 15:
+ case 17:
data = {
up_time: _yapi2.default.commons.time()
};
@@ -396,29 +412,29 @@ var interfaceController = function (_baseController) {
if (params.res_body_type) data.res_body_type = params.res_body_type;
if (params.res_body) data.res_body = params.res_body;
- _context4.prev = 25;
- _context4.next = 28;
+ _context4.prev = 27;
+ _context4.next = 30;
return this.Model.up(id, data);
- case 28:
+ case 30:
result = _context4.sent;
ctx.body = _yapi2.default.commons.resReturn(result);
- _context4.next = 35;
+ _context4.next = 37;
break;
- case 32:
- _context4.prev = 32;
- _context4.t0 = _context4['catch'](25);
+ case 34:
+ _context4.prev = 34;
+ _context4.t0 = _context4['catch'](27);
ctx.body = _yapi2.default.commons.resReturn(null, 402, _context4.t0.message);
- case 35:
+ case 37:
case 'end':
return _context4.stop();
}
}
- }, _callee4, this, [[25, 32]]);
+ }, _callee4, this, [[27, 34]]);
}));
function up(_x4) {
diff --git a/server_dist/controllers/project.js b/server_dist/controllers/project.js
index 9a0ec921..ed4883e5 100644
--- a/server_dist/controllers/project.js
+++ b/server_dist/controllers/project.js
@@ -77,20 +77,11 @@ var projectController = function (_baseController) {
if (!basepath) return false;
if (basepath[0] !== '/') basepath = '/' + basepath;
if (basepath[basepath.length - 1] === '/') basepath = basepath.substr(0, basepath.length - 1);
- if (!this.verifyPath(basepath)) {
+ if (_yapi2.default.commons.verifyPath(basepath)) {
return false;
}
return basepath;
}
- }, {
- key: 'verifyPath',
- value: function verifyPath(path) {
- if (/^[a-zA-Z0-9\-\/_:]+$/.test(path)) {
- return true;
- } else {
- return false;
- }
- }
}, {
key: 'verifyDomain',
value: function verifyDomain(domain) {
@@ -594,11 +585,10 @@ var projectController = function (_baseController) {
uids = [];
result.forEach(function (item) {
- if (uids.indexOf(item.uid) !== -1) {
+ if (uids.indexOf(item.uid) === -1) {
uids.push(item.uid);
}
});
-
_users = {};
_context6.next = 15;
return _yapi2.default.getInst(_user2.default).findByUids(uids);
@@ -621,7 +611,7 @@ var projectController = function (_baseController) {
_context6.prev = 20;
_context6.t0 = _context6['catch'](3);
- ctx.body = _yapi2.default.commons.resReturn(null, 402, e.message);
+ ctx.body = _yapi2.default.commons.resReturn(null, 402, _context6.t0.message);
case 23:
case 'end':
@@ -742,7 +732,7 @@ var projectController = function (_baseController) {
* @param {String} [desc] 项目描述
* @param {Array} [env] 项目环境配置
* @param {String} [env[].name] 环境名称
- * @param {String} [env[].host] 环境域名
+ * @param {String} [env[].domain] 环境域名
* @returns {Object}
* @example ./api/project/up.json
*/
diff --git a/server_dist/controllers/user.js b/server_dist/controllers/user.js
index 4ee29e8c..747fef63 100644
--- a/server_dist/controllers/user.js
+++ b/server_dist/controllers/user.js
@@ -301,7 +301,7 @@ var userController = function (_baseController) {
user = _context4.sent;
if (!(!user || !user._id)) {
- _context4.next = 12;
+ _context4.next = 13;
break;
}
@@ -321,24 +321,29 @@ var userController = function (_baseController) {
case 11:
user = _context4.sent;
- case 12:
+ _yapi2.default.commons.sendMail({
+ to: params.email,
+ contents: '\u4EB2\u7231\u7684\u7528\u6237\uFF1A
\u60A8\u597D\uFF0C\u611F\u8C22\u4F7F\u7528YApi,\u7CFB\u7EDF\u68C0\u6D4B\u60A8\u662F\u7B2C\u4E00\u6B21\u7528Qsso\u8D26\u53F7\u767B\u5F55YApi\u670D\u52A1,\u60A8\u7684Email\u662F\uFF1A ' + params.email + ' \uFF0C\u521D\u59CB\u5316\u5BC6\u7801\u4E3A\uFF1A' + passsalt + '
'
+ });
+
+ case 13:
this.setLoginCookie(user._id, user.passsalt);
return _context4.abrupt('return', true);
- case 16:
- _context4.prev = 16;
+ case 17:
+ _context4.prev = 17;
_context4.t0 = _context4['catch'](2);
console.error(_context4.t0.message);
return _context4.abrupt('return', false);
- case 20:
+ case 21:
case 'end':
return _context4.stop();
}
}
- }, _callee4, this, [[2, 16]]);
+ }, _callee4, this, [[2, 17]]);
}));
function handleThirdLogin(_x4, _x5) {
@@ -605,7 +610,7 @@ var userController = function (_baseController) {
});
_yapi2.default.commons.sendMail({
to: params.email,
- contents: '\u6B22\u8FCE\u6CE8\u518C\uFF0C\u60A8\u7684\u8D26\u53F7 ' + params.email + ' \u5DF2\u7ECF\u6CE8\u518C\u6210\u529F'
+ contents: '\u4EB2\u7231\u7684\u7528\u6237\uFF1A
\u60A8\u597D\uFF0C\u611F\u8C22\u4F7F\u7528YApi,\u60A8\u7684\u8D26\u53F7 ' + params.email + ' \u5DF2\u7ECF\u6CE8\u518C\u6210\u529F
'
});
_context8.next = 26;
break;
@@ -855,15 +860,16 @@ var userController = function (_baseController) {
key: 'update',
value: function () {
var _ref12 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee12(ctx) {
- var params, userInst, id, data, checkRepeat, result;
+ var _params, userInst, id, data, checkRepeat, result;
+
return _regenerator2.default.wrap(function _callee12$(_context12) {
while (1) {
switch (_context12.prev = _context12.next) {
case 0:
_context12.prev = 0;
- params = ctx.request.body;
+ _params = ctx.request.body;
- if (!(this.getRole() !== 'admin' && params.uid != this.getUid())) {
+ if (!(this.getRole() !== 'admin' && _params.uid != this.getUid())) {
_context12.next = 4;
break;
}
@@ -872,7 +878,7 @@ var userController = function (_baseController) {
case 4:
userInst = _yapi2.default.getInst(_user2.default);
- id = params.uid;
+ id = _params.uid;
if (id) {
_context12.next = 8;
@@ -888,10 +894,10 @@ var userController = function (_baseController) {
};
if (this.getRole() === 'admin') {
- params.role && (data.role = params.role);
+ _params.role && (data.role = _params.role);
}
- params.username && (data.username = params.username);
- params.email && (data.email = params.email);
+ _params.username && (data.username = _params.username);
+ _params.email && (data.email = _params.email);
if (!data.email) {
_context12.next = 18;
diff --git a/server_dist/models/log.js b/server_dist/models/log.js
index 861c12ee..4dfe9cd4 100644
--- a/server_dist/models/log.js
+++ b/server_dist/models/log.js
@@ -67,6 +67,14 @@ var logModel = function (_baseModel) {
add_time: Number
};
}
+
+ /**
+ * @param {String} title log标题
+ * @param {String} content log内容
+ * @param {Enum} type log类型, ['user', 'group', 'interface', 'project', 'other']
+ * @param {Number} uid 用户id
+ */
+
}, {
key: 'save',
value: function () {
diff --git a/server_dist/models/user.js b/server_dist/models/user.js
index a1e9c26c..991f2f21 100644
--- a/server_dist/models/user.js
+++ b/server_dist/models/user.js
@@ -91,7 +91,7 @@ var userModel = function (_baseModel) {
key: 'findByUids',
value: function findByUids(uids) {
return this.model.find({
- _id: { $in: [107] }
+ _id: { $in: uids }
}).select("_id username email role add_time up_time").exec();
}
}, {
diff --git a/server_dist/utils/commons.js b/server_dist/utils/commons.js
index 4c0320df..2c4dadd6 100644
--- a/server_dist/utils/commons.js
+++ b/server_dist/utils/commons.js
@@ -155,4 +155,16 @@ exports.filterRes = function (list, rules) {
});
return filteredRes;
});
+};
+
+exports.verifyPath = function (path) {
+ if (/^\/[a-zA-Z0-9\-\/_:]+$/.test(path)) {
+ if (path[path.length - 1] === '/') {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
};
\ No newline at end of file