Commit Graph

345 Commits (bb23c2a9fab32bf1755a1ee07a97bae9f3ab14de)

Author SHA1 Message Date
ibuler c8728cace4 [Update] 完成树形改造 2018-02-09 15:24:44 +08:00
ibuler c7296c2498 [Update] 修改系统用户推送,拆分assets的部分模块 2018-02-09 11:12:40 +08:00
ibuler f82d939d15 [Update] 使用资产树,去掉集群和资产组 2018-02-08 11:34:21 +08:00
ibuler 9e09a962af [Feature] 支持popover 2018-01-30 18:07:51 +08:00
ibuler f37b331630 Merge with dev 2018-01-23 15:13:24 +08:00
ibuler 9dbf498322 [Update] 修改copyright 2018-01-23 12:40:22 +08:00
ibuler 8e6efac6db [Update] 修改copyrite 2018-01-23 12:39:19 +08:00
ibuler 579e74dd5d [Bugfix] 修复一些bug 2018-01-23 12:22:25 +08:00
ibuler 57e508f331 [update] 修改用户创建时 姓名和用户名的位置 2018-01-20 22:26:21 +08:00
ibuler 59a69f0253 [Bugfix] 修复title显示Jumpserver 2018-01-15 13:54:19 +08:00
ibuler 39fff235d1 [Bugfix] 修复cluster创建的bug 2018-01-14 18:02:11 +08:00
ibuler 3223d3b74d [Bugfix] 修复了一些显示上的bug 2018-01-10 17:38:10 +08:00
ibuler 72a82c41ee [Update] 修改 success message, 添加资产组时可以添加资产 2018-01-09 23:07:53 +08:00
ibuler c0829194dc [Update] 修改一些bug, 增加执行task的按钮 2018-01-08 19:16:28 +08:00
ibuler 07a70311df [Bugfix] 修复以下bug
- 删除用户报错,上次更新带来的
- 管理员用户页面会看到所有主机的,而不是授权给自己的
- 授权详情页面 资产显示无效
2018-01-08 11:22:19 +08:00
ibuler 1888c698f1 [Bugfix] 修复一些bug 2018-01-05 17:57:02 +08:00
ibuler 28223421b1 [Bugfix] 修复一下bug
1. 添加管理用户时同名的异常
2. 添加授权规则的检查
2018-01-05 14:36:49 +08:00
ibuler 3b6403b2f2 [Update] 修改一些翻译 2018-01-01 15:08:33 +08:00
ibuler c48531c586 [Update] 添加和修改部分翻译 2018-01-01 00:45:12 +08:00
ibuler 0916757eb8 [Bugfix] 修复一些bug 2017-12-31 21:51:25 +08:00
ibuler 0b299344a7 [Update] 修改database 表现 2017-12-31 12:20:08 +08:00
ibuler 158678c2db [Bugfix] 修改bug,显示cluster 2017-12-28 18:01:15 +08:00
ibuler e20444983d [Bugfix] 修改html bug 2017-12-28 12:25:43 +08:00
ibuler 1c20f519a9 [Bugfix] 修改小的bug 2017-12-27 11:22:44 +08:00
ibuler 0848893f1e [Bugfix] 修复时间日期搜索的bug,select2模块自适应长度 2017-12-27 01:29:23 +08:00
ibuler e1b23a7cb4 [Bugfix] 修复无法记录日志的bug 2017-12-21 15:28:21 +08:00
ibuler 76df1de634 [Bugfix] 修复一些明显的bug 2017-12-21 11:31:13 +08:00
ibuler b0eace6ad8 [Bugfix] 基本完成assets模块 2017-12-19 12:41:00 +08:00
ibuler b4e1ac1953 [Bugfix] 修复资产模块中一些bug 2017-12-18 22:48:19 +08:00
ibuler a308000d2e [Bugfix] 修改users模块一些bug 2017-12-18 18:38:30 +08:00
ibuler cb57002682 [Change] 去掉前端html中的hardcode 99991937 2017-12-12 14:38:51 +08:00
ibuler cbc000696e [Feature] 修改adminuser systemuser cluster及他们的关系 2017-12-11 17:08:43 +08:00
ibuler ec8106e43d [Feature] 完成登陆日志 2017-12-05 12:24:31 +08:00
ibuler 19051d36dc [Update] 修改一些bug 2017-12-01 17:00:55 +08:00
ibuler da5b9be5ca [Bugfix] Update some translation and set warning, partial fix #646 2017-09-28 20:52:33 +08:00
管宜尧 290872dcad bugfix: 解决用户失效时间为空时,无法使用密码进行ssh登录跳板机的问题 (#659)
* bugfix: 解决用户失效时间为空时,无法使用密码进行ssh登录跳板机的问题

bugfix: 解决用户失效时间为空时,无法使用密码进行ssh登录跳板机的问题。

```
AttributeError at /api/users/v1/auth/
'NoneType' object has no attribute 'strftime'

Request Method: POST
Request URL: http://127.0.0.1:8080/api/users/v1/auth/
Django Version: 1.11.4
Python Executable: /opt/py3/bin/python
Python Version: 3.6.1
Python Path: ['/data/deployment/jumpserver/apps', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/opt/py3/lib/python3.6/site-packages', '/data/deployment/jumpserver', '/data/deployment/jumpserver/apps']
Server time: Wed, 30 Aug 2017 23:18:47 +0800
Installed Applications:
['users.apps.UsersConfig',
 'assets.apps.AssetsConfig',
 'perms.apps.PermsConfig',
 'ops.apps.OpsConfig',
 'audits.apps.AuditsConfig',
 'common.apps.CommonConfig',
 'applications.apps.ApplicationsConfig',
 'rest_framework',
 'rest_framework_swagger',
 'django_filters',
 'bootstrap3',
 'captcha',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'jumpserver.middleware.TimezoneMiddleware',
 'jumpserver.middleware.DemoMiddleware']


Traceback:  

File "/opt/py3/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)
File "/opt/py3/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)
File "/opt/py3/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.6/contextlib.py" in inner
  53.                 return func(*args, **kwds)
File "/opt/py3/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)
File "/opt/py3/lib/python3.6/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)
File "/opt/py3/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  489.             response = self.handle_exception(exc)
File "/opt/py3/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
  449.             self.raise_uncaught_exception(exc)
File "/opt/py3/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  486.             response = handler(request, *args, **kwargs)
File "/data/deployment/jumpserver/apps/users/api.py" in post
  166.             return Response({'token': token, 'user': user.to_json()})
File "/data/deployment/jumpserver/apps/users/models/user.py" in to_json
  207.             'date_expired': self.date_expired.strftime('%Y-%m-%d %H:%M:%S')

Exception Type: AttributeError at /api/users/v1/auth/
Exception Value: 'NoneType' object has no attribute 'strftime'
Request information:
USER: AnonymousUser
GET: No GET data
POST: No POST data
FILES: No FILES data
COOKIES: No cookie data
```

* bugfix: 个人信息页面个人信息pannel错位

bugfix: 个人信息页面个人信息pannel错位
2017-09-24 08:40:59 +08:00
ibuler cd1d690fd3 [Bugfix] 修复一些bug 2017-07-28 21:52:43 +08:00
ibuler 4e67749eef [Docs] 添加api dockers 2017-07-10 10:26:17 +08:00
ibuler 41633be1aa [Bugfix] 修复无法删除资产组 2017-05-22 20:30:31 +08:00
ibuler d2620a655c [Bugfix] 修复模板bug, 修复getattr bug 2017-05-22 20:18:13 +08:00
ibuler edc631ad60 [Docker] 添加Docker compose 2017-05-20 00:19:10 +08:00
ibuler 2ec0ab871a Fix form bug 2017-04-12 18:06:32 +08:00
ibuler 695e4da85e [Fixture] 完成批量更新 2017-04-12 11:50:15 +08:00
ibuler 071d1922d0 stash it 2017-04-10 22:55:15 +08:00
ibuler 5418d0b44c [Change] Using csv replace xlsx 2017-04-09 00:45:28 +08:00
ibuler bcc065eb8f [Compat] compat py3 change bootstrap form to bootstrap3 2017-04-07 23:52:46 +08:00
ibuler c11374ae39 [Bugfix] 修改翻译 2017-04-07 16:59:09 +08:00
ibuler 709552f14c [Fixture] 添加首页 2017-04-02 18:09:40 +08:00
ibuler 66a2262ee9 [Fixture] 增加 asset groups assets api 2017-04-01 00:41:16 +08:00
ibuler 067426d5e0 [Fixture] 完成用户向导页 2017-03-31 23:46:00 +08:00
ibuler 61a481f427 [Fixture] 添加用户连接终端 2017-03-31 11:25:25 +08:00
ibuler 3fa5ce5404 [Fixture] 添加用户信息更改 2017-03-30 16:28:00 +08:00
ibuler 0983f294b7 [Fixture] 添加用户profile 2017-03-30 00:51:36 +08:00
ibuler 4e7b665ea8 [Change] 添加翻译,并添加用户登陆页面 2017-03-29 15:26:32 +08:00
ibuler b055144908 Merge with audits 2017-03-01 15:35:11 +08:00
xiaokong1937@gmail.com 548d7ef99a fix #13;fix `user` context conflict problem in user-detail page 2017-02-09 21:19:49 +08:00
xiaokong1937@gmail.com fe01f92545 user profile: update ssh pk 2017-02-03 13:37:05 +08:00
xiaokong1937@gmail.com 8a5d0b2d92 remove unused templatetags: users_tags and common_tags 2017-01-26 20:24:50 +08:00
xiaokong1937@gmail.com f3647ea46d user-profile page 2017-01-25 21:19:16 +08:00
ibuler 0869931e67 [Bugfix] 修改了一些issue上的bug 2017-01-20 20:13:22 +08:00
ibuler 17657deb0e [Bugfix] 和Master分支合并后,修复冲突,DRF 新版本要求 fields和exclude 2017-01-08 13:35:59 +08:00
ibuler d56f030dc4 Finish terminal accept 2016-12-27 00:59:52 +08:00
wangjun5 87eed2e59b add asset tool 2016-12-15 19:55:15 +08:00
ibuler 3aea994101 asset import 2016-11-27 14:37:50 +08:00
ibuler c1c9c7b68a update asset 2016-11-25 22:45:47 +08:00
ibuler 6e843533cb Base finish user 2016-11-25 11:00:51 +08:00
ibuler d8a229c09b to Commpany 2016-11-25 08:39:24 +08:00
ibuler c1a74aebc5 [BugFix] update some user import bug 2016-11-24 17:08:20 +08:00
ibuler eae580e51f Update user import and export 2016-11-24 15:45:08 +08:00
ibuler e28f7a3bec Add export and import 2016-11-24 00:48:57 +08:00
ibuler be99eb82e8 udpate some bug 2016-11-23 19:37:47 +08:00
ibuler 5af97c969b export csv 2016-11-23 19:09:11 +08:00
ibuler 7dfde3a3c5 Update 2016-11-23 16:17:23 +08:00
ibuler e89d3b3807 Update asset 2016-11-17 19:28:45 +08:00
ibuler 5745c8cc4a Finish url namespace change 2016-11-16 17:45:46 +08:00
ibuler a5e487441f prepare change api name 2016-11-16 17:38:03 +08:00
ibuler 3b30eb3278 Weiteng 2016-11-15 23:09:36 +08:00
ibuler 99c36f2a2c Fix bug 2016-11-15 19:44:08 +08:00
ibuler db8b0022fc Update usergroup detail 2016-11-15 19:33:04 +08:00
ibuler bd882c8bef User group detail 2016-11-15 00:48:48 +08:00
ibuler 8d358a7a68 UPdate some 2016-11-14 19:28:21 +08:00
ibuler 10aa8c40a7 Add login log 2016-11-10 23:54:21 +08:00
ibuler f70abec5ef Finish user detail 2016-11-10 22:06:23 +08:00
ibuler 69f2bf664b Finish user permission revoke 2016-11-10 16:59:50 +08:00
ibuler 47090eb0f7 update some user api 2016-11-09 23:49:10 +08:00
ibuler 8d7759d22f change user api 2016-11-09 19:29:15 +08:00
ibuler 072da114db Finish system user list 2016-11-06 22:45:26 +08:00
ibuler 968b1b4cb6 Stash 2016-11-06 21:29:04 +08:00
ibuler 41337d28c3 add proxy log search 2016-11-05 01:15:25 +08:00
ibuler f437d3f883 update 2016-11-03 19:42:47 +08:00
ibuler f1dfba6a93 Update some asset issues 2016-10-31 19:31:56 +08:00
ibuler 6164896793 Update some thing 2016-10-19 18:33:14 +08:00
ibuler 4531157c72 may be some wrong 2016-10-16 22:12:13 +08:00
xiaokong1937@gmail.com 6856fad0c0 integrate the user-group list page with its api; 2016-10-02 11:09:27 +08:00
xiaokong1937@gmail.com d40aa49d8c user bulk import through Excel and close #20 2016-10-01 20:26:43 +08:00
xiaokong1937@gmail.com 05e961f29f user-group detail: fix #15 2016-09-30 20:50:40 +08:00
xiaokong1937@gmail.com d8143a67cd user-group-detail: user-adding frontend integration 2016-09-29 21:14:55 +08:00
xiaoyu e7fddf80ae user-group-detail: add users support 2016-09-29 16:41:55 +08:00
xiaokong1937@gmail.com f9b49605e4 user-group detail page: users op 2016-09-28 21:11:43 +08:00
xiaokong1937@gmail.com 2522f0d80f trivial changes: refactor the jumpserver DataTable api 2016-09-27 21:28:02 +08:00
xiaokong1937@gmail.com 70a6ddc897 fix #27 2016-09-27 20:16:46 +08:00
xiaokong1937@gmail.com 49f007601f add user-list-delete support for user-group detail page 2016-09-26 21:22:48 +08:00
xiaokong1937@gmail.com 74cdd2d0f3 user list groups bulk update 2016-09-26 19:39:43 +08:00
xiaoyu 15dcc760b4 user list bulk update modal 2016-09-26 16:33:10 +08:00
xiaoyu d2197d99c2 fix #26 2016-09-26 11:30:43 +08:00
xiaoyu 22163173fe user bulk delete view 2016-09-23 16:30:59 +08:00
xiaoyu af713672fb user list page bulk action 2016-09-22 16:06:46 +08:00
xiaoyu 515406c05d temp: deactive test 2016-09-21 16:43:41 +08:00
xiaoyu 61d1d9ec90 temp 2016-09-21 15:48:21 +08:00
ibuler 220892824c Finish some bug 2016-09-20 01:13:50 +08:00
ibuler ce5950ca73 Merge with asset 2016-09-20 00:43:30 +08:00
xiaokong1937@gmail.com 65461a09a7 user-group edit implement 2016-09-19 21:08:08 +08:00
xiaoyu f00da20764 user-group delete implement 2016-09-19 15:47:58 +08:00
xiaokong1937@gmail.com 4e2a41f4cf user-group draft 2016-09-18 21:00:07 +08:00
xiaoyu 8a5a4f3362 fix #14 2016-09-18 14:28:34 +08:00
xiaoyu 8cdc4674d7 update toastr js and close #8 2016-09-18 10:32:23 +08:00
ibuler 502c7e756b Modify asset 2016-09-17 23:43:41 +08:00
ibuler dc4d388d9a Merge with master 2016-09-17 18:53:11 +08:00
ibuler df281defd8 Finish user detail asset grant .. 2016-09-17 18:51:19 +08:00
ibuler 7d3474aeea Add user permission user list 2016-09-17 15:20:33 +08:00
ibuler b5abb17568 Jiu zhe yang ba 2016-09-17 13:04:26 +08:00
ibuler ab2eeb0da3 Finish user asset form 2016-09-17 01:04:52 +08:00
ibuler 06b2c623cb Modify some bug 2016-09-16 17:23:47 +08:00
xiaokong1937@gmail.com 7984806b38 change user ssh reset type from private key to public key 2016-09-15 16:54:00 +08:00
ibuler f253d2ea69 Merge with master 2016-09-14 23:31:22 +08:00
unknown 0f9bdab108 Merge branch 'master' of code.simcu.com:jumpserver/jumpserver 2016-09-14 15:40:47 +08:00
unknown 8490583d73 add assets manage
Sweet Alert
2016-09-14 15:19:27 +08:00
ibuler 5bca783e12 permission user search 2016-09-14 01:08:26 +08:00
xiaokong1937@gmail.com 6751c5a63a reset user password and ssh pk implement 2016-09-13 21:45:10 +08:00
xiaoyu 00502ce33d trivial js style changes; bugfix for patch method 2016-09-13 16:38:43 +08:00
unknown 7cff5cbf61 Merge branch 'master' of code.simcu.com:jumpserver/jumpserver 2016-09-12 15:36:13 +08:00
unknown 12831a7d21 text 2016-09-12 15:35:50 +08:00
xiaokong1937@gmail.com 899233338d #8 user first login view 2016-09-10 13:20:34 +08:00
xiaokong1937@gmail.com a7e3f9c465 #8 user first login view 2016-09-10 13:16:58 +08:00
xiaokong1937@gmail.com d8fe59debb temp save for issue 8 2016-09-08 21:51:44 +08:00
ibuler 409fac3ef1 Merge branch 'admin-user' 2016-09-08 20:39:25 +08:00
ibuler 239dd0567f Finish admin user view 2016-09-08 20:39:06 +08:00
xiaokong1937@gmail.com 62cac20ba7 fix #9 2016-09-08 19:30:22 +08:00
xiaokong1937@gmail.com 8acbcb2ed2 Merge branch 'master' of code.simcu.com:jumpserver/jumpserver 2016-09-07 21:53:33 +08:00
xiaokong1937@gmail.com 04151b9957 user group quickedit frontend and rest API 2016-09-07 21:53:27 +08:00
ibuler 4db352f55b Add idc 2016-09-07 20:51:33 +08:00
ibuler d8e6433404 Merge branch 'master' of code.simcu.com:jumpserver/jumpserver 2016-09-07 20:06:01 +08:00
ibuler 30fd51c268 Asset group detail 2016-09-06 21:39:21 +08:00
xiaokong1937@gmail.com 556fb4e09f refactor `is_active` trigger view and `enable_otp` trigger view in UserDetail page;trivial changes 2016-09-06 21:03:51 +08:00
xiaoyu c6f875c517 temp commit 2016-09-06 16:40:44 +08:00
ibuler 25d9dbe93c Merge with cmdb 2016-09-06 15:09:00 +08:00
ibuler 02b5483d81 Update add->create edit->update and assetgrou->asset-grou etc format 2016-09-06 14:38:19 +08:00
ibuler 2f5b7ad654 Modify asset model 2016-09-05 22:57:43 +08:00
xiaokong1937@gmail.com 6aedfb5219 fix small template erros 2016-09-05 22:20:50 +08:00
xiaokong1937@gmail.com 397da7d676 Merge branch 'master' of code.simcu.com:jumpserver/jumpserver 2016-09-05 21:38:37 +08:00
xiaokong1937@gmail.com e75d33439a fix captcha not valid bug of login view; use django's default login and logout view to enhance robustness 2016-09-05 21:38:21 +08:00
ibuler 8827fd2d74 Modify translation 2016-09-05 20:17:45 +08:00
ibuler 508bda37f5 Modify form datetime valid error, because form format 2016-09-05 19:37:37 +08:00
ibuler a0ef3cfc34 Update locale dir name to zh 2016-09-05 19:17:18 +08:00
ibuler 4855e86a3f Add asset group view 2016-09-04 21:47:10 +08:00
ibuler f274684473 Add translation for support i18n 2016-09-04 00:51:36 +08:00
ibuler 0b406b6988 Add captch login using 2016-09-03 14:37:01 +08:00
ibuler 6f0cfd23c1 Rm logout.html 2016-09-03 00:39:52 +08:00
ibuler 10d51ada37 Update login error message 2016-09-03 00:39:06 +08:00
ibuler 90ca5a8bb7 start capcha support 2016-09-02 22:23:15 +08:00
ibuler 9803dd9547 Add ico, Modify forget_password 2016-09-02 18:10:26 +08:00
ibuler 3a9cf6c360 Add forget password and reset password 2016-09-01 23:09:58 +08:00
ibuler 5359da3ce2 Finish user login 2016-08-31 23:42:06 +08:00
ibuler c9369db578 Add new login page 2016-08-31 20:39:25 +08:00
ibuler c143735393 Add ssh-key-gen function 2016-08-31 01:00:20 +08:00
ibuler 011c125564 Modify user active api And Add Token authorization 2016-08-30 00:10:27 +08:00
ibuler d95ffdfbf7 Test permmision 2016-08-26 00:51:05 +08:00
ibuler bb76f6c652 Add api authentication 2016-08-25 19:29:59 +08:00
ibuler 641e998504 Update context name path1, path2 => app, action 2016-08-25 13:56:49 +08:00
ibuler 0a9e4a5e85 Modify urls.conf: Merge to single 2016-08-25 13:28:02 +08:00
ibuler 1d5faa3101 Delete Model: Role 2016-08-24 17:14:21 +08:00
ibuler 1f3c0d004f Change update batch, add _list_base.html 2016-08-23 17:14:08 +08:00
ibuler 3c3fda8064 Change chosen To select2 lib 2016-08-23 14:44:06 +08:00
ibuler 8e5e788bcd Test case added 2016-08-23 00:39:07 +08:00
ibuler 8b0f31c43a modify list, edit url error 2016-08-21 21:32:20 +08:00
ibuler 8ba7b078fd Finish expaire date 2016-08-21 21:31:25 +08:00
ibuler 57f0b04387 Modify project statucure guide and init data 2016-08-21 20:59:39 +08:00
ibuler 0427d406b9 Add init data file 2016-08-21 01:16:30 +08:00
ibuler 6e46a17d98 Useradd group change 2016-08-20 00:42:50 +08:00
ibuler cf15b7eaff Add UserGroup some View 2016-08-19 01:39:08 +08:00
ibuler 651e89994e modify list and sort 2016-08-18 22:29:35 +08:00
ibuler 342298ad3e reslove conflict 2016-08-18 14:43:10 +08:00
ibuler a76191ffdc Change view detail template 2016-08-18 10:20:37 +08:00
ibuler 279987925a Modify user detail of usergroup 2016-08-18 00:47:34 +08:00
ibuler 824b1c7f6f update user update view 2016-08-17 22:17:16 +08:00
ibuler bcae7beae6 upload avatar 2016-08-17 00:36:54 +08:00
ibuler 35abf16f7d Modify panel color 2016-08-17 00:22:33 +08:00
ibuler c14eb42186 reslove conflict add user detail template 2016-08-17 00:14:56 +08:00
ibuler 98d6043f2d merged 2016-08-16 23:25:30 +08:00
ibuler 7a8d4a3a59 Add delete view 2016-08-16 22:13:06 +08:00
ibuler 3bf0d4aabb Add common app
common app used as write public api or templatetags

modify user list view and user edit view
2016-08-16 00:09:48 +08:00
广宏伟 e3223f745a app users
Modify user list view
Modify user add view
2016-08-15 21:10:30 +08:00
广宏伟 86ffcc973c Add user template 2016-08-14 19:18:41 +08:00
ibuler 9493fb07cb Add user list view 2016-08-14 17:21:04 +08:00
ibuler 234684c875 Rename dir name dashboard to apps
It's may be well
2016-08-13 21:59:08 +08:00