Compare commits

...

171 Commits

Author SHA1 Message Date
yystopf 5d88b6cb90 fix: use kaminary 2021-11-22 14:50:01 +08:00
xxq250 9e2d8fba0e Merge pull request '木兰版本:项目首页分页功能' (#254) from yystopf/forgeplus:mulanoss_server into mulanoss_server 2021-11-22 14:41:19 +08:00
yystopf a28589cce5 fix: change index paginate 2021-11-22 14:32:44 +08:00
jasder c860e7bc43 Merge pull request '调整返回给前端的sonar_url' (#222) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-10-23 21:55:14 +08:00
chenjing 2743da824e add sonar_url for details 2021-10-23 21:19:56 +08:00
jasder 1822ade2db Merge pull request 'project 新增sonar_url ,且新增回调接口,新增调试工具' (#220) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-10-22 16:25:02 +08:00
chenjing 91fa87ada5 为项目新增sonar_url 且增加回调接口 2021-10-22 15:23:32 +08:00
jasder 38e55cea40 Merge pull request 'ADD 通知系统动态配置功能以及修复Issue、Pr标题限制问题' (#209) from jasder/forgeplus:mulanoss_server into mulanoss_server 2021-10-19 15:40:00 +08:00
jasder 2f038117f7 FIX 合并主干分支代码并解决代码冲突 2021-10-19 15:35:41 +08:00
jasder d0b3ea7a5a Merge pull request '更新木兰授权地址' (#186) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-10-14 10:56:51 +08:00
chenjing 734ff6463a 更改木兰授权页面地址 2021-10-14 10:44:34 +08:00
jasder 3e399af371 Merge pull request 'FIX WIP' (#185) from jasder/forgeplus:mulanoss_server into mulanoss_server 2021-10-13 11:42:15 +08:00
jasder f7ca0c3a13 集成develop分支最新代码 2021-10-13 11:22:02 +08:00
jasder 8343c625c3 Merge pull request '更新木兰授权地址' (#183) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-10-13 09:51:46 +08:00
chenjing eec57f26b9 更新授权地址 2021-10-13 09:46:27 +08:00
jasder 5930a93b8f Merge pull request '新增北航发送评论接口' (#182) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-10-12 23:02:15 +08:00
chenjing b5dd2ade82 add Journals beihang 2021-10-12 22:56:50 +08:00
jasder 7812996894 Merge pull request '新增授权木兰邮箱地址判定' (#170) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-09-30 10:13:05 +08:00
chenjing 8c2f0e9fdb 新增邮箱判定 2021-09-30 10:08:40 +08:00
jasder ab9bdfd109 Merge pull request '新增callback路由' (#168) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-09-29 17:33:18 +08:00
chenjing 8d81672ac5 fix routes 2021-09-29 17:30:10 +08:00
jasder a721968938 Merge pull request '木兰第三方登录授权登录' (#167) from gua2048/forgeplus:mulanoss_server into mulanoss_server 2021-09-29 15:15:59 +08:00
chenjing 0bacc4c969 remove educoder third login 2021-09-29 15:11:32 +08:00
chenjing d63df944c8 木兰授权登录 2021-09-29 14:42:13 +08:00
jasder eb593c384b Merge pull request 'FIX 修复相关bug' (#156) from jasder/forgeplus:mulanoss_server into mulanoss_server 2021-09-26 17:48:33 +08:00
jasder 0cbfc895ca Merge pull request 'FIX 修复修改组织信息后导致不能创建项目的bug' (#152) from dev_trustie_server into trustie_server 2021-09-10 22:52:12 +08:00
jasder 2fab120118 Merge pull request 'FIX 修复修改组织信息后导致不能创建项目的bug' (#151) from develop into dev_trustie_server 2021-09-10 22:51:18 +08:00
jasder 629729436c Merge pull request 'FIX 优化创建项目流程' (#149) from dev_trustie_server into trustie_server 2021-09-10 19:03:26 +08:00
jasder 00ed177089 Merge pull request 'FIX bug' (#148) from develop into dev_trustie_server 2021-09-10 18:32:08 +08:00
jasder 26c0d36227 Merge pull request 'FIX 优化项目流程' (#146) from develop into dev_trustie_server 2021-09-10 18:28:36 +08:00
jasder 86c98a1716 Merge pull request '发布V3.1.0版本' (#139) from dev_trustie_server into trustie_server 2021-09-03 18:16:51 +08:00
jasder 143e88593f Merge pull request 'FIX 路由优化' (#138) from develop into dev_trustie_server 2021-09-03 17:55:43 +08:00
jasder 99e3aaf780 Merge pull request 'merge dev_trustie_server' (#134) from dev_trustie_server into trustie_server 2021-09-01 19:02:51 +08:00
jasder 7d12a25088 Merge pull request 'FIX commit user info' (#133) from develop into dev_trustie_server 2021-09-01 19:01:22 +08:00
jasder 85d1aa3a85 Merge pull request 'fix release v3.2.0' (#129) from dev_trustie_server into trustie_server 2021-08-27 15:28:22 +08:00
jasder 0f57844106 Merge pull request 'FIX some bug' (#128) from develop into dev_trustie_server 2021-08-27 15:12:27 +08:00
jasder c3b9d2e0b5 ADD wiki模块功能 2021-08-24 18:17:34 +08:00
jasder 299e8534d1 Merge branch 'develop' into dev_trustie_server 2021-08-19 17:48:31 +08:00
jasder d7362925f2 Merge branch 'dev_trustie_server' into trustie_server 2021-08-06 17:24:02 +08:00
jasder 43945b00b8 Merge branch 'dev_trustie_server' of https://git.trustie.net/jasder/forgeplus into dev_trustie_server 2021-08-06 17:20:44 +08:00
jasder b11d515ec6 Merge branch 'develop' into dev_trustie_server 2021-08-06 17:20:30 +08:00
yystopf 07a38ac3f7 Merge branch 'develop' into dev_trustie_server 2021-07-30 18:12:19 +08:00
yystopf 18227c232b Merge branch 'develop' into trustie_server 2021-07-30 18:10:31 +08:00
jasder f1d79e4d9f Merge branch 'trustie_server' of https://git.trustie.net/jasder/forgeplus into trustie_server 2021-07-30 17:08:42 +08:00
jasder 20e2e22be5 Merge branch 'dev_trustie_server' into trustie_server 2021-07-30 17:08:23 +08:00
jasder 27e5febef2 Merge branch 'develop' into dev_trustie_server 2021-07-30 17:04:21 +08:00
yystopf fb23e733d6 Merge branch 'develop' into dev_trustie_server 2021-07-23 17:23:45 +08:00
yystopf 512bff426d Merge branch 'develop' into trustie_server 2021-07-23 17:23:29 +08:00
yystopf 671c2c2257 Merge branch 'develop' into trustie_server 2021-07-23 14:53:18 +08:00
yystopf c6f2021017 Merge branch 'develop' into dev_trustie_server 2021-07-23 14:53:06 +08:00
jasder 581b147b3c Merge branch 'dev_trustie_server' of https://git.trustie.net/jasder/forgeplus into dev_trustie_server 2021-07-23 14:16:43 +08:00
jasder deebfc3292 fix merge develop branch 2021-07-23 14:16:29 +08:00
yystopf 6c4d17bed8 Merge branch 'develop' into trustie_server 2021-07-22 18:31:44 +08:00
yystopf e68c13f1a2 Merge branch 'develop' into dev_trustie_server 2021-07-22 18:30:59 +08:00
yystopf 15eb1f4a17 Merge branch 'develop' into dev_trustie_server 2021-07-21 21:32:38 +08:00
yystopf a1cb9a11d6 Merge branch 'develop' into trustie_server 2021-07-21 21:32:18 +08:00
yystopf 0884a0de1b Merge branch 'develop' into dev_trustie_server 2021-07-16 16:46:28 +08:00
yystopf 900fdd2691 Merge branch 'develop' into trustie_server 2021-07-16 16:46:08 +08:00
viletyy 4520055de2 Merge branch 'dev_trustie_server' into trustie_server 2021-07-12 18:38:03 +08:00
viletyy 193d1b21df Merge branch 'develop' into dev_trustie_server 2021-07-12 18:10:50 +08:00
viletyy ed8e079595 Merge branch 'develop' into dev_trustie_server 2021-07-12 17:57:51 +08:00
viletyy 55a0bcfb82 fix 2021-07-12 17:33:10 +08:00
viletyy 8f1aa3f4b1 fix: merge from develop 2021-07-12 17:28:47 +08:00
jasder b054094798 FIX conflicts 2021-07-12 16:20:14 +08:00
jasder 2d648e516e FIX merge develop branch 2021-07-12 16:19:03 +08:00
yystopf 7c23b40661 易修权限、用户更改昵称、fork项目修改项目私有性 2021-07-09 13:55:22 +08:00
viletyy ff21916f18 fix: merge from develop 2021-07-09 13:48:48 +08:00
viletyy d9162cb3bf fix: merge from develop 2021-07-09 13:47:21 +08:00
jasder ca1fd3cd4f FIX 解决标签列表和发行版列表中下周zip包、tar包导致的404问题 2021-07-01 16:57:52 +08:00
jasder 913bc45a9f Merge branch 'dev_trustie_server' of https://git.trustie.net/jasder/forgeplus into dev_trustie_server 2021-07-01 10:09:28 +08:00
jasder 8131d8cd48 Merge branch 'sync_develop' into dev_trustie_server 2021-07-01 10:08:58 +08:00
viletyy b45ab12279 Merge branch 'dev_trustie_server' into trustie_server 2021-06-28 21:11:13 +08:00
viletyy 259090b8e3 fix 2021-06-28 21:07:10 +08:00
jasder c3bc4166d9 FIX pr bug
ADD conflict files list
2021-06-28 10:09:40 +08:00
jasder 7e474cab70 Merge branch 'feature/pull_conflict_files' into dev_trustie_server 2021-06-28 10:06:54 +08:00
jasder 01341d4389 FIX pull、 gitea pull model relation bug 2021-06-28 10:04:48 +08:00
jasder 3a475a4674 FIX get conflict files bug with create pr api 2021-06-28 09:59:47 +08:00
jasder 83b7b8cd9c Merge branch 'develop' into dev_trustie_server 2021-06-25 18:03:28 +08:00
jasder c298ff02b8 ADD pr冲突文件展示 2021-06-25 18:03:07 +08:00
jasder 16ea03dcc8 fix 修复一些bug
* 解决获取平台base url导致的https的问题
* FIX 处理版本库zip、gzip包链接为无效的问题
2021-06-22 16:49:20 +08:00
jasder 7bb4cf7391 Merge branch 'develop' into dev_trustie_server 2021-06-22 15:15:51 +08:00
jasder 23f7439a8c Merge branch 'develop' into dev_trustie_server 2021-06-22 09:51:46 +08:00
jasder fa8f1155f5 V3.1.0
* FIX 修复pulls、issues 搜索数量统计问题
* FIX 解决在线创建文件错误提示信息不准确的问题
* FIX table name bug
* FIX 解决applied_projects相关表操作的问题
* FIX 解决排序参数的判断预防SQL注入
* FIX 项目导航栏数量改为开启中的数量
* FIX 解决项目邀请码的索引查询问题
* FIX FIX get readme file bug
* FIX sql attack
* FIX projects load by invite code slowly
2021-06-18 17:03:27 +08:00
jasder 484f8a854a Merge branch 'develop' into dev_trustie_server 2021-06-18 16:45:12 +08:00
jasder 7bedac263d Merge branch 'develop' into dev_trustie_server 2021-06-18 16:21:21 +08:00
jasder f0b1c9e80b Merge branch 'develop' into dev_trustie_server 2021-06-18 11:03:41 +08:00
jasder dc23be9001 Merge branch 'develop' into dev_trustie_server 2021-06-18 10:54:29 +08:00
jasder e24269c2a7 Merge branch 'develop' into dev_trustie_server 2021-06-17 18:14:19 +08:00
jasder e31176c696 ADD 项目邀请码功能 2021-06-11 18:13:33 +08:00
jasder bf390c8366 Merge branch 'develop' into dev_trustie_server 2021-06-11 18:03:35 +08:00
jasder 632a06e575 Merge branch 'develop' into dev_trustie_server 2021-06-08 18:13:16 +08:00
jasder 04c7887319 Merge branch 'sync_develop' into dev_trustie_server 2021-06-08 14:34:29 +08:00
jasder b012740195 ADD 升级改版个人中心模块功能 2021-06-04 19:10:07 +08:00
jasder d75b79670d Merge branch 'develop' into dev_trustie_server 2021-06-04 18:51:47 +08:00
jasder 0f79238f0e 解决镜像加速器失效问题 2021-06-03 17:29:37 +08:00
jasder 2c5fa8492f Merge branch 'develop' into dev_trustie_server 2021-06-03 17:26:35 +08:00
jasder fdfbf505ed ADD issue、pull、milestone钩子,自动触发项目的更新时间 2021-05-26 17:52:30 +08:00
jasder 6d845eeb3b Merge branch 'develop' into dev_trustie_server 2021-05-26 17:39:54 +08:00
jasder a7695b16a4 FIX query project members api bug 2021-05-24 17:08:03 +08:00
jasder 83e666a387 Merge branch 'develop' into dev_trustie_server 2021-05-24 17:06:54 +08:00
jasder 1a0fd38d15 发布v3.0.4版本 2021-05-24 10:18:57 +08:00
jasder 72b89d4b2b Merge branch 'develop' into dev_trustie_server 2021-05-21 19:26:47 +08:00
jasder b0b224fe76 Merge branch 'trustie_server' of https://git.trustie.net/jasder/forgeplus into trustie_server 2021-05-15 10:21:03 +08:00
jasder 38f6254edc Merge branch 'develop' into dev_trustie_server 2021-05-15 10:20:14 +08:00
jasder 57d9da002e ADD 页面置顶等功能 2021-05-14 17:57:48 +08:00
jasder 8a4b0ba966 Merge branch 'develop' into dev_trustie_server 2021-05-14 17:34:36 +08:00
jasder 84927c2361 FIX 解决大赛中点击项目跳转到forge平台,保持自动登陆的bug 2021-05-13 11:47:47 +08:00
jasder b568ac4e97 ADD title 2021-05-12 17:48:05 +08:00
jasder 91bbb58d4f FIX delete input readonly 2021-05-12 17:44:45 +08:00
jasder f278b38e6c Merge branch 'trustie_server' into dev_trustie_server 2021-05-12 17:01:59 +08:00
jasder 4023b8980e FIX 完善通过大赛点击项目链接自动注册关联Educoder平台账号的功能 2021-05-12 17:01:30 +08:00
jasder 1c1be18151 Merge branch 'dev_trustie_server' into trustie_server 2021-05-10 14:39:14 +08:00
jasder e5f591e509 Merge branch 'develop' into dev_trustie_server 2021-05-10 14:38:58 +08:00
yystopf 27ee32054b 发布v3.0.3版本 2021-05-08 17:45:23 +08:00
jasder 3e3fd46cad Merge branch 'develop' into dev_trustie_server 2021-05-08 17:02:56 +08:00
jasder 7a752b177d Merge branch 'develop' into dev_trustie_server 2021-05-08 14:23:34 +08:00
jasder abbabfdefd Merge branch 'dev_trustie_server' into trustie_server 2021-04-30 17:13:33 +08:00
jasder edd76b9286 Merge branch 'develop' into dev_trustie_server 2021-04-30 17:13:18 +08:00
jasder a3ca94d433 Merge branch 'dev_trustie_server' into trustie_server 2021-04-29 23:23:55 +08:00
jasder 91a804caf7 Merge branch 'develop' into dev_trustie_server 2021-04-29 23:23:42 +08:00
jasder 663deae21b Merge branch 'dev_trustie_server' into trustie_server 2021-04-29 23:19:34 +08:00
jasder dae5c9690f Merge branch 'develop' into dev_trustie_server 2021-04-29 23:19:17 +08:00
jasder e65df07d79 Merge branch 'dev_trustie_server' into trustie_server 2021-04-29 19:27:55 +08:00
jasder 246b6b52ec Merge branch 'develop' into dev_trustie_server 2021-04-29 19:27:36 +08:00
jasder b9789183e3 Merge branch 'dev_trustie_server' into trustie_server 2021-04-29 19:17:03 +08:00
jasder 7cf2c6021f Merge branch 'develop' into dev_trustie_server 2021-04-29 19:13:12 +08:00
jasder e0f9a3d43d Merge branch 'develop' into dev_trustie_server 2021-04-29 18:50:11 +08:00
jasder c1ef39b262 Merge branch 'develop' into dev_trustie_server 2021-04-29 18:37:35 +08:00
jasder 51643dc02c Merge branch 'dev_trustie_server' into trustie_server 2021-04-29 10:42:12 +08:00
jasder a078c07b59 Merge branch 'develop' into dev_trustie_server 2021-04-29 10:41:59 +08:00
jasder b984790d5c Merge branch 'develop' into trustie_server 2021-04-28 21:17:43 +08:00
jasder 876591100e Merge branch 'develop' into dev_trustie_server 2021-04-28 21:17:36 +08:00
jasder ba9848ebe7 Merge branch 'develop' into dev_trustie_server 2021-04-27 18:24:41 +08:00
jasder 41c621cf55 Merge branch 'develop' into dev_trustie_server 2021-04-26 16:53:05 +08:00
jasder 09ac49dda5 Merge branch 'develop' into dev_trustie_server 2021-04-26 16:46:24 +08:00
jasder 341a810afc Merge branch 'develop' into dev_trustie_server 2021-04-23 17:54:13 +08:00
jasder 2282c52efb FIX update README.md 2021-04-23 17:33:19 +08:00
jasder 34edd78ae7 Merge branch 'develop' into dev_trustie_server 2021-04-23 17:21:34 +08:00
jasder 36fb5a118c Merge branch 'develop' into dev_trustie_server 2021-04-23 14:40:41 +08:00
jasder b756be1d6a Merge branch 'develop' into dev_trustie_server 2021-04-22 18:10:32 +08:00
jasder 348c2244f7 Merge branch 'develop' into dev_trustie_server 2021-04-22 16:45:40 +08:00
jasder 31738fc227 Merge branch 'develop' into dev_trustie_server 2021-04-22 16:43:04 +08:00
jasder a93c98fb7c Merge branch 'trustie_server' into dev_trustie_server 2021-04-22 16:39:03 +08:00
jasder 39193324e9 Merge branch 'develop' into dev_trustie_server 2021-04-22 16:38:58 +08:00
jasder 81743ce3bc Merge branch 'develop' into trustie_server 2021-04-20 19:07:56 +08:00
jasder e9ae536f04 Merge branch 'develop' into trustie_server 2021-04-20 19:06:40 +08:00
jasder 186955fe4a Merge branch 'develop' into trustie_server 2021-04-20 18:58:24 +08:00
jasder 8ce7fd95cb Merge branch 'develop' into trustie_server 2021-04-20 18:37:55 +08:00
jasder 0867e5130f Merge branch 'dev_trustie_server' into trustie_server 2021-04-20 11:37:25 +08:00
jasder db476a1a9b Merge branch 'develop' into dev_trustie_server 2021-04-20 11:37:08 +08:00
jasder fa1fd8a4ba Merge branch 'develop' into trustie_server 2021-04-19 20:39:29 +08:00
jasder 0d7a11f3ab Merge branch 'develop' into dev_trustie_server 2021-04-19 18:41:18 +08:00
jasder 879e45e106 Merge branch 'develop' into trustie_server 2021-04-13 16:40:23 +08:00
jasder b3b0f75e9b Merge branch 'develop' into trustie_server 2021-04-13 10:18:52 +08:00
jasder 5c8e561bd8 Merge branch 'develop' into trustie_server 2021-04-08 18:36:27 +08:00
jasder 2b0c987558 Merge branch 'develop' into trustie_server 2021-04-07 11:35:09 +08:00
jasder 6796805b21 Merge branch 'develop' into trustie_server 2021-04-02 18:58:08 +08:00
jasder 5752f19b2f FIX gug 2021-04-02 18:56:44 +08:00
jasder eb52f05417 集成educoder登陆 2021-04-02 18:46:15 +08:00
vilet.yy 786629dbff fix 2021-04-02 18:41:48 +08:00
vilet.yy 7a00541375 Merge branch 'develop' into hh_develop 2021-04-02 18:41:37 +08:00
vilet.yy 1d832a1723 fix 2021-04-02 18:38:08 +08:00
vilet.yy 80ce40e492 fix 2021-04-02 18:33:31 +08:00
vilet.yy 91f6dae56a fix 2021-04-02 18:24:20 +08:00
vilet.yy 8c5a834b14 Merge branch 'develop' into hh_develop 2021-04-02 18:22:32 +08:00
vilet.yy 57f420848e Merge branch 'develop' into hh_develop 2021-04-02 18:20:41 +08:00
vilet.yy fba58800a7 fix 2021-04-02 18:08:36 +08:00
vilet.yy c4a43c4392 add: need edit user password 2021-04-02 16:44:36 +08:00
vilet.yy 1153bd5ab6 fix: set redirect_uri 2021-04-02 09:43:18 +08:00
vilet.yy f732b0374c fix: ceshi 2021-04-02 09:23:11 +08:00
vilet.yy 0d97d7d4f0 add: educoder third party 2021-04-01 18:01:51 +08:00
34 changed files with 469 additions and 80 deletions

View File

@ -63,6 +63,7 @@ end
group :development do
gem 'prettier'
gem 'pry-rails', '~> 0.3.9'
gem 'rubocop', '~> 0.52.0'
gem 'solargraph', '~> 0.38.0'
gem 'awesome_print'

View File

@ -99,6 +99,7 @@ GEM
archive-zip (~> 0.10)
nokogiri (~> 1.8)
chunky_png (1.3.11)
coderay (1.1.3)
concurrent-ruby (1.1.6)
connection_pool (2.2.2)
crass (1.0.6)
@ -217,6 +218,11 @@ GEM
popper_js (1.16.0)
powerpack (0.1.2)
prettier (0.18.2)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
pry-rails (0.3.9)
pry (>= 0.10.4)
public_suffix (4.0.3)
puma (3.12.2)
raabro (1.4.0)
@ -469,6 +475,7 @@ DEPENDENCIES
parallel (~> 1.19, >= 1.19.1)
pdfkit
prettier
pry-rails (~> 0.3.9)
puma (~> 3.11)
rack-cors
rack-mini-profiler

View File

@ -337,7 +337,6 @@ class ApplicationController < ActionController::Base
User.current = user
end
end
# if !User.current.logged? && Rails.env.development?
# User.current = User.find 1
# end

View File

@ -1,13 +1,17 @@
module RegisterHelper
extend ActiveSupport::Concern
def autologin_register(username, email, password, platform= 'forge')
def autologin_register(username, email, password, platform= 'forge', need_edit_info = false)
result = {message: nil, user: nil}
user = User.new(admin: false, login: username, mail: email, type: "User")
user.password = password
user.platform = platform
user.activate
if need_edit_info
user.need_edit_info
else
user.activate
end
return unless user.valid?
@ -27,4 +31,31 @@ module RegisterHelper
result
end
def autosync_register_trustie(username, password, email, lastname="")
config = Rails.application.config_for(:configuration).symbolize_keys!
api_host = config[:sync_url]
return if api_host.blank?
url = "#{api_host}/api/v1/users/common"
sync_json = {
"mail": email,
"password": password,
"login": username,
"lastname": lastname
}.compact
uri = URI.parse(url)
if api_host
http = Net::HTTP.new(uri.hostname, uri.port)
if api_host.include?("https://")
http.use_ssl = true
end
http.send_request('POST', uri.path, sync_json.to_json, {'Content-Type' => 'application/json'})
end
end
end

View File

@ -1,5 +1,5 @@
class JournalsController < ApplicationController
before_action :require_login, except: [:index, :get_children_journals]
before_action :require_login, except: [:index, :get_children_journals,:beihang]
before_action :require_profile_completed, only: [:create]
before_action :set_issue
before_action :check_issue_permission
@ -13,8 +13,8 @@ class JournalsController < ApplicationController
parent_journals = total_journals.parent_journals.order("created_on desc")
@journals = parent_journals.order("created_on desc").page(@page).per(@limit)
@journals_size = parent_journals.size
end
def create
@ -52,6 +52,31 @@ class JournalsController < ApplicationController
end
end
def beihang
token = request.headers["HTTP_TOKEN"]
playod = JWT.decode(token,EducoderOauth.client_id)[0]
data = HashWithIndifferentAccess.new playod
notes = params[:content]
return normal_status(-1, "评论内容不能为空") if notes.blank?
return normal_status(-1, "验证失败") if data["user_id"].blank?
journal_params = {
journalized_id: @issue.id ,
journalized_type: "Issue",
user_id: data["user_id"] ,
notes: notes.to_s.strip,
parent_id: params[:parent_id]
}
journal = Journal.new journal_params
if journal.save
# @issue.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "journal")
render :json => { status: 0, message: "评论成功", id: journal.id}
# normal_status(0, "评论成功")
else
normal_status(-1, "评论失败")
end
end
def destroy
if @journal.destroy #如果有子评论,子评论删除吗?
Journal.children_journals(@journal.id).destroy_all
@ -110,4 +135,4 @@ class JournalsController < ApplicationController
normal_status(-1, "评论不存在")
end
end
end
end

View File

@ -2,6 +2,7 @@ class Oauth::BaseController < ActionController::Base
include RenderHelper
include LoginHelper
include ControllerRescueHandler
include LoggerHelper
# include LaboratoryHelper
skip_before_action :verify_authenticity_token
@ -11,6 +12,18 @@ class Oauth::BaseController < ActionController::Base
end
private
def tip_exception(status = -1, message)
raise Educoder::TipException.new(status, message)
end
def tip_show_exception(status = -2, message)
raise Educoder::TipException.new(status, message)
end
def tip_show(exception)
uid_logger("Tip show status is #{exception.status}, message is #{exception.message}")
render json: exception.tip_json
end
def session_user_id
# session[:user_id]
@ -48,4 +61,13 @@ class Oauth::BaseController < ActionController::Base
Rails.logger.info("[wechat] set session unionid: #{unionid}")
session[:unionid] = unionid
end
def session_edulogin
session[:edulogin]
end
def set_session_edulogin(login)
Rails.logger.info("[educoder] set sesstion edulogin: #{login}")
session[:edulogin] = login
end
end

View File

@ -1,4 +1,6 @@
class Oauth::EducoderController < Oauth::BaseController
include RegisterHelper
def bind
begin
login = params[:login]
@ -32,4 +34,41 @@ class Oauth::EducoderController < Oauth::BaseController
render_error(ex.message)
end
end
# 需要educoder那边设置回调地址
def create
begin
code = params['code'].to_s.strip
tip_exception("code不能为空") if code.blank?
new_user = false
result = EducoderOauth::Service.access_token(code)
result = EducoderOauth::Service.user_info(result[:access_token])
# 存在该用户
open_user = OpenUsers::Educoder.find_by(uid: result['login'])
if open_user.present? && open_user.user.present?
successful_authentication(open_user.user)
else
if current_user.blank? || !current_user.logged?
new_user = true
login = User.generate_login('E')
reg_result = autologin_register(login,"#{login}@forge.com", "Ec#{login}2021#", 'educoder', true)
if reg_result[:message].blank?
open_user = OpenUsers::Educoder.create!(user_id: reg_result[:user][:id], uid: result['login'], extra: result)
autosync_register_trustie(login, "Ec#{login}2021#", "#{login}@forge.com")
successful_authentication(open_user.user)
else
render_error(reg_result[:message])
end
else
OpenUsers::Educoder.create!(user: current_user, uid: result['login'], extra: result)
end
end
redirect_to root_path(new_user: new_user)
rescue Exception => ex
render_error(ex.message)
end
end
end

View File

@ -0,0 +1,34 @@
class Oauth::MulanossController < Oauth::BaseController
include RegisterHelper
# 需要educoder那边设置回调地址
def create
# user, new_user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params)
begin
code = params['code'].to_s.strip
tip_exception("code不能为空") if code.blank?
result = MulanossOauth::Service.access_token(code)
result = MulanossOauth::Service.user_info(result[:access_token])
# 存在该用户
open_user = OpenUsers::Mulan.find_by(uid: result['id'])
if open_user.present? && open_user.user.present?
successful_authentication(open_user.user)
else
if current_user.blank? || !current_user.logged?
login = User.generate_login('ML')
mail = result["email"].to_s.match(CustomRegexp::EMAIL).present? ? result["email"].to_s : "#{login}@mulan.com"
reg_result = autologin_register(login, mail , "M#{login}2021#", 'mulan', true)
open_user = OpenUsers::Mulan.create!(user_id: reg_result[:user][:id], uid: result['id'], extra: result)
successful_authentication(open_user.user)
else
OpenUsers::Mulan.create!(user: current_user, uid: result["id"])
end
end
redirect_to "/explore"
rescue Exception => ex
render_error(ex.message)
end
end
end

View File

@ -61,6 +61,7 @@ class OauthController < ApplicationController
login = params[:login]
email = params[:mail]
password = params[:password]
lastname = params[:lastname]
callback_url = params[:callback_url]
platform = params[:plathform] || 'educoder'
@ -72,8 +73,11 @@ class OauthController < ApplicationController
if result[:message].blank?
logger.info "[Oauth educoer] ====auto_register success"
user = User.find result[:user][:id]
successful_authentication(user)
user.update_column(:lastname, params[:lastname])
autosync_register_trustie(login, password, email, lastname)
OpenUsers::Educoder.create!(user: user, uid: user.login)
successful_authentication(user)
render json: { callback_url: callback_url }
# redirect_to callback_url

View File

@ -4,7 +4,7 @@ class ProjectsController < ApplicationController
include ProjectsHelper
include Acceleratorable
before_action :require_login, except: %i[index branches branches_slice group_type_list simple show fork_users praise_users watch_users recommend about menu_list]
before_action :require_login, except: %i[index branches branches_slice group_type_list simple show fork_users praise_users watch_users recommend about menu_list sonar_url]
before_action :require_profile_completed, only: [:create, :migrate]
before_action :load_repository, except: %i[index group_type_list migrate create recommend]
before_action :authorizate_user_can_edit_project!, only: %i[update]
@ -30,8 +30,8 @@ class ProjectsController < ApplicationController
def index
scope = current_user.logged? ? Projects::ListQuery.call(params, current_user.id) : Projects::ListQuery.call(params)
# @projects = kaminari_paginate(scope)
@projects = paginate scope.includes(:project_category, :project_language, :repository, :project_educoder, :owner, :project_units)
@projects = kaminari_paginate(scope.includes(:project_category, :project_language, :repository, :project_educoder, :owner, :project_units))
#@projects = paginate scope.includes(:project_category, :project_language, :repository, :project_educoder, :owner, :project_units)
category_id = params[:category_id]
@total_count =
@ -58,14 +58,14 @@ class ProjectsController < ApplicationController
def migrate
Projects::MigrateForm.new(mirror_params).validate!
@project =
@project =
if enable_accelerator?(mirror_params[:clone_addr])
source_clone_url = mirror_params[:clone_addr]
uid_logger("########## 已动加速器 ##########")
result = Gitea::Accelerator::MigrateService.call(mirror_params)
if result[:status] == :success
Rails.logger.info "########## 加速镜像成功 ########## "
Projects::MigrateService.call(current_user,
Projects::MigrateService.call(current_user,
mirror_params.merge(source_clone_url: source_clone_url,
clone_addr: accelerator_url(mirror_params[:repository_name])))
else
@ -117,7 +117,7 @@ class ProjectsController < ApplicationController
ActiveRecord::Base.transaction do
# TODO:
# 临时特殊处理修改website、lesson_url操作方法
if project_params.has_key?("website")
if project_params.has_key?("website")
@project.update(project_params)
elsif project_params.has_key?("default_branch")
@project.update(project_params)
@ -126,11 +126,11 @@ class ProjectsController < ApplicationController
}
Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params)
else
validate_params = project_params.slice(:name, :description,
validate_params = project_params.slice(:name, :description,
:project_category_id, :project_language_id, :private, :identifier)
Projects::UpdateForm.new(validate_params.merge(user_id: @project.user_id, project_identifier: @project.identifier)).validate!
private = @project.forked_from_project.present? ? !@project.forked_from_project.is_public : params[:private] || false
new_project_params = project_params.except(:private).merge(is_public: !private)
@ -225,6 +225,14 @@ class ProjectsController < ApplicationController
end
end
def sonar_url
token = request.headers["HTTP_SONAR_TOKEN"]
playod = JWT.decode(token,EducoderOauth.client_id)[0]
data = HashWithIndifferentAccess.new playod
return normal_status(-1, "sonar_url不能为空") if data["sonar_url"].blank?
@project.update(sonar_url:data["sonar_url"])
render :json => { status: 0, message: "更新成功"}
end
private
def project_params

View File

@ -347,7 +347,7 @@ class RepositoriesController < ApplicationController
local_requests = PullRequest.new(local_params.merge(user_id: current_user.try(:id), project_id: @project.id, issue_id: @pull_issue.id))
if local_requests.save
gitea_request = Gitea::PullRequest::CreateService.new(current_user.try(:gitea_token), @owner.login, @project.try(:identifier), requests_params).call
if gitea_request[:status] == :success && local_requests.update_attributes(gpid: gitea_request["body"]["number"])
if gitea_request[:status] == :success && local_requests.update_attributes(gitea_number: gitea_request["body"]["number"])
local_requests.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "create")
end
end

View File

@ -4,6 +4,7 @@ class SettingsController < ApplicationController
get_add_menu
get_common_menu
get_personal_menu
get_third_party
get_top_system_notification
end
@ -40,6 +41,14 @@ class SettingsController < ApplicationController
end
end
def get_third_party
@third_party = []
@third_party << {
name: 'mulan',
url: MulanossOauth.oauth_url
}
end
def get_top_system_notification
@top_system_notification = SystemNotification.is_top.first
end

View File

@ -273,7 +273,7 @@ class UsersController < ApplicationController
interactor = Gitea::User::UpdateInteractor.call(user.login, sync_params)
if interactor.success?
user.update!(password: params[:password], mail: params[:email], status: User::STATUS_EDIT_INFO)
user.update!(password: params[:password], mail: params[:email], status: User::STATUS_ACTIVE)
render_ok
else
render_error(interactor.error)

View File

@ -0,0 +1,18 @@
module EducoderOauth
class << self
attr_accessor :client_id, :client_secret, :base_url, :redirect_uri
def logger
@_logger ||= STDOUT
end
def logger=(l)
@_logger = l
end
def oauth_url
"#{base_url}/oauth2?call_url=/oauth/authorize?client_id=#{client_id}&redirect_uri=#{URI.encode_www_form_component(redirect_uri)}&response_type=code"
end
end
end

View File

@ -0,0 +1,37 @@
require 'oauth2'
module EducoderOauth::Service
module_function
def request(method, url, params)
begin
Rails.logger.info("[EducoderOauth] [#{method.to_s.upcase}] #{url} || #{params}")
client = Faraday.new(url: EducoderOauth.base_url)
response = client.public_send(method, url, params)
result = JSON.parse(response.body)
Rails.logger.info("[EducoderOauth] [#{response.status}] #{result}")
result
rescue Exception => e
raise Educoder::TipException.new(e.message)
end
end
def access_token(code)
begin
Rails.logger.info("[EducoderOauth] [code] #{code} ")
Rails.logger.info("[EducoderOauth] [redirect_uri] #{EducoderOauth.redirect_uri} ")
client = OAuth2::Client.new(EducoderOauth.client_id, EducoderOauth.client_secret, site: EducoderOauth.base_url)
result = client.auth_code.get_token(code, redirect_uri: EducoderOauth.redirect_uri).to_hash
return result
rescue Exception => e
raise Educoder::TipException.new(e.message)
end
end
def user_info(access_token)
request(:get, '/api/users/info.json', {access_token: access_token})
end
end

View File

@ -0,0 +1,18 @@
module MulanossOauth
class << self
attr_accessor :client_id, :client_secret, :base_url, :redirect_uri
def logger
@_logger ||= STDOUT
end
def logger=(l)
@_logger = l
end
def oauth_url
"https://portal.mulanos.cn/api/auth/oschina?client_id=#{client_id}&redirect_uri=#{URI.encode_www_form_component(redirect_uri)}&response_type=code"
end
end
end

View File

@ -0,0 +1,38 @@
require 'oauth2'
module MulanossOauth::Service
module_function
def request(method, url, params)
begin
Rails.logger.info("[MulanossOauth] [#{method.to_s.upcase}] #{url} || #{params}")
client = Faraday.new(url: MulanossOauth.base_url)
response = client.public_send(method, url, params)
result = JSON.parse(response.body)
Rails.logger.info("[MulanossOauth] [#{response.status}] #{result}")
result
rescue Exception => e
raise Educoder::TipException.new(e.message)
end
end
def access_token(code)
begin
Rails.logger.info("[MulanossOauth] [code] #{code} ")
Rails.logger.info("[MulanossOauth] [redirect_uri] #{MulanossOauth.redirect_uri} ")
client = OAuth2::Client.new(MulanossOauth.client_id, MulanossOauth.client_secret, site: MulanossOauth.base_url, token_url:"/action/openapi/token")
result = client.auth_code.get_token(code, redirect_uri: MulanossOauth.redirect_uri).to_hash
Rails.logger.info("[MulanossOauth] [GetToken] #{result[:access_token]}")
return result
rescue Exception => e
raise Educoder::TipException.new(e.message)
end
end
def user_info(access_token)
request(:get, '/action/openapi/user', {access_token: access_token})
end
end

View File

@ -39,6 +39,6 @@ class Gitea::Pull < Gitea::Base
serialize :conflicted_files, Array
belongs_to :pull_request, class_name: '::PullRequest', foreign_key: :id, primary_key: :gitea_number, optional: true
belongs_to :pull_request, class_name: '::PullRequest', foreign_key: :id, primary_key: :gitea_id, optional: true
end

View File

@ -0,0 +1,27 @@
# == Schema Information
#
# Table name: open_users
#
# id :integer not null, primary key
# user_id :integer
# type :string(255)
# uid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# extra :text(65535)
#
# Indexes
#
# index_open_users_on_type_and_uid (type,uid) UNIQUE
# index_open_users_on_user_id (user_id)
#
class OpenUsers::Mulan < OpenUser
def nickname
extra&.[]('name')
end
def en_type
'mulan'
end
end

View File

@ -1,4 +1,3 @@
# == Schema Information
#
# Table name: projects
@ -38,8 +37,6 @@
# rep_identifier :string(255)
# project_category_id :integer
# project_language_id :integer
# license_id :integer
# ignore_id :integer
# praises_count :integer default("0")
# watchers_count :integer default("0")
# issues_count :integer default("0")
@ -53,9 +50,10 @@
# open_devops_count :integer default("0")
# recommend :boolean default("0")
# platform :integer default("0")
# license_id :integer
# ignore_id :integer
# default_branch :string(255) default("master")
# website :string(255)
# order_index :integer default("0")
# lesson_url :string(255)
#
# Indexes
@ -78,7 +76,6 @@
#
class Project < ApplicationRecord
include Matchable
include Publicable

View File

@ -37,7 +37,7 @@ class PullRequest < ApplicationRecord
has_many :pull_request_tags, foreign_key: :pull_request_id
has_many :project_trends, as: :trend, dependent: :destroy
has_many :attachments, as: :container, dependent: :destroy
has_one :gitea_pull, foreign_key: :id, primary_key: :gitea_number, class_name: 'Gitea::Pull'
has_one :gitea_pull, foreign_key: :id, primary_key: :gitea_id, class_name: 'Gitea::Pull'
scope :merged_and_closed, ->{where.not(status: 0)}
scope :opening, -> {where(status: 0)}

View File

@ -1,19 +1,19 @@
# == Schema Information
#
# Table name: tokens
#
# id :integer not null, primary key
# user_id :integer default("0"), not null
# action :string(30) default(""), not null
# value :string(40) default(""), not null
# created_on :datetime not null
#
# Indexes
#
# index_tokens_on_user_id (user_id)
# tokens_value (value) UNIQUE
#
# == Schema Information
#
# Table name: tokens
#
# id :integer not null, primary key
# user_id :integer default("0"), not null
# action :string(30) default(""), not null
# value :string(40) default(""), not null
# created_on :datetime not null
#
# Indexes
#
# index_tokens_on_user_id (user_id)
# tokens_value (value) UNIQUE
#
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -76,7 +76,7 @@ class Token < ActiveRecord::Base
# Returns the active user who owns the key for the given action
def self.find_active_user(action, key, validity_days=nil)
user = find_user(action, key, validity_days)
if user && user.active?
if user && (user.active? || user.need_edit_info?)
user
end
end

View File

@ -83,6 +83,7 @@ class User < Owner
STATUS_ACTIVE = 1
STATUS_REGISTERED = 2
STATUS_LOCKED = 3
STATUS_EDIT_INFO = 4
# tpi tpm权限控制
EDU_ADMIN = 1 # 超级管理员
@ -113,7 +114,7 @@ class User < Owner
# trustie: 来自Trustie平台
# forge: 平台本身注册的用户
# military: 军科的用户
enumerize :platform, in: [:forge, :educoder, :trustie, :military], default: :forge, scope: :shallow
enumerize :platform, in: [:forge, :educoder, :trustie, :military, :mulan], default: :forge, scope: :shallow
belongs_to :laboratory, optional: true
has_many :composes, dependent: :destroy
@ -153,7 +154,7 @@ class User < Owner
# 项目
has_many :applied_projects, dependent: :destroy
has_many :operate_applied_transfer_projects, class_name: 'AppliedTransferProject', dependent: :destroy
has_many :members, dependent: :destroy
has_many :members, dependent: :destroy
has_many :team_users, dependent: :destroy
has_many :teams, through: :team_users
@ -167,12 +168,12 @@ class User < Owner
has_many :pinned_projects, dependent: :destroy
has_many :is_pinned_projects, through: :pinned_projects, source: :project
accepts_nested_attributes_for :is_pinned_projects
has_many :issues, dependent: :destroy, foreign_key: :author_id
has_many :issues, dependent: :destroy, foreign_key: :author_id
has_many :pull_requests, dependent: :destroy
has_many :public_keys, class_name: "Gitea::PublicKey",primary_key: :gitea_uid, foreign_key: :owner_id, dependent: :destroy
# Groups and active users
scope :active, lambda { where(status: STATUS_ACTIVE) }
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_INFO]) }
scope :like, lambda { |keywords|
sql = "CONCAT(lastname, firstname) LIKE :search OR nickname LIKE :search OR login LIKE :search OR mail LIKE :search OR nickname LIKE :search"
where(sql, :search => "%#{keywords.split(" ").join('|')}%") unless keywords.blank?
@ -204,14 +205,14 @@ class User < Owner
validate :validate_password_length
# 用户参与的所有项目
def full_member_projects
def full_member_projects
normal_projects = Project.members_projects(self.id).to_sql
org_projects = Project.joins(teams: :team_users).where(team_users: {user_id: self.id}).to_sql
return Project.from("( #{ normal_projects} UNION #{ org_projects } ) AS projects").distinct
end
# 用户管理的所有项目
def full_admin_projects
def full_admin_projects
normal_projects = Project.joins(members: :roles).where(roles: {name: 'Manager'}, members: {user_id: self.id}).to_sql
org_projects = Project.joins(teams: :team_users).where(teams: {authorize: %w(admin owner)}, team_users: {user_id: self.id}).to_sql
return Project.from("( #{ normal_projects} UNION #{ org_projects } ) AS projects").distinct
@ -220,7 +221,7 @@ class User < Owner
def name
login
end
# 删除自动登录的token一旦退出下次会提示需要登录
def delete_autologin_token(value)
Token.where(:user_id => id, :action => 'autologin', :value => value).delete_all
@ -410,6 +411,10 @@ class User < Owner
status == STATUS_LOCKED
end
def need_edit_info?
status == STATUS_EDIT_INFO
end
def activate
self.status = STATUS_ACTIVE
end
@ -422,6 +427,10 @@ class User < Owner
self.status = STATUS_LOCKED
end
def need_edit_info
self.status = STATUS_EDIT_INFO
end
def activate!
update_attribute(:status, STATUS_ACTIVE)
end
@ -434,6 +443,10 @@ class User < Owner
update_attribute(:status, STATUS_LOCKED)
end
def need_edit_info!
update_attribute(:status, STATUS_EDIT_INFO)
end
# 课程用户身份
def course_identity(course)
if !logged?

View File

@ -1,14 +1,19 @@
<div class="indexPanel">
<p class="indexTitle">完善信息,进入比赛</p>
<p class="indexTitle">平台已检测到您的如下信息,完善即可进入比赛</p>
<div class="indexInfos">
<%= form_tag('', method: :post, id: 'oauth_form', class: 'form-inline search-form flex-1', remote: true) do %>
<%= hidden_field_tag 'callback_url', params[:callback_url] %>
<div class="indexInfo">
<span>用户名:</span>
<%= text_field_tag :login, params[:login], placeholder: '请输入用户名', readonly: true, id: 'login' %>
<span>登录名:</span>
<%= text_field_tag :login, params[:login], placeholder: '请输入登录名', readonly: true, id: 'login' %>
<p class="checkInfo loginCheck"><span></span></p>
</div>
<div class="indexInfo">
<span>用户名称:</span>
<%= text_field_tag :lastname, params[:lastname], placeholder: '登录平台后显示的用户名称', maxlength: 40, id: 'lastname' %>
<p class="checkInfo lastnameCheck"><span></span></p>
</div>
<div class="indexInfo">
<span>邮箱:</span>
<%= text_field_tag :mail, params[:mail], placeholder: '请输入绑定邮箱', maxlength: 40, id: 'email' %>
@ -16,7 +21,7 @@
</div>
<div class="indexInfo">
<span>密码:</span>
<%= password_field_tag :password, '', placeholder: '输入账号密码', id: 'password' %>
<%= password_field_tag :password, '', placeholder: '输入EduCoder账号密码或新的密码',maxlength: 15, id: 'password' %>
<p class="checkInfo passwordCheck"><span></span></p>
</div>
<div class="indexBtn">
@ -29,6 +34,7 @@
function submitdata(){
var login = $("#login").val();
var email = $("#email").val();
var lastname = $("#lastname").val();
var password = $("#password").val();
if(!login){
@ -37,6 +43,12 @@
}else{
$(".loginCheck span").html("");
}
if(!lastname){
$(".lastnameCheck span").html("请输入用户名称");
return;
}else{
$(".lastnameCheck span").html("");
}
if(!email){
$(".emailCheck span").html("请输入绑定的邮箱");
return;

View File

@ -1,4 +1,4 @@
json.total_count @total_count
json.total_count @projects.total_count
json.projects @projects do |project|
# json.partial! "/projects/project_detail", project: project
json.id project.id

View File

@ -14,7 +14,7 @@ json.issues do
pr = issue.pull_request
json.pull_request_id pr.id
json.pull_request_status pr.status
json.pull_request_head pr.head
json.pull_request_head pr.head
json.pull_request_base pr.base
json.pull_request_staus pr.status == 1 ? "merged" : (pr.status == 2 ? "closed" : "open")
json.is_original pr.is_original
@ -22,9 +22,10 @@ json.issues do
json.fork_project_identifier pr&.fork_project&.identifier
json.fork_project_user pr&.fork_project&.owner.try(:login)
json.id issue.id
json.name issue.subject
json.description issue.description
json.pr_time time_from_now(pr.status == 1 ? pr.updated_at : issue.updated_on)
json.assign_user_name issue.get_assign_user.try(:show_real_name)
json.assign_user_login issue.get_assign_user.try(:login)
@ -37,4 +38,3 @@ json.issues do
json.issue_tags issue.get_issue_tags
end
end

View File

@ -1,6 +1,7 @@
json.content @project.content
json.website @project.website
json.lesson_url @project.lesson_url
json.sonar_url @project.sonar_url
json.identifier render_identifier(@project)
json.invite_code @project.invite_code
json.name @project.name

View File

@ -56,6 +56,7 @@ json.setting do
end
json.common @common
json.third_party @third_party
if @top_system_notification.present?
json.system_notification do

View File

@ -10,6 +10,7 @@ json.is_teacher @user.user_extension&.teacher?
json.user_identity @user.identity
json.tidding_count 0
json.user_phone_binded @user.phone.present?
json.need_edit_info @user.need_edit_info?
# json.phone @user.phone
# json.email @user.mail
json.profile_completed @user.profile_is_completed?
@ -22,4 +23,4 @@ json.city @user.city
json.custom_department @user.custom_department
json.description @user.description
json.(@user, :show_email, :show_department, :show_location)
json.message_unread_total @message_unread_total
json.message_unread_total @message_unread_total

View File

@ -44,6 +44,11 @@ default: &default
cate_id: '-1'
callback_url: 'callback_url'
signature_key: 'test12345678'
educoder:
client_id: 'e9ce4d5ba1698d6f7d01d8ee2959776c7a6d743ebe94da2341e288fd2fbf60aa'
client_secret: '6ff84dd75eddd859c5bd0e7a791b58bc5ad1ba4fbb30bc9db37cb0baf9f33012'
base_url: 'https://test-data.educoder.net'
redirect_uri: 'https://testforgeplus.trustie.net/api/auth/educoder/callback'
gitea:
access_key_id: ''

View File

@ -0,0 +1,16 @@
oauth_config = {}
begin
config = Rails.application.config_for(:configuration)
oauth_config = config.dig('oauth', 'educoder')
raise 'oauth educoder config missing' if oauth_config.blank?
rescue => ex
raise ex if Rails.env.production?
puts %Q{\033[33m [warning] wechat oauth config or configuration.yml missing,
please add it or execute 'cp config/configuration.yml.example config/configuration.yml' \033[0m}
end
EducoderOauth.client_id = oauth_config['client_id']
EducoderOauth.client_secret = oauth_config['client_secret']
EducoderOauth.base_url = oauth_config['base_url']
EducoderOauth.redirect_uri = oauth_config['redirect_uri']

View File

@ -0,0 +1,16 @@
oauth_config = {}
begin
config = Rails.application.config_for(:configuration)
oauth_config = config.dig('oauth', 'mulan')
raise 'oauth educoder config missing' if oauth_config.blank?
rescue => ex
raise ex if Rails.env.production?
puts %Q{\033[33m [warning] wechat oauth config or configuration.yml missing,
please add it or execute 'cp config/configuration.yml.example config/configuration.yml' \033[0m}
end
MulanossOauth.client_id = oauth_config['client_id']
MulanossOauth.client_secret = oauth_config['client_secret']
MulanossOauth.base_url = oauth_config['base_url']
MulanossOauth.redirect_uri = oauth_config['redirect_uri']

View File

@ -138,6 +138,9 @@ Rails.application.routes.draw do
resources :issues, except: [:index, :new,:create, :update, :edit, :destroy] do
resources :journals, only: [:index, :create, :destroy, :edit, :update] do
collection do
post :beihang
end
member do
get :get_children_journals
end
@ -264,29 +267,29 @@ Rails.application.routes.draw do
scope module: :users do
resources :applied_messages, only: [:index]
resources :applied_transfer_projects, only: [:index] do
member do
resources :applied_transfer_projects, only: [:index] do
member do
post :accept
post :refuse
end
end
resources :applied_projects, only: [:index] do
member do
resources :applied_projects, only: [:index] do
member do
post :accept
post :refuse
end
end
resources :headmaps, only: [:index]
resources :is_pinned_projects, only: [:index, :update] do
collection do
post :pin
resources :is_pinned_projects, only: [:index, :update] do
collection do
post :pin
end
end
resources :statistics, only: [:index] do
collection do
get :activity
get :develop
get :role
resources :statistics, only: [:index] do
collection do
get :activity
get :develop
get :role
get :major
end
end
@ -302,7 +305,7 @@ Rails.application.routes.draw do
# resource :unread_message_info, only: [:show]
# 通知中心
resources :messages, only: [:index, :create] do
resources :messages, only: [:index, :create] do
collection do
post :read
@ -358,6 +361,7 @@ Rails.application.routes.draw do
get '/auth/qq/callback', to: 'oauth/qq#create'
get '/auth/wechat/callback', to: 'oauth/wechat#create'
get '/auth/educoder/callback', to: 'oauth/educoder#create'
get '/auth/mulanoss/callback', to: 'oauth/mulanoss#create'
resource :bind_user, only: [:create]
resources :hot_keywords, only: [:index]
@ -418,6 +422,7 @@ Rails.application.routes.draw do
get :branches
get :branches_slice
get :simple
post :sonar_url
get :watchers, to: 'projects#watch_users'
get :stargazers, to: 'projects#praise_users'
get :members, to: 'projects#fork_users'
@ -578,15 +583,15 @@ Rails.application.routes.draw do
scope module: :projects do
resources :teams, only: [:index, :create, :destroy]
resources :project_units, only: [:index, :create]
resources :applied_transfer_projects, only: [:create] do
collection do
resources :applied_transfer_projects, only: [:create] do
collection do
get :organizations
post :cancel
end
end
resources :webhooks, except: [:show, :new] do
member do
get :tasks
resources :webhooks, except: [:show, :new] do
member do
get :tasks
post :test
end
end
@ -670,9 +675,9 @@ Rails.application.routes.draw do
resources :project_licenses
resources :project_ignores
resources :reversed_keywords
resources :system_notifications
resources :message_templates, only: [:index, :edit, :update] do
collection do
resources :system_notifications
resources :message_templates, only: [:index, :edit, :update] do
collection do
get :init_data
end
end

View File

@ -0,0 +1,5 @@
class AddSonarUrlToProjects < ActiveRecord::Migration[5.2]
def change
add_column :projects, :sonar_url, :string
end
end