├── .gitmodules ├── public ├── assets │ ├── js │ │ └── login.js │ ├── public │ │ ├── img │ │ │ ├── blue.png │ │ │ └── blue@2x.png │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── css │ │ │ └── sticky-footer-navbar.css │ ├── fonts │ │ ├── bk_font │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── source-sans-pro-300.woff2 │ │ └── source-sans-pro-600.woff2 │ ├── materialize │ │ ├── font │ │ │ ├── Material_Icons.woff2 │ │ │ ├── roboto │ │ │ │ ├── Roboto-Bold.ttf │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ ├── Roboto-Bold.woff │ │ │ │ ├── Roboto-Bold.woff2 │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ ├── Roboto-Light.woff │ │ │ │ ├── Roboto-Light.woff2 │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ ├── Roboto-Medium.woff │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ ├── Roboto-Thin.woff │ │ │ │ ├── Roboto-Thin.woff2 │ │ │ │ ├── Roboto-Medium.woff2 │ │ │ │ ├── Roboto-Regular.woff │ │ │ │ └── Roboto-Regular.woff2 │ │ │ └── material-design-icons │ │ │ │ ├── Material-Design-Icons.eot │ │ │ │ ├── Material-Design-Icons.ttf │ │ │ │ ├── Material-Design-Icons.woff │ │ │ │ ├── Material-Design-Icons.woff2 │ │ │ │ └── cd-top-arrow.svg │ │ └── css │ │ │ └── style.css │ └── css │ │ ├── noscript.css │ │ └── ie9.css ├── theme │ └── material │ │ ├── js │ │ └── shake.js │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ ├── bower.json │ │ │ └── LICENSE.md │ │ ├── css │ │ ├── images │ │ │ ├── arrow.png │ │ │ └── bg │ │ │ │ ├── red.jpg │ │ │ │ ├── amber.jpg │ │ │ │ ├── amber2.jpg │ │ │ │ ├── amber3.jpg │ │ │ │ ├── amber4.jpg │ │ │ │ ├── brand.jpg │ │ │ │ ├── green.jpg │ │ │ │ ├── purple.jpg │ │ │ │ └── teal.jpg │ │ ├── fonts │ │ │ ├── MaterialIcons-Regular.eot │ │ │ ├── MaterialIcons-Regular.ttf │ │ │ ├── MaterialIcons-Regular.woff │ │ │ ├── MaterialIcons-Regular.woff2 │ │ │ ├── flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 │ │ │ └── README.md │ │ └── icon.css │ │ ├── editor │ │ ├── images │ │ │ ├── loading.gif │ │ │ ├── logos │ │ │ │ ├── vi.png │ │ │ │ ├── editormd-logo-16x16.png │ │ │ │ ├── editormd-logo-24x24.png │ │ │ │ ├── editormd-logo-32x32.png │ │ │ │ ├── editormd-logo-48x48.png │ │ │ │ ├── editormd-logo-57x57.png │ │ │ │ ├── editormd-logo-64x64.png │ │ │ │ ├── editormd-logo-72x72.png │ │ │ │ ├── editormd-logo-96x96.png │ │ │ │ ├── editormd-favicon-16x16.ico │ │ │ │ ├── editormd-favicon-24x24.ico │ │ │ │ ├── editormd-favicon-32x32.ico │ │ │ │ ├── editormd-favicon-48x48.ico │ │ │ │ ├── editormd-favicon-64x64.ico │ │ │ │ ├── editormd-logo-114x114.png │ │ │ │ ├── editormd-logo-120x120.png │ │ │ │ ├── editormd-logo-144x144.png │ │ │ │ ├── editormd-logo-180x180.png │ │ │ │ ├── editormd-logo-240x240.png │ │ │ │ └── editormd-logo-320x320.png │ │ │ ├── loading@2x.gif │ │ │ └── loading@3x.gif │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── editormd-logo.eot │ │ │ ├── editormd-logo.ttf │ │ │ ├── editormd-logo.woff │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ └── editormd-logo.svg │ │ ├── lib │ │ │ ├── codemirror │ │ │ │ ├── theme │ │ │ │ │ ├── ambiance-mobile.css │ │ │ │ │ ├── neat.css │ │ │ │ │ ├── elegant.css │ │ │ │ │ ├── neo.css │ │ │ │ │ └── eclipse.css │ │ │ │ ├── addon │ │ │ │ │ ├── display │ │ │ │ │ │ └── fullscreen.css │ │ │ │ │ ├── search │ │ │ │ │ │ └── matchesonscrollbar.css │ │ │ │ │ ├── fold │ │ │ │ │ │ └── foldgutter.css │ │ │ │ │ ├── dialog │ │ │ │ │ │ └── dialog.css │ │ │ │ │ ├── hint │ │ │ │ │ │ └── show-hint.css │ │ │ │ │ ├── mode │ │ │ │ │ │ └── multiplex_test.js │ │ │ │ │ ├── lint │ │ │ │ │ │ ├── yaml-lint.js │ │ │ │ │ │ ├── json-lint.js │ │ │ │ │ │ └── css-lint.js │ │ │ │ │ ├── edit │ │ │ │ │ │ └── trailingspace.js │ │ │ │ │ └── tern │ │ │ │ │ │ └── worker.js │ │ │ │ ├── mode │ │ │ │ │ ├── tiddlywiki │ │ │ │ │ │ └── tiddlywiki.css │ │ │ │ │ ├── ruby │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tiki │ │ │ │ │ │ └── tiki.css │ │ │ │ │ └── diff │ │ │ │ │ │ └── diff.js │ │ │ │ ├── bower.json │ │ │ │ ├── README.md │ │ │ │ ├── package.json │ │ │ │ └── LICENSE │ │ │ └── jquery.flowchart.min.js │ │ ├── .gitignore │ │ └── LICENSE │ │ ├── images │ │ ├── samples │ │ │ ├── landscape.jpg │ │ │ └── portrait.jpg │ │ └── users │ │ │ ├── avatar-001.jpg │ │ │ └── trafficbar.png │ │ └── assets │ │ ├── js │ │ ├── header.js │ │ ├── modal.js │ │ └── form-textarea.js │ │ └── js-project │ │ ├── ui-snackbar.js │ │ └── ui-progress.js ├── favicon.ico ├── images │ ├── bg.jpg │ ├── node.gif │ ├── qqpay.jpg │ ├── Avatar.jpg │ ├── alipay.jpg │ ├── authlogo.jpg │ ├── c_ios_1.jpg │ ├── c_ios_2.jpg │ ├── c_ios_3.jpg │ ├── c_ios_4.jpg │ ├── c_mac_1.png │ ├── c_mac_2.png │ ├── c_mac_3.png │ ├── c_mac_4.png │ ├── c_mac_5.png │ ├── c_mac_6.png │ ├── c_mac_7.png │ ├── c_win_1.png │ ├── c_win_2.png │ ├── c_win_3.png │ ├── c_win_4.png │ ├── c_win_5.png │ ├── c_win_6.png │ ├── c_win_7.png │ ├── c_win_8.png │ ├── overlay.png │ ├── weixin.jpg │ ├── c-linux-1.png │ ├── c-linux-2.png │ ├── c-linux-3.png │ ├── c-linux-4.png │ ├── c-linux-5.png │ ├── c-linux-6.png │ ├── c-linux-7.png │ ├── email_nrcy.jpg │ ├── logo_white.png │ ├── prefix │ │ ├── 不丹.png │ │ ├── 东帝汶.png │ │ ├── 中国.png │ │ ├── 中非.png │ │ ├── 丹麦.png │ │ ├── 乌克兰.png │ │ ├── 乌干达.png │ │ ├── 乌拉圭.png │ │ ├── 乍得.png │ │ ├── 也门.png │ │ ├── 以色列.png │ │ ├── 伊拉克.png │ │ ├── 伊朗.png │ │ ├── 伯利兹.png │ │ ├── 佛得角.png │ │ ├── 俄罗斯.png │ │ ├── 冈比亚.png │ │ ├── 冰岛.png │ │ ├── 刚果.png │ │ ├── 利比亚.png │ │ ├── 加拿大.png │ │ ├── 加纳.png │ │ ├── 加蓬.png │ │ ├── 匈牙利.png │ │ ├── 南苏丹.png │ │ ├── 南非洲.png │ │ ├── 卡塔尔.png │ │ ├── 卢旺达.png │ │ ├── 卢森堡.png │ │ ├── 印度.png │ │ ├── 叙利亚.png │ │ ├── 古巴.png │ │ ├── 台湾.png │ │ ├── 吉布提.png │ │ ├── 喀麦隆.png │ │ ├── 图瓦卢.png │ │ ├── 土耳其.png │ │ ├── 圣普.png │ │ ├── 圭亚那.png │ │ ├── 埃及.png │ │ ├── 塞舌尔.png │ │ ├── 墨西哥.png │ │ ├── 多哥.png │ │ ├── 奥地利.png │ │ ├── 安巴.png │ │ ├── 安道尔.png │ │ ├── 尼日尔.png │ │ ├── 尼泊尔.png │ │ ├── 巴哈马.png │ │ ├── 巴拉圭.png │ │ ├── 巴拿马.png │ │ ├── 巴林.png │ │ ├── 巴西.png │ │ ├── 布隆迪.png │ │ ├── 希腊.png │ │ ├── 帕劳.png │ │ ├── 德国.png │ │ ├── 意大利.png │ │ ├── 挪威.png │ │ ├── 摩洛哥.png │ │ ├── 摩纳哥.png │ │ ├── 文莱.png │ │ ├── 斐济.png │ │ ├── 新加坡.png │ │ ├── 新西兰.png │ │ ├── 日本.png │ │ ├── 智利.png │ │ ├── 朝鲜.png │ │ ├── 柬埔寨.png │ │ ├── 比利时.png │ │ ├── 汤加.png │ │ ├── 法国.png │ │ ├── 波兰.png │ │ ├── 波黑.png │ │ ├── 泰国.png │ │ ├── 海地.png │ │ ├── 爱尔兰.png │ │ ├── 牙买加.png │ │ ├── 特多.png │ │ ├── 瑙鲁.png │ │ ├── 瑞典.png │ │ ├── 瑞士.png │ │ ├── 科威特.png │ │ ├── 科摩罗.png │ │ ├── 科索沃.png │ │ ├── 秘鲁.png │ │ ├── 突尼斯.png │ │ ├── 立陶宛.png │ │ ├── 索马里.png │ │ ├── 约旦.png │ │ ├── 缅甸.png │ │ ├── 美国.png │ │ ├── 老挝.png │ │ ├── 肯尼亚.png │ │ ├── 芬兰.png │ │ ├── 苏丹.png │ │ ├── 苏里南.png │ │ ├── 英国.png │ │ ├── 荷兰.png │ │ ├── 莱索托.png │ │ ├── 菲律宾.png │ │ ├── 萨摩亚.png │ │ ├── 葡萄牙.png │ │ ├── 蒙古.png │ │ ├── 西班牙.png │ │ ├── 贝宁.png │ │ ├── 赞比亚.png │ │ ├── 越南.png │ │ ├── 阿富汗.png │ │ ├── 阿曼.png │ │ ├── 阿根廷.png │ │ ├── 阿联酋.png │ │ ├── 韩国.png │ │ ├── 香港.png │ │ ├── 马其顿.png │ │ ├── 马拉维.png │ │ ├── 马耳他.png │ │ ├── 马里.png │ │ ├── 黎巴嫩.png │ │ ├── 黑山.png │ │ ├── v2ray.png │ │ ├── 乌兹别克斯坦.png │ │ ├── 亚美尼亚.png │ │ ├── 保加利亚.png │ │ ├── 克罗地亚.png │ │ ├── 几内亚比绍.png │ │ ├── 列支敦士登.png │ │ ├── 刚果(金).png │ │ ├── 利比里亚.png │ │ ├── 博茨瓦纳.png │ │ ├── 印度尼西亚.png │ │ ├── 危地马拉.png │ │ ├── 厄瓜多尔.png │ │ ├── 厄立特里亚.png │ │ ├── 吉尔吉斯斯坦.png │ │ ├── 哈萨克斯坦.png │ │ ├── 哥伦比亚.png │ │ ├── 哥斯达黎加.png │ │ ├── 土库曼斯坦.png │ │ ├── 圣卢西亚.png │ │ ├── 圣马力诺.png │ │ ├── 坦桑尼亚.png │ │ ├── 埃塞俄比亚.png │ │ ├── 基里巴斯.png │ │ ├── 塔吉克斯坦.png │ │ ├── 塞内加尔.png │ │ ├── 塞尔维亚.png │ │ ├── 塞拉利昂.png │ │ ├── 塞浦路斯.png │ │ ├── 多米尼克.png │ │ ├── 多米尼加.png │ │ ├── 委内瑞拉.png │ │ ├── 孟加拉国.png │ │ ├── 密克罗尼西亚.png │ │ ├── 尼加拉瓜.png │ │ ├── 尼日利亚.png │ │ ├── 巴基斯坦.png │ │ ├── 巴巴多斯.png │ │ ├── 布基纳法索.png │ │ ├── 所罗门岛.png │ │ ├── 拉脱维亚.png │ │ ├── 捷克共和国.png │ │ ├── 摩尔多瓦.png │ │ ├── 斯威士兰.png │ │ ├── 斯洛伐克.png │ │ ├── 斯洛文尼亚.png │ │ ├── 斯里兰卡.png │ │ ├── 格林纳达.png │ │ ├── 格鲁吉亚.png │ │ ├── 梵蒂冈城.png │ │ ├── 毛里塔尼亚.png │ │ ├── 毛里求斯.png │ │ ├── 沙特阿拉伯.png │ │ ├── 津巴布韦.png │ │ ├── 洪都拉斯.png │ │ ├── 澳大利亚.png │ │ ├── 爱沙尼亚.png │ │ ├── 玻利维亚.png │ │ ├── 瓦努阿图.png │ │ ├── 白俄罗斯.png │ │ ├── 科特迪瓦.png │ │ ├── 纳米比亚.png │ │ ├── 罗马尼亚.png │ │ ├── 莫桑比克.png │ │ ├── 萨尔瓦多.png │ │ ├── 赤道几内亚.png │ │ ├── 阿塞拜疆.png │ │ ├── 阿尔及利亚.png │ │ ├── 阿尔巴尼亚.png │ │ ├── 马尔代夫.png │ │ ├── 马来西亚.png │ │ ├── 马绍尔群岛.png │ │ ├── 马达加斯加.png │ │ ├── unknown.png │ │ ├── 圣基茨和尼维斯.png │ │ ├── 巴布亚新几内亚.png │ │ └── 圣文森特和格林纳丁斯.png │ ├── c_android_1.jpg │ ├── c_android_2.jpg │ ├── c_android_3.jpg │ ├── c_android_4.jpg │ ├── c_android_5.jpg │ ├── c_android_6.jpg │ ├── c_android_7.jpg │ └── c_android_8.jpg ├── vuedist │ └── favicon.ico ├── index.php └── robots.txt ├── storage └── framework │ ├── views │ └── .gitignore │ └── smarty │ ├── cache │ └── .gitignore │ └── compile │ └── .gitignore ├── .gitattributes ├── composer.phar ├── app ├── Services │ ├── Cache.php │ ├── Auth │ │ ├── File.php │ │ ├── Base.php │ │ ├── Token.php │ │ └── JwtToken.php │ ├── Mail │ │ ├── Base.php │ │ ├── NullMail.php │ │ └── Ses.php │ ├── Token │ │ ├── Token.php │ │ └── Base.php │ ├── Gateway │ │ └── YftPayConfig.php │ ├── Aws │ │ ├── Client.php │ │ └── Factory.php │ ├── Auth.php │ ├── Jwt.php │ ├── Analytic.php │ ├── Boot.php │ ├── Slim.php │ ├── RedisClient.php │ ├── Factory.php │ ├── View.php │ └── Password.php ├── Utils │ ├── Discord.php │ ├── Telegram.php │ ├── Pay.php │ ├── Response.php │ ├── Check.php │ ├── ConfRender.php │ ├── Cookie.php │ ├── Helper.php │ └── Tuling.php ├── Models │ ├── Link.php │ ├── Config.php │ ├── Paylist.php │ ├── RadiusNas.php │ ├── Token.php │ ├── CheckInLog.php │ ├── RadiusBan.php │ ├── RadiusRadAcct.php │ ├── RadiusRadCheck.php │ ├── PasswordReset.php │ ├── RadiusRadPostauth.php │ ├── NodeOnlineLog.php │ ├── RadiusRadUserGroup.php │ ├── Role.php │ ├── DetectRule.php │ ├── Disconnect.php │ ├── EmailVerify.php │ ├── InviteCode.php │ ├── Model.php │ ├── Ann.php │ ├── YftOrder.php │ ├── Code.php │ ├── Auto.php │ ├── BlockIp.php │ ├── Payback.php │ ├── NodeInfoLog.php │ ├── Ticket.php │ ├── UnblockIp.php │ ├── LoginIp.php │ ├── TelegramSession.php │ ├── Coupon.php │ ├── Bought.php │ ├── Ip.php │ ├── DetectLog.php │ ├── TrafficLog.php │ └── Relay.php ├── Controllers │ ├── ResController.php │ └── BaseController.php └── Middleware │ ├── Guest.php │ ├── Admin.php │ ├── Auth.php │ └── Api.php ├── uim-index-dev ├── babel.config.js ├── public │ └── favicon.ico ├── src │ ├── assets │ │ └── logo.png │ ├── mixins │ │ ├── userSetMixin.js │ │ └── userMixin.js │ ├── views │ │ ├── User.vue │ │ ├── Password.vue │ │ └── Root.vue │ ├── components │ │ ├── panel │ │ │ ├── UserAnnouncement.vue │ │ │ └── UserSettings.vue │ │ ├── table.vue │ │ ├── tooltip.vue │ │ ├── messager.vue │ │ ├── anchor.vue │ │ └── payment │ │ │ └── code.vue │ └── directives │ │ └── uimclip.js ├── vue.config.js ├── createIndexTpl.sh ├── .editorconfig └── .gitignore ├── resources ├── lang │ └── en │ │ └── auth.php ├── views │ └── material │ │ ├── table │ │ ├── js_delete.tpl │ │ ├── js_1.tpl │ │ ├── table.tpl │ │ ├── checkbox.tpl │ │ ├── lang_chinese.tpl │ │ └── js_2.tpl │ │ ├── user │ │ ├── yft.tpl │ │ ├── sys.tpl │ │ ├── pay_success.tpl │ │ └── disable.tpl │ │ ├── reg_tos.tpl │ │ ├── mylivechat.tpl │ │ ├── email_nrcy.tpl │ │ ├── dialog.tpl │ │ └── admin │ │ ├── sys.tpl │ │ ├── ip │ │ ├── alive.tpl │ │ ├── login.tpl │ │ └── unblock.tpl │ │ ├── trafficlog.tpl │ │ ├── detect │ │ └── log.tpl │ │ └── ticket │ │ └── index.tpl └── email │ └── test.tpl ├── sql ├── fix_unable_to_reg.sql ├── clean.sql └── yft_order_info.sql ├── xcat ├── .gitignore ├── bootstrap.php ├── .project ├── .github └── issue_template.md ├── LICENSE ├── composer.json └── .travis.yml /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/js/login.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /public/theme/material/js/shake.js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /storage/framework/smarty/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/smarty/compile/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /composer.phar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/composer.phar -------------------------------------------------------------------------------- /app/Services/Cache.php: -------------------------------------------------------------------------------- 1 | 'Login', 6 | 'Register' => 'Register' 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/views/material/table/js_delete.tpl: -------------------------------------------------------------------------------- 1 | table_1 2 | .row('#row_1_' + deleteid) 3 | .remove() 4 | .draw(); 5 | -------------------------------------------------------------------------------- /uim-index-dev/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/uim-index-dev/public/favicon.ico -------------------------------------------------------------------------------- /uim-index-dev/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/uim-index-dev/src/assets/logo.png -------------------------------------------------------------------------------- /uim-index-dev/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: '/vuedist/', 3 | outputDir: '../public/vuedist/' 4 | } 5 | -------------------------------------------------------------------------------- /public/assets/public/img/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/public/img/blue@2x.png -------------------------------------------------------------------------------- /public/images/prefix/圣文森特和格林纳丁斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/images/prefix/圣文森特和格林纳丁斯.png -------------------------------------------------------------------------------- /uim-index-dev/createIndexTpl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | npm run build 4 | cp -u ../public/vuedist/index.html ../resources/views/material/index.tpl -------------------------------------------------------------------------------- /public/assets/fonts/bk_font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/bk_font/FontAwesome.otf -------------------------------------------------------------------------------- /public/theme/material/css/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/arrow.png -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/red.jpg -------------------------------------------------------------------------------- /public/assets/fonts/source-sans-pro-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/source-sans-pro-300.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/source-sans-pro-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/source-sans-pro-600.woff2 -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/amber.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/amber2.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/amber3.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/amber4.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/brand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/brand.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/green.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/green.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/purple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/purple.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/teal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/images/bg/teal.jpg -------------------------------------------------------------------------------- /sql/fix_unable_to_reg.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `user` CHANGE `plan` `plan` VARCHAR(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'A'; 2 | -------------------------------------------------------------------------------- /public/theme/material/editor/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/loading.gif -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/vi.png -------------------------------------------------------------------------------- /public/assets/fonts/bk_font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/bk_font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/assets/fonts/bk_font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/bk_font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/assets/materialize/font/Material_Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/Material_Icons.woff2 -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/theme/material/editor/images/loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/loading@2x.gif -------------------------------------------------------------------------------- /public/theme/material/editor/images/loading@3x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/loading@3x.gif -------------------------------------------------------------------------------- /public/theme/material/images/samples/landscape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/images/samples/landscape.jpg -------------------------------------------------------------------------------- /public/theme/material/images/samples/portrait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/images/samples/portrait.jpg -------------------------------------------------------------------------------- /public/theme/material/images/users/avatar-001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/images/users/avatar-001.jpg -------------------------------------------------------------------------------- /public/theme/material/images/users/trafficbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/images/users/trafficbar.png -------------------------------------------------------------------------------- /public/assets/fonts/bk_font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/bk_font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/assets/fonts/bk_font/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/fonts/bk_font/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/editormd-logo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/editormd-logo.eot -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/editormd-logo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/editormd-logo.ttf -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/editormd-logo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/editormd-logo.woff -------------------------------------------------------------------------------- /uim-index-dev/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /public/assets/materialize/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/materialize/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/fonts/MaterialIcons-Regular.eot -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/fonts/MaterialIcons-Regular.ttf -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/fonts/MaterialIcons-Regular.woff -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/assets/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/fonts/MaterialIcons-Regular.woff2 -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/theme/material/css/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/css/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-16x16.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-24x24.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-32x32.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-48x48.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-57x57.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-64x64.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-72x72.png -------------------------------------------------------------------------------- /public/theme/material/editor/images/logos/editormd-logo-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dalaolala/sspanelv3moduim/HEAD/public/theme/material/editor/images/logos/editormd-logo-96x96.png -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /app/Models/Link.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

This is a testing mail.

8 |

Send from {$config["appName"]}

9 |

{$time}

10 | 11 | -------------------------------------------------------------------------------- /uim-index-dev/src/views/User.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /xcat: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | boot(); 12 | -------------------------------------------------------------------------------- /app/Models/DetectRule.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /app/Utils/Response.php: -------------------------------------------------------------------------------- 1 | withStatus(302)->withHeader('Location', $to); 10 | return $newResponse; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/Services/Token/Base.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/views/material/reg_tos.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | */.DS_Store 2 | .DS_Store 3 | vendor 4 | config/.config.php 5 | config/.config.php.bak 6 | 404.html 7 | index.html 8 | public/ssr-download/ 9 | public/images/*.* 10 | public/theme/material/css/images/bg 11 | storage/trimepay_notify.log 12 | storage/traffic_notified/ 13 | .idea 14 | storage/qqwry.* 15 | .vs/ 16 | .htaccess 17 | php_errors.log -------------------------------------------------------------------------------- /app/Models/YftOrder.php: -------------------------------------------------------------------------------- 1 | pay_config = [ 12 | "notify_url" => "/yft/notify", 13 | "return_url" => "/user/code", 14 | "type" => "aliPay" 15 | ]; 16 | } 17 | } -------------------------------------------------------------------------------- /public/theme/material/css/fonts/README.md: -------------------------------------------------------------------------------- 1 | The recommended way to use the Material Icons font is by linking to the web font hosted on Google Fonts: 2 | 3 | ```html 4 | 6 | ``` 7 | 8 | Read more in our full usage guide: 9 | http://google.github.io/material-design-icons/#icon-font-for-the-web 10 | -------------------------------------------------------------------------------- /public/theme/material/assets/js/modal.js: -------------------------------------------------------------------------------- 1 | // modale dialog vertical alignment 2 | $(function () { 3 | 'use strict'; 4 | 5 | $(document).on('hidden.bs.modal', '.modal-va-middle', function () { 6 | $(this).removeClass('modal-va-middle-show'); 7 | }); 8 | 9 | $(document).on('show.bs.modal', '.modal-va-middle', function () { 10 | $(this).addClass('modal-va-middle-show'); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /app/Models/Code.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Services/Aws/Client.php: -------------------------------------------------------------------------------- 1 | 'us-west-2', 13 | 'version' => 'latest', 14 | 'DynamoDb' => [ 15 | 'region' => 'eu-central-1' 16 | ] 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /resources/views/material/mylivechat.tpl: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /resources/views/material/table/js_1.tpl: -------------------------------------------------------------------------------- 1 | function modify_table_visible(id, key) { 2 | if(document.getElementById(id).checked) 3 | { 4 | table_1.columns( '.' + key ).visible( true ); 5 | localStorage.setItem(window.location.href + '-haschecked-' + id, true); 6 | } 7 | else 8 | { 9 | table_1.columns( '.' + key ).visible( false ); 10 | localStorage.setItem(window.location.href + '-haschecked-' + id, false); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/Services/Mail/NullMail.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |
公告栏
4 |
5 |
6 |
7 |
8 | 9 | 10 | 18 | -------------------------------------------------------------------------------- /app/Models/Auto.php: -------------------------------------------------------------------------------- 1 | attributes['datetime']); 17 | } 18 | 19 | public function content() 20 | { 21 | return str_replace(PHP_EOL, '
', $this->attributes['value']); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /resources/views/material/email_nrcy.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/Models/BlockIp.php: -------------------------------------------------------------------------------- 1 | attributes['nodeid'])->first(); 18 | } 19 | 20 | public function time() 21 | { 22 | return date("Y-m-d H:i:s", $this->attributes['datetime']); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /uim-index-dev/src/mixins/userMixin.js: -------------------------------------------------------------------------------- 1 | import { 2 | _get 3 | } from '../js/fetch' 4 | 5 | export default { 6 | props: ['annC', 'baseURL'], 7 | methods: { 8 | reConfigResourse() { 9 | _get('/getallresourse', 'include').then((r) => { 10 | if (r.ret === 1) { 11 | this.updateUserSet(r.resourse) 12 | } else { 13 | this.ajaxNotLogin() 14 | } 15 | }) 16 | }, 17 | updateUserSet(resourse) { 18 | this.setAllResourse(resourse) 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Models/Payback.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 13 | if ($user == null) { 14 | Bought::where('id', '=', $this->attributes['id'])->delete(); 15 | return null; 16 | } else { 17 | return $user; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /resources/views/material/table/table.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {foreach $table_config['total_column'] as $key => $value} 5 | 6 | {/foreach} 7 | 8 | 9 | 10 | 11 | {foreach $table_config['total_column'] as $key => $value} 12 | 13 | {/foreach} 14 | 15 | 16 | 17 | 18 |
{$value}
{$value}
19 | -------------------------------------------------------------------------------- /app/Models/NodeInfoLog.php: -------------------------------------------------------------------------------- 1 | attributes['load']; 12 | $exp = explode(" ", $load); 13 | return $exp[0]; 14 | } 15 | 16 | public function getTime() 17 | { 18 | $time = $this->attributes['log_time']; 19 | return date('Y-m-d H:i:s', $time); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/material/dialog.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrap.php: -------------------------------------------------------------------------------- 1 | build(); 15 | //$builder->getPhrase(); 16 | $newResponse = $response->withHeader('Content-type', ' image/jpeg');//->getBody()->write($builder->output()); 17 | $newResponse->getBody()->write($builder->output()); 18 | return $newResponse; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # robots.txt generated at http://tool.chinaz.com/robots/ 2 | User-agent: Baiduspider 3 | Disallow: / 4 | User-agent: Sosospider 5 | Disallow: / 6 | User-agent: sogou spider 7 | Disallow: / 8 | User-agent: Slurp 9 | Disallow: / 10 | User-agent: Teoma 11 | Disallow: / 12 | User-agent: ia_archiver 13 | Disallow: / 14 | User-agent: twiceler 15 | Disallow: / 16 | User-agent: MSNBot 17 | Disallow: / 18 | User-agent: Scrubby 19 | Disallow: / 20 | User-agent: Robozilla 21 | Disallow: / 22 | User-agent: Gigabot 23 | Disallow: / 24 | User-agent: psbot 25 | Disallow: / 26 | Crawl-delay: 120 27 | Disallow: / -------------------------------------------------------------------------------- /public/assets/css/ie9.css: -------------------------------------------------------------------------------- 1 | /* 2 | Dimension by HTML5 UP 3 | html5up.net | @ajlkn 4 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | */ 6 | 7 | /* BG */ 8 | 9 | #bg:before { 10 | background: rgba(19, 21, 25, 0.5); 11 | } 12 | 13 | /* Header */ 14 | 15 | #header .logo { 16 | margin: 0 auto; 17 | } 18 | 19 | #header .content { 20 | display: inline-block; 21 | } 22 | 23 | #header nav ul { 24 | display: inline-block; 25 | } 26 | 27 | #header nav ul li { 28 | display: inline-block; 29 | } 30 | 31 | /* Main */ 32 | 33 | #main article { 34 | margin: 0 auto; 35 | } -------------------------------------------------------------------------------- /public/assets/materialize/font/material-design-icons/cd-top-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/Services/Auth/Token.php: -------------------------------------------------------------------------------- 1 | storage = Factory::createTokenStorage(); 15 | } 16 | 17 | public function login($uid, $time) 18 | { 19 | // TODO: Implement getUser() method. 20 | } 21 | 22 | public function logout() 23 | { 24 | // TODO: Implement logout() method. 25 | } 26 | 27 | public function getUser() 28 | { 29 | $token = Cookie::get('token'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /public/theme/material/js/shake.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shake.js", 3 | "version": "1.2.2", 4 | "description": "A custom 'shake' event plugin for mobile web browsers using device accelerometer.", 5 | "keywords": [ 6 | "shake", 7 | "gesture", 8 | "event" 9 | ], 10 | "main": "shake.js", 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/alexgibson/shake.js.git" 14 | }, 15 | "author": "alexgibson", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/alexgibson/shake.js/issues" 19 | }, 20 | "homepage": "https://github.com/alexgibson/shake.js#readme" 21 | } 22 | -------------------------------------------------------------------------------- /app/Services/Auth.php: -------------------------------------------------------------------------------- 1 | login($uid, $time); 21 | } 22 | 23 | public static function getUser() 24 | { 25 | return self::getDriver()->getUser(); 26 | } 27 | 28 | public static function logout() 29 | { 30 | self::getDriver()->logout(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Middleware/Guest.php: -------------------------------------------------------------------------------- 1 | isLogin) { 15 | $newResponse = $response->withStatus(302)->withHeader('Location', '/user'); 16 | return $newResponse; 17 | } 18 | $response = $next($request, $response); 19 | return $response; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Utils/ConfRender.php: -------------------------------------------------------------------------------- 1 | settemplatedir(BASE_PATH . '/resources/conf/'); 19 | $smarty->setcompiledir(BASE_PATH . '/storage/framework/smarty/compile/'); 20 | $smarty->setcachedir(BASE_PATH . '/storage/framework/smarty/cache/'); 21 | $smarty->registerClass("config", "App\Services\Config"); 22 | return $smarty; 23 | } 24 | } -------------------------------------------------------------------------------- /public/theme/material/css/icon.css: -------------------------------------------------------------------------------- 1 | /* fallback */ 2 | @font-face { 3 | font-family: 'Material Icons'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: url(/theme/material/css/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); 7 | } 8 | 9 | .material-icons { 10 | font-family: 'Material Icons'; 11 | font-weight: normal; 12 | font-style: normal; 13 | font-size: 24px; 14 | line-height: 1; 15 | letter-spacing: normal; 16 | text-transform: none; 17 | display: inline-block; 18 | white-space: nowrap; 19 | word-wrap: normal; 20 | direction: ltr; 21 | -webkit-font-feature-settings: 'liga'; 22 | -webkit-font-smoothing: antialiased; 23 | } 24 | -------------------------------------------------------------------------------- /app/Utils/Cookie.php: -------------------------------------------------------------------------------- 1 | $value) { 10 | setcookie($key, $value, $time, '/'); 11 | } 12 | } 13 | 14 | public static function setwithdomain($arg, $time, $domain) 15 | { 16 | foreach ($arg as $key => $value) { 17 | setcookie($key, $value, $time, '/', $domain); 18 | } 19 | } 20 | 21 | public static function get($key) 22 | { 23 | if (isset($_COOKIE[$key])) { 24 | return $_COOKIE[$key]; 25 | } 26 | return ""; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /resources/views/material/table/checkbox.tpl: -------------------------------------------------------------------------------- 1 | {foreach $table_config['total_column'] as $key => $value} 2 |
3 | 7 |
8 | {/foreach} 9 | -------------------------------------------------------------------------------- /app/Services/Jwt.php: -------------------------------------------------------------------------------- 1 | attributes['datetime']); 17 | } 18 | 19 | public function User() 20 | { 21 | $user = User::where("id", $this->attributes['userid'])->first(); 22 | if ($user == null) { 23 | Ticket::where('id', '=', $this->attributes['id'])->delete(); 24 | return null; 25 | } else { 26 | return $user; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /public/theme/material/assets/js-project/ui-snackbar.js: -------------------------------------------------------------------------------- 1 | // ui-snackbar.html 2 | var snackbarText = 1; 3 | 4 | $('#ui_snackbar_toggle_1').on('click', function () { 5 | $('body').snackbar({ 6 | content: 'Simple snackbar ' + snackbarText + ' with some text', 7 | show: function () { 8 | snackbarText++; 9 | } 10 | }); 11 | }); 12 | 13 | $('#ui_snackbar_toggle_2').on('click', function () { 14 | $('body').snackbar({ 15 | content: 'Dismiss
Simple snackbar ' + snackbarText + ' with some text and a simple link.
', 16 | show: function () { 17 | snackbarText++; 18 | } 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /app/Models/UnblockIp.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 16 | if ($user == null) { 17 | UnblockIp::where('id', '=', $this->attributes['id'])->delete(); 18 | return null; 19 | } else { 20 | return $user; 21 | } 22 | } 23 | 24 | public function time() 25 | { 26 | return date("Y-m-d H:i:s", $this->attributes['datetime']); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Services/Analytic.php: -------------------------------------------------------------------------------- 1 | count(); 13 | } 14 | 15 | public function checkinUserCount() 16 | { 17 | return User::where('last_checkin_time', '>', 1)->count(); 18 | } 19 | 20 | public function activedUserCount() 21 | { 22 | return User::where('t', '>', 1)->count(); 23 | } 24 | 25 | public function totalTraffic() 26 | { 27 | $u = User::all()->sum('u'); 28 | $d = User::all()->sum('d'); 29 | return Tools::flowAutoShow($u + $d); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /public/theme/material/js/shake.js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shake.js", 3 | "description": "A custom 'shake' event plugin for mobile web browsers using device accelerometer.", 4 | "version": "1.2.2", 5 | "author": { 6 | "name": "Alex Gibson", 7 | "email": "alxgbsn@gmail.com" 8 | }, 9 | "keywords": ["javascript", "shake", "gesture", "event"], 10 | "main": "./shake.js", 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/alexgibson/shake.js.git" 14 | }, 15 | "readme": "README.md", 16 | "licenses": [{ 17 | "type": "MIT", 18 | "url": "http://opensource.org/licenses/MIT" 19 | }], 20 | "dependencies": {} 21 | } 22 | -------------------------------------------------------------------------------- /app/Models/LoginIp.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 19 | if ($user == null) { 20 | LoginIp::where('id', '=', $this->attributes['id'])->delete(); 21 | return null; 22 | } else { 23 | return $user; 24 | } 25 | } 26 | 27 | public function datetime() 28 | { 29 | return date("Y-m-d H:i:s", $this->attributes['datetime']); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Models/TelegramSession.php: -------------------------------------------------------------------------------- 1 | attributes['datetime']); 17 | } 18 | 19 | public function User() 20 | { 21 | $user = User::where("id", $this->attributes['user_id'])->first(); 22 | if ($user == null) { 23 | Ticket::where('id', '=', $this->attributes['id'])->delete(); 24 | return null; 25 | } else { 26 | return $user; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Models/Coupon.php: -------------------------------------------------------------------------------- 1 | attributes['expire']); 13 | } 14 | 15 | public function order($shop) 16 | { 17 | if ($this->attributes['shop']=="") { 18 | return true; 19 | } 20 | 21 | $shop_array=explode(",", $this->attributes['shop']); 22 | 23 | foreach ($shop_array as $shopid) { 24 | if ($shopid==$shop) { 25 | return true; 26 | } 27 | } 28 | 29 | return false; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /uim-index-dev/src/views/Root.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 21 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ss-panel-v3-mod_UIChanges 4 | 5 | 6 | 7 | 8 | 9 | com.aptana.ide.core.unifiedBuilder 10 | 11 | 12 | 13 | 14 | 15 | com.aptana.projects.webnature 16 | 17 | 18 | 19 | 1522297588605 20 | 21 | 26 22 | 23 | org.eclipse.ui.ide.multiFilter 24 | 1.0-name-matches-false-false-node_modules 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/Utils/Helper.php: -------------------------------------------------------------------------------- 1 | getQueryParams(); 15 | if (!isset($params['access_token'])) { 16 | return null; 17 | } 18 | $accessToken = $params['access_token']; 19 | return $accessToken; 20 | } 21 | 22 | public static function getMuKeyFromReq($request) 23 | { 24 | $params = $request->getQueryParams(); 25 | if (!isset($params['key'])) { 26 | return null; 27 | } 28 | $accessToken = $params['key']; 29 | return $accessToken; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /uim-index-dev/src/directives/uimclip.js: -------------------------------------------------------------------------------- 1 | export default { 2 | inserted: function (el, binding) { 3 | el.addEventListener('click', (e) => { 4 | let copy = new Promise((resolve, reject) => { 5 | let input = document.createElement('input') 6 | let body = document.getElementsByTagName('body')[0] 7 | let value = el.dataset.uimclip 8 | input.setAttribute('type', 'text') 9 | input.setAttribute('value', value) 10 | body.appendChild(input) 11 | input.focus() 12 | input.setSelectionRange(0, value.length) 13 | document.execCommand('copy', true) 14 | resolve(input) 15 | }) 16 | copy.then((r) => { 17 | r.remove() 18 | binding.value.onSuccess() 19 | }) 20 | }) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /public/assets/public/css/sticky-footer-navbar.css: -------------------------------------------------------------------------------- 1 | /*粘贴页脚样式 2 | -------------------------------------------------- */ 3 | html { 4 | position: relative; 5 | min-height: 100%; 6 | } 7 | body { 8 | /* 边缘底部由页脚高度 */ 9 | margin-bottom: 60px; 10 | } 11 | .footer { 12 | position: absolute; 13 | bottom: 0; 14 | width: 100%; 15 | /*在这里设置页脚的固定高度 */ 16 | height: 60px; 17 | background-color: #f5f5f5; 18 | } 19 | 20 | 21 | /* 自定义页面CSS 22 | -------------------------------------------------- */ 23 | /* 不需要模板或粘性页脚方法. */ 24 | 25 | body > .container { 26 | padding: 60px 15px 0; 27 | } 28 | .container .text-muted { 29 | margin: 20px 0; 30 | } 31 | 32 | .footer > .container { 33 | padding-right: 15px; 34 | padding-left: 15px; 35 | } 36 | 37 | code { 38 | font-size: 80%; 39 | } 40 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/panel/UserSettings.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 24 | -------------------------------------------------------------------------------- /app/Controllers/BaseController.php: -------------------------------------------------------------------------------- 1 | smarty = View::getSmarty(); 25 | return $this->smarty; 26 | } 27 | 28 | public function view() 29 | { 30 | return $this->smarty(); 31 | } 32 | 33 | /** 34 | * @param $response 35 | * @param $res 36 | * @return mixed 37 | */ 38 | public function echoJson($response, $res) 39 | { 40 | return $response->getBody()->write(json_encode($res)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /resources/views/material/table/lang_chinese.tpl: -------------------------------------------------------------------------------- 1 | language: { 2 | "sProcessing": "处理中...", 3 | "sLengthMenu": "显示 _MENU_ 项结果", 4 | "sZeroRecords": "没有匹配结果", 5 | "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项", 6 | "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项", 7 | "sInfoFiltered": "(由 _MAX_ 项结果过滤)", 8 | "sInfoPostFix": "", 9 | "sSearch": "搜索:", 10 | "sUrl": "", 11 | "sEmptyTable": "表中数据为空", 12 | "sLoadingRecords": "载入中...", 13 | "sInfoThousands": ",", 14 | "oPaginate": { 15 | "sFirst": "首页", 16 | "sPrevious": "上页", 17 | "sNext": "下页", 18 | "sLast": "末页" 19 | }, 20 | "oAria": { 21 | "sSortAscending": ": 以升序排列此列", 22 | "sSortDescending": ": 以降序排列此列" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror 2 | [![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror) 3 | [![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror) 4 | [Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/) 5 | 6 | CodeMirror is a JavaScript component that provides a code editor in 7 | the browser. When a mode is available for the language you are coding 8 | in, it will color your code, and optionally help with indentation. 9 | 10 | The project page is http://codemirror.net 11 | The manual is at http://codemirror.net/doc/manual.html 12 | The contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md) 13 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-link {color: #762;} 10 | .cm-s-elegant span.cm-error {background-color: #fdd;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /resources/views/material/admin/sys.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |

6 | 统计信息 7 | A 8 |

9 |
10 | 11 | 12 |
13 |
14 | 15 |
16 | 17 |
18 |
19 |

Coming soon...

20 |
21 |
22 |
23 |
24 |
25 |
26 | {include file='admin/footer.tpl'} -------------------------------------------------------------------------------- /resources/views/material/user/sys.tpl: -------------------------------------------------------------------------------- 1 | {include file='user/main.tpl'} 2 | 3 |
4 |
5 |

6 | 统计信息 7 | A 8 |

9 |
10 | 11 | 12 |
13 |
14 | 15 |
16 | 17 |
18 |
19 |

Coming soon...

20 |
21 |
22 |
23 |
24 |
25 |
26 | {include file='user/footer.tpl'} -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | li.CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /app/Services/Aws/Factory.php: -------------------------------------------------------------------------------- 1 | array( 14 | 'key' => Config::get('aws_access_key_id'), 15 | 'secret' => Config::get('aws_secret_access_key'), 16 | ), 17 | 'region' => Config::get('aws_region'), 18 | 'version' => 'latest', 19 | 'DynamoDb' => [ 20 | 'region' => Config::get('aws_region') 21 | ] 22 | ]); 23 | return $sdk; 24 | } 25 | 26 | public static function createDynamodb() 27 | { 28 | return self::createAwsClient()->createDynamoDb(); 29 | } 30 | 31 | public static function createSes() 32 | { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Services/Auth/JwtToken.php: -------------------------------------------------------------------------------- 1 | $uid, 15 | "expire_time" => $expireTime 16 | ]; 17 | $decode = Jwt::encode($ary); 18 | Utils\Cookie::set([ 19 | //"uid" => $uid, 20 | "token" => $decode 21 | ], $expireTime); 22 | } 23 | 24 | public function logout() 25 | { 26 | Utils\Cookie::set([ 27 | //"uid" => $uid, 28 | "token" => "" 29 | ], time()-3600); 30 | } 31 | 32 | public function getUser() 33 | { 34 | $token = Utils\Cookie::get('token'); 35 | $tokenInfo = Jwt::decodeArray($token); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/table.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | 16 | 41 | -------------------------------------------------------------------------------- /app/Models/Bought.php: -------------------------------------------------------------------------------- 1 | attributes['renew']); 13 | } 14 | 15 | public function datetime() 16 | { 17 | return date("Y-m-d H:i:s", $this->attributes['datetime']); 18 | } 19 | 20 | public function user() 21 | { 22 | $user = User::where("id", $this->attributes['userid'])->first(); 23 | if ($user == null) { 24 | Bought::where('id', '=', $this->attributes['id'])->delete(); 25 | return null; 26 | } else { 27 | return $user; 28 | } 29 | } 30 | 31 | public function shop() 32 | { 33 | return Shop::where("id", $this->attributes['shopid'])->first(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /public/theme/material/assets/js-project/ui-progress.js: -------------------------------------------------------------------------------- 1 | // ui-progress.html 2 | $('.finish-loading').on('click', function(e) { 3 | e.stopPropagation(); 4 | $($(this).attr('data-target')).addClass('el-loading-done'); 5 | }); 6 | 7 | $('#ui_el_loading_example_wrap .tile-active-show').each(function (index) { 8 | var $this = $(this), 9 | timer; 10 | 11 | $this.on('hide.bs.tile', function(e) { 12 | clearTimeout(timer); 13 | }); 14 | 15 | $this.on('show.bs.tile', function(e) { 16 | if (!$('.el-loading', $this).hasClass('el-loading-done')) { 17 | timer = setTimeout(function() { 18 | $('.el-loading', $this).addClass('el-loading-done'); 19 | $this.prepend('

Additional information
Aliquam in pharetra leo. In congue, massa sed elementum dictum, justo quam efficitur risus, in posuere mi orci ultrices diam.

'); 20 | }, 6000); 21 | }; 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /public/theme/material/assets/js/form-textarea.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * textarea autosize v0.4.0 3 | * https://github.com/javierjulio/textarea-autosize 4 | */ 5 | 6 | !function(t,e){function i(e){this.element=e,this.$element=t(e),this.init()}var n="textareaAutoSize",h="plugin_"+n,s=function(t){return t.replace(/\s/g,"").length>0};i.prototype={init:function(){var i=(this.$element.outerHeight(),parseInt(this.$element.css("paddingBottom"))+parseInt(this.$element.css("paddingTop")));s(this.element.value)&&this.$element.height(this.element.scrollHeight-i),this.$element.on("input keyup",function(){var n=t(e),h=n.scrollTop();t(this).height(0).height(this.scrollHeight-i),n.scrollTop(h)})}},t.fn[n]=function(e){return this.each(function(){t.data(this,h)||t.data(this,h,new i(this,e))}),this}}(jQuery,window,document); 7 | 8 | // textarea autosize default 9 | $(function () { 10 | 'use strict'; 11 | 12 | $('.textarea-autosize').textareaAutoSize(); 13 | }); 14 | -------------------------------------------------------------------------------- /app/Middleware/Admin.php: -------------------------------------------------------------------------------- 1 | getBody()->write('BEFORE'); 15 | $user = AuthService::getUser(); 16 | if (!$user->isLogin) { 17 | $newResponse = $response->withStatus(302)->withHeader('Location', '/auth/login'); 18 | return $newResponse; 19 | } 20 | 21 | if (!$user->isAdmin()) { 22 | $newResponse = $response->withStatus(302)->withHeader('Location', '/user'); 23 | return $newResponse; 24 | } 25 | 26 | $response = $next($request, $response); 27 | return $response; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /resources/views/material/admin/ip/alive.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

在线IP

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

显示表项: {include file='table/checkbox.tpl'}

17 |
18 |
19 |
20 | 21 |
22 | {include file='table/table.tpl'} 23 |
24 | 25 | 26 |
27 | 28 | 29 | 30 |
31 |
32 | 33 | {include file='admin/footer.tpl'} 34 | 35 | 42 | -------------------------------------------------------------------------------- /app/Utils/Tuling.php: -------------------------------------------------------------------------------- 1 | connect("www.tuling123.com", 80); 23 | $sock->set_method('POST'); 24 | $sock->add_header('Content-Type', 'application/json'); 25 | $sock->query('/openapi/api', $param); 26 | 27 | $result = $sock->fetch_body(); 28 | $result_array = json_decode($result, true); 29 | return $result_array['text']; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /resources/views/material/admin/ip/login.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

最近登录记录

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

这里是最近的登录记录。

17 |

显示表项: {include file='table/checkbox.tpl'}

18 |
19 |
20 |
21 | 22 |
23 | {include file='table/table.tpl'} 24 |
25 | 26 | 27 |
28 | 29 | 30 | 31 |
32 |
33 | 34 | {include file='admin/footer.tpl'} 35 | 36 | 43 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": "lib/codemirror.js", 5 | "description": "In-browser code editing made bearable", 6 | "licenses": [{"type": "MIT", 7 | "url": "http://codemirror.net/LICENSE"}], 8 | "directories": {"lib": "./lib"}, 9 | "scripts": {"test": "node ./test/run.js"}, 10 | "devDependencies": {"node-static": "0.6.0", 11 | "phantomjs": "1.9.2-5", 12 | "blint": ">=0.1.1"}, 13 | "bugs": "http://github.com/codemirror/CodeMirror/issues", 14 | "keywords": ["JavaScript", "CodeMirror", "Editor"], 15 | "homepage": "http://codemirror.net", 16 | "maintainers":[{"name": "Marijn Haverbeke", 17 | "email": "marijnh@gmail.com", 18 | "web": "http://marijnhaverbeke.nl"}], 19 | "repository": {"type": "git", 20 | "url": "https://github.com/codemirror/CodeMirror.git"} 21 | } 22 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /resources/views/material/admin/ip/unblock.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

解封IP记录

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

这里是最近的解封IP记录。

17 |

显示表项: {include file='table/checkbox.tpl'} 18 |

19 |
20 |
21 |
22 | 23 |
24 | {include file='table/table.tpl'} 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 |
33 |
34 | 35 | {include file='admin/footer.tpl'} 36 | 37 | 44 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/tooltip.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 15 | 48 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/messager.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | 21 | 49 | -------------------------------------------------------------------------------- /app/Services/Boot.php: -------------------------------------------------------------------------------- 1 | addConnection(Config::getDbConfig(), 'default'); 33 | if (Config::get('enable_radius')=='true') { 34 | $capsule->addConnection(Config::getRadiusDbConfig(), 'radius'); 35 | } 36 | $capsule->bootEloquent(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Middleware/Auth.php: -------------------------------------------------------------------------------- 1 | isLogin) { 18 | $newResponse = $response->withStatus(302)->withHeader('Location', '/auth/login'); 19 | return $newResponse; 20 | } 21 | $enablePages = array("/user/disable", "/user/backtoadmin", "/user/logout"); 22 | if ($user->enable == 0 && !in_array($_SERVER["REQUEST_URI"], $enablePages)) { 23 | $newResponse = $response->withStatus(302)->withHeader('Location', '/user/disable'); 24 | return $newResponse; 25 | } 26 | $response = $next($request, $response); 27 | return $response; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: issue 3 | about: temlpate 4 | 5 | --- 6 | 7 | 15 | 16 | 17 | 18 | **我确认我已经阅读了** (使用 "x" 选择) 19 | 20 | - [ ] [项目 Wiki ](https://github.com/NimaQu/ss-panel-v3-mod_Uim/wiki) 21 | - [ ] [项目其他 issue](https://github.com/NimaQu/ss-panel-v3-mod_Uim/issues?utf8=%E2%9C%93&q=is%3Aissue) 22 | 23 | **我确认我做到了** (使用 "x" 选择) 24 | 25 | - [ ] [将项目升级到当前分支最新版本](https://github.com/NimaQu/ss-panel-v3-mod_Uim/wiki/%E5%8D%87%E7%B4%9A%E7%89%88%E6%9C%AC) 26 | - [ ] 在[项目演示站](https://demo.nimaqu.com)成功复现问题 27 | 28 | **我正在申请** (使用 "x" 选择) 29 | 30 | - [ ] 反馈一个 bug 31 | - [ ] 申请添加新的特性或功能或者好的想法 32 | 33 | 34 | 35 | 36 | 37 | **反馈BUG** 38 | 39 | 1.请在面板路径下运行`git show HEAD`,然后贴出输出内容 40 | 41 | 2.如果是页面问题(500 或 Slim Application Error ),请在 config 开启 debug 模式后截图或贴出输出内容,如果是某个按钮点击没反应,请打开浏览器开发者控制台(通常为 F12 ) ,贴出 console 输出内容 42 | 43 | 44 | 45 | **申请添加新的特性或功能或者好的想法** -------------------------------------------------------------------------------- /app/Models/Ip.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 19 | if ($user == null) { 20 | Ip::where('id', '=', $this->attributes['id'])->delete(); 21 | return null; 22 | } else { 23 | return $user; 24 | } 25 | } 26 | 27 | public function Node() 28 | { 29 | $node = Node::where("id", $this->attributes['nodeid'])->first(); 30 | if ($node == null) { 31 | Ip::where('id', '=', $this->attributes['id'])->delete(); 32 | return null; 33 | } else { 34 | return $node; 35 | } 36 | } 37 | 38 | 39 | public function ip() 40 | { 41 | return str_replace("::ffff:", "", $this->attributes['ip']); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /resources/views/material/admin/trafficlog.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

流量使用记录

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

部分节点不支持流量记录.

17 |

显示表项: 18 | {include file='table/checkbox.tpl'} 19 |

20 |
21 |
22 |
23 | 24 | 25 |
26 | {include file='table/table.tpl'} 27 |
28 | 29 | 30 |
31 | 32 | 33 | 34 |
35 |
36 | 37 | 38 | {include file='admin/footer.tpl'} 39 | 40 | 49 | -------------------------------------------------------------------------------- /resources/views/material/admin/detect/log.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 |

审计记录查看

13 |
14 |
15 |
16 |
17 |
18 | 19 |
20 |
21 |
22 |

系统中所有审计记录。

23 |

显示表项: 24 | {include file='table/checkbox.tpl'} 25 |

26 |
27 |
28 |
29 | 30 |
31 | {include file='table/table.tpl'} 32 |
33 | 34 | 35 | 36 |
37 | 38 | 39 | 40 |
41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 | {include file='admin/footer.tpl'} 49 | 50 | 57 | -------------------------------------------------------------------------------- /app/Services/Slim.php: -------------------------------------------------------------------------------- 1 | [ 33 | 'debug' => $debug, 34 | 'whoops.editor' => 'sublime', 35 | 'displayErrorDetails' => $debug 36 | ] 37 | ]); 38 | $app->add(new WhoopsMiddleware); 39 | $this->app = $app; 40 | } 41 | 42 | public function run() 43 | { 44 | $this->app->run(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /public/theme/material/editor/fonts/editormd-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/theme/material/js/shake.js/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2015 Alex Gibson 2 | 3 | http://alxgbsn.co.uk/ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction except as noted below, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sublicense, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 NimaQu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /sql/yft_order_info.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat MySQL Data Transfer 3 | 4 | Source Server : 本地数据库 5 | Source Server Version : 50553 6 | Source Host : localhost:3306 7 | Source Database : sspanel 8 | 9 | Target Server Type : MYSQL 10 | Target Server Version : 50553 11 | File Encoding : 65001 12 | 13 | Date: 2017-10-24 19:53:13 14 | */ 15 | 16 | SET FOREIGN_KEY_CHECKS=0; 17 | 18 | -- ---------------------------- 19 | -- Table structure for yft_order_info 20 | -- ---------------------------- 21 | DROP TABLE IF EXISTS `yft_order_info`; 22 | CREATE TABLE `yft_order_info` ( 23 | `id` int(11) NOT NULL AUTO_INCREMENT, 24 | `user_id` int(11) DEFAULT NULL, 25 | `ss_order` varchar(50) DEFAULT NULL, 26 | `yft_order` varchar(50) DEFAULT NULL, 27 | `price` varchar(10) DEFAULT NULL, 28 | `state` tinyint(1) DEFAULT NULL COMMENT '0代表未支付,1代表已支付', 29 | `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 30 | PRIMARY KEY (`id`) 31 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 32 | 33 | -- ---------------------------- 34 | -- Records of yft_order_info 35 | -- ---------------------------- 36 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /app/Services/RedisClient.php: -------------------------------------------------------------------------------- 1 | Config::get('redis_scheme'), 16 | 'password' => Config::get('redis_password'), 17 | 'host' => Config::get('redis_host'), 18 | 'port' => Config::get('redis_port'), 19 | 'database' => Config::get('redis_database'), 20 | ]; 21 | $this->client = new Client($config); 22 | } 23 | 24 | public function getClient() 25 | { 26 | return $this->client; 27 | } 28 | 29 | public function get($key) 30 | { 31 | return $this->client->get($key); 32 | } 33 | 34 | public function set($key, $value) 35 | { 36 | $this->client->set($key, $value); 37 | } 38 | 39 | public function setex($key, $time, $value) 40 | { 41 | $this->client->setex($key, $time, $value); 42 | } 43 | 44 | public function del($key) 45 | { 46 | $this->client->del($key); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/neo.css: -------------------------------------------------------------------------------- 1 | /* neo theme for codemirror */ 2 | 3 | /* Color scheme */ 4 | 5 | .cm-s-neo.CodeMirror { 6 | background-color:#ffffff; 7 | color:#2e383c; 8 | line-height:1.4375; 9 | } 10 | .cm-s-neo .cm-comment {color:#75787b} 11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} 12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} 13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} 14 | .cm-s-neo .cm-string {color:#b35e14} 15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} 16 | 17 | 18 | /* Editor styling */ 19 | 20 | .cm-s-neo pre { 21 | padding:0; 22 | } 23 | 24 | .cm-s-neo .CodeMirror-gutters { 25 | border:none; 26 | border-right:10px solid transparent; 27 | background-color:transparent; 28 | } 29 | 30 | .cm-s-neo .CodeMirror-linenumber { 31 | padding:0; 32 | color:#e0e2e5; 33 | } 34 | 35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } 36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } 37 | 38 | .cm-s-neo div.CodeMirror-cursor { 39 | width: auto; 40 | border: 0; 41 | background: rgba(155,157,162,0.37); 42 | z-index: 1; 43 | } 44 | -------------------------------------------------------------------------------- /app/Services/Factory.php: -------------------------------------------------------------------------------- 1 | stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /public/theme/material/editor/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 pandao 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 by Marijn Haverbeke and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/anchor.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 57 | -------------------------------------------------------------------------------- /app/Services/Mail/Ses.php: -------------------------------------------------------------------------------- 1 | client = Factory::createSes(); 15 | } 16 | 17 | public function getSender() 18 | { 19 | return Config::get('aws_ses_sender'); 20 | } 21 | 22 | public function send($to, $subject, $text) 23 | { 24 | $this->client->sendEmail([ 25 | 'Destination' => [ // REQUIRED 26 | 'ToAddresses' => [$to], 27 | ], 28 | 'Message' => [ // REQUIRED 29 | 'Body' => [ // REQUIRED 30 | 'Html' => [ 31 | 'Data' => $text, // REQUIRED 32 | ], 33 | 'Text' => [ 34 | 'Data' => $text, // REQUIRED 35 | ], 36 | ], 37 | 'Subject' => [ // REQUIRED 38 | 'Data' => $subject, // REQUIRED 39 | ], 40 | ], 41 | 'Source' => $this->getSender(), // REQUIRED 42 | ]); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /resources/views/material/admin/ticket/index.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 | 4 |
5 |
6 |
7 |

工单

8 |
9 |
10 |
11 |
12 |
13 | 14 |
15 |
16 |
17 |

系统中的工单

18 |

显示表项: 19 | {include file='table/checkbox.tpl'} 20 |

21 |
22 |
23 |
24 | 25 |
26 | {include file='table/table.tpl'} 27 |
28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 |
36 |
37 | 38 | 39 | {include file='admin/footer.tpl'} 40 | 41 | 42 | 56 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-qualifier {color: #555;} 15 | .cm-s-eclipse span.cm-builtin {color: #30a;} 16 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 17 | .cm-s-eclipse span.cm-tag {color: #170;} 18 | .cm-s-eclipse span.cm-attribute {color: #00c;} 19 | .cm-s-eclipse span.cm-link {color: #219;} 20 | .cm-s-eclipse span.cm-error {color: #f00;} 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} 23 | .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 24 | -------------------------------------------------------------------------------- /app/Services/View.php: -------------------------------------------------------------------------------- 1 | isLogin) { 17 | $theme=$user->theme; 18 | } else { 19 | $theme=Config::get('theme'); 20 | } 21 | 22 | $can_backtoadmin = 0; 23 | if (Utils\Cookie::get('old_uid') && Utils\Cookie::get('old_email') && Utils\Cookie::get('old_key') && Utils\Cookie::get('old_ip') && Utils\Cookie::get('old_expire_in') && Utils\Cookie::get('old_local')) { 24 | $can_backtoadmin = 1; 25 | } 26 | $smarty->settemplatedir(BASE_PATH.'/resources/views/'.$theme.'/'); //设置模板文件存放目录 27 | $smarty->setcompiledir(BASE_PATH.'/storage/framework/smarty/compile/'); //设置生成文件存放目录 28 | $smarty->setcachedir(BASE_PATH.'/storage/framework/smarty/cache/'); //设置缓存文件存放目录 29 | // add config 30 | $smarty->assign('config', Config::getPublicConfig()); 31 | $smarty->assign('user', $user); 32 | $smarty->assign('can_backtoadmin', $can_backtoadmin); 33 | return $smarty; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Services/Password.php: -------------------------------------------------------------------------------- 1 | email = $email; 23 | $pwdRst->init_time = time(); 24 | $pwdRst->expire_time = time() + 3600 * 24; // @todo 25 | $pwdRst->token = Tools::genRandomChar(64); 26 | if (!$pwdRst->save()) { 27 | return false; 28 | } 29 | $subject = Config::get('appName') . "重置密码"; 30 | $resetUrl = Config::get('baseUrl') . "/password/token/" . $pwdRst->token; 31 | try { 32 | Mail::send($email, $subject, 'password/reset.tpl', [ 33 | "resetUrl" => $resetUrl 34 | ], [ 35 | //BASE_PATH.'/public/assets/email/styles.css' 36 | ]); 37 | } catch (\Exception $e) { 38 | return false; 39 | } 40 | return true; 41 | } 42 | 43 | public static function resetBy($token, $password) 44 | { 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/Middleware/Api.php: -------------------------------------------------------------------------------- 1 | getBody()->write(json_encode($res)); 19 | return $response; 20 | } 21 | $storage = Factory::createTokenStorage(); 22 | $token = $storage->get($accessToken); 23 | if ($token==null) { 24 | $res['ret'] = 0; 25 | $res['msg'] = "token is null"; 26 | $response->getBody()->write(json_encode($res)); 27 | return $response; 28 | } 29 | if ($token->expireTime < time()) { 30 | $res['ret'] = 0; 31 | $res['msg'] = "token is expire"; 32 | $response->getBody()->write(json_encode($res)); 33 | return $response; 34 | } 35 | $response = $next($request, $response); 36 | return $response; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Models/DetectLog.php: -------------------------------------------------------------------------------- 1 | attributes['list_id'])->first(); 19 | if ($rule == null) { 20 | DetectLog::where('id', '=', $this->attributes['id'])->delete(); 21 | return null; 22 | } else { 23 | return $rule; 24 | } 25 | } 26 | 27 | public function User() 28 | { 29 | $user = User::where("id", $this->attributes['user_id'])->first(); 30 | if ($user == null) { 31 | DetectLog::where('id', '=', $this->attributes['id'])->delete(); 32 | return null; 33 | } else { 34 | return $user; 35 | } 36 | } 37 | 38 | public function Node() 39 | { 40 | $node = Node::where("id", $this->attributes['node_id'])->first(); 41 | if ($node == null) { 42 | DetectLog::where('id', '=', $this->attributes['id'])->delete(); 43 | return null; 44 | } else { 45 | return $node; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "slim/slim": "~3.0", 4 | "slim/csrf": "*", 5 | "smarty/smarty": "3.*", 6 | "mailgun/mailgun-php": "^2.6.0", 7 | "predis/predis": "~1.0", 8 | "phpmailer/phpmailer": "~5.2", 9 | "zeuxisoo/slim-whoops": "0.5.*", 10 | "firebase/php-jwt": "~3.0", 11 | "aws/aws-sdk-php": "3.*", 12 | "gregwar/captcha": "1.*", 13 | "cloudxns/cloud-xns-api-sdk-php": "*", 14 | "guzzlehttp/guzzle": "^6.2.2", 15 | "voku/anti-xss": "^1.2", 16 | "paymentwall/paymentwall-php": "^2.1", 17 | "telegram-bot/api": "^2.2", 18 | "illuminate/pagination": "5.2.*", 19 | "illuminate/database": "5.2.*", 20 | "sendgrid/sendgrid": "^5.1", 21 | "esdeathlove/datatables": "^1.6", 22 | "slim/twig-view": "1.2.0", 23 | "ramsey/uuid": "^3.0@dev", 24 | "cloudflare/sdk": "1.1.1", 25 | "chen-see/chen-pay": "^1.0@dev", 26 | "league/omnipay": "^3", 27 | "lokielse/omnipay-alipay": "*", 28 | "charlottedunois/yasmin": "*" 29 | }, 30 | "autoload": { 31 | "classmap": [ 32 | 33 | ], 34 | "psr-4": { 35 | "App\\": "app/" 36 | } 37 | }, 38 | 39 | "config": { 40 | "secure-http": false 41 | }, 42 | "minimum-stability": "dev", 43 | "require-dev": { 44 | "khanamiryan/qrcode-detector-decoder": "*" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/payment/code.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 48 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /resources/views/material/user/pay_success.tpl: -------------------------------------------------------------------------------- 1 | {include file='user/main.tpl'} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 |

充值结果

13 | 14 | 15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | {if ($success == 1)} 24 |

已充值成功 {$money} 元!请进入 套餐购买 页面来选购您的套餐。

25 | {else} 26 |

正在处理您的支付,请您稍等。此页面会自动刷新,或者您可以选择关闭此页面,余额将自动到账

27 | 30 | {/if} 31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | 39 | 40 | 41 | 42 | 43 | {include file='user/footer.tpl'} -------------------------------------------------------------------------------- /app/Models/TrafficLog.php: -------------------------------------------------------------------------------- 1 | attributes['node_id'])->first(); 16 | if ($node == null) { 17 | TrafficLog::where('id', '=', $this->attributes['id'])->delete(); 18 | return null; 19 | } else { 20 | return $node; 21 | } 22 | } 23 | 24 | public function user() 25 | { 26 | $user = User::where("id", $this->attributes['user_id'])->first(); 27 | if ($user == null) { 28 | TrafficLog::where('id', '=', $this->attributes['id'])->delete(); 29 | return null; 30 | } else { 31 | return $user; 32 | } 33 | } 34 | 35 | public function totalUsed() 36 | { 37 | return Tools::flowAutoShow($this->attributes['u'] + $this->attributes['d']); 38 | } 39 | 40 | public function totalUsedRaw() 41 | { 42 | return number_format(($this->attributes['u'] + $this->attributes['d'])/1024, 2, ".", ""); 43 | } 44 | 45 | public function logTime() 46 | { 47 | return Tools::toDateTime($this->attributes['log_time']); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("diff", function() { 15 | 16 | var TOKEN_NAMES = { 17 | '+': 'positive', 18 | '-': 'negative', 19 | '@': 'meta' 20 | }; 21 | 22 | return { 23 | token: function(stream) { 24 | var tw_pos = stream.string.search(/[\t ]+?$/); 25 | 26 | if (!stream.sol() || tw_pos === 0) { 27 | stream.skipToEnd(); 28 | return ("error " + ( 29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 30 | } 31 | 32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 33 | 34 | if (tw_pos === -1) { 35 | stream.skipToEnd(); 36 | } else { 37 | stream.pos = tw_pos; 38 | } 39 | 40 | return token_name; 41 | } 42 | }; 43 | }); 44 | 45 | CodeMirror.defineMIME("text/x-diff", "diff"); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/jquery.flowchart.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery.flowchart.js v1.1.0 | jquery.flowchart.min.js | jQuery plugin for flowchart.js. | MIT License | By: Pandao | https://github.com/pandao/jquery.flowchart.js | 2015-03-09 */ 2 | (function(factory){if(typeof require==="function"&&typeof exports==="object"&&typeof module==="object"){module.exports=factory}else{if(typeof define==="function"){factory(jQuery,flowchart)}else{factory($,flowchart)}}}(function(jQuery,flowchart){(function($){$.fn.flowChart=function(options){options=options||{};var defaults={"x":0,"y":0,"line-width":2,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black","fill":"white","yes-text":"yes","no-text":"no","arrow-end":"block","symbols":{"start":{"font-color":"black","element-color":"black","fill":"white"},"end":{"class":"end-element"}},"flowstate":{"past":{"fill":"#CCCCCC","font-size":12},"current":{"fill":"black","font-color":"white","font-weight":"bold"},"future":{"fill":"white"},"request":{"fill":"blue"},"invalid":{"fill":"#444444"},"approved":{"fill":"#58C4A3","font-size":12,"yes-text":"APPROVED","no-text":"n/a"},"rejected":{"fill":"#C45879","font-size":12,"yes-text":"n/a","no-text":"REJECTED"}}};return this.each(function(){var $this=$(this);var diagram=flowchart.parse($this.text());var settings=$.extend(true,defaults,options);$this.html("");diagram.drawSVG(this,settings)})}})(jQuery)})); -------------------------------------------------------------------------------- /app/Models/Relay.php: -------------------------------------------------------------------------------- 1 | attributes['user_id'])->first(); 17 | if ($user == null) { 18 | Relay::where('id', '=', $this->attributes['id'])->delete(); 19 | return null; 20 | } else { 21 | return $user; 22 | } 23 | } 24 | 25 | public function Source_Node() 26 | { 27 | $node = Node::where("id", $this->attributes['source_node_id'])->first(); 28 | if ($node == null && $this->attributes['source_node_id'] != 0) { 29 | Relay::where('id', '=', $this->attributes['id'])->delete(); 30 | return null; 31 | } else { 32 | return $node; 33 | } 34 | } 35 | 36 | public function Dist_Node() 37 | { 38 | if ($this->attributes['dist_node_id'] == -1) { 39 | return null; 40 | } 41 | 42 | $node = Node::where("id", $this->attributes['dist_node_id'])->first(); 43 | if ($node == null) { 44 | Relay::where('id', '=', $this->attributes['id'])->delete(); 45 | return null; 46 | } else { 47 | return $node; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /resources/views/material/table/js_2.tpl: -------------------------------------------------------------------------------- 1 | table_1 = $('#table_1').DataTable({ 2 | ajax: { 3 | url: '{$table_config['ajax_url']}', 4 | type: "POST" 5 | }, 6 | processing: true, 7 | serverSide: true, 8 | order: [[ 0, 'desc' ]], 9 | stateSave: true, 10 | columnDefs: [ 11 | { 12 | targets: [ '_all' ], 13 | className: 'mdl-data-table__cell--non-numeric' 14 | } 15 | ], 16 | columns: [ 17 | {foreach $table_config['total_column'] as $key => $value} 18 | { "data": "{$key}" }, 19 | {/foreach} 20 | ], 21 | {include file='table/lang_chinese.tpl'} 22 | }) 23 | 24 | 25 | var has_init = JSON.parse(localStorage.getItem(window.location.href + '-hasinit')); 26 | if (has_init != true) { 27 | localStorage.setItem(window.location.href + '-hasinit', true); 28 | } else { 29 | {foreach $table_config['total_column'] as $key => $value} 30 | var checked = JSON.parse(localStorage.getItem(window.location.href + '-haschecked-checkbox_{$key}')); 31 | if (checked == true) { 32 | document.getElementById('checkbox_{$key}').checked = true; 33 | } else { 34 | document.getElementById('checkbox_{$key}').checked = false; 35 | } 36 | {/foreach} 37 | } 38 | 39 | {foreach $table_config['total_column'] as $key => $value} 40 | modify_table_visible('checkbox_{$key}', '{$key}'); 41 | {/foreach} 42 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | php: 3 | - 7.1 4 | sudo: enabled 5 | dist: xenial 6 | before_install: 7 | - echo "===========================================================" 8 | - echo "Upgrade linux packages" 9 | - echo "===========================================================" 10 | - sudo sed -i 's|http://us-east-1.ec2.archive.ubuntu.com|https://ubuntu.mirror.noc.one|g' /etc/apt/sources.list 11 | - sudo sed -i 's|http://security.ubuntu.com|https://ubuntu.mirror.noc.one|g' /etc/apt/sources.list 12 | - sudo sed -i 's|http://us-central1.gce.archive.ubuntu.com|https://ubuntu.mirror.noc.one|g' /etc/apt/sources.list 13 | - sudo sed -i 's|http://ppa.launchpad.net|https://launchpad.proxy.noc.one|g' /etc/apt/sources.list.d/*.list 14 | - curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - 15 | - sudo apt clean all && sudo apt -qq -y update 16 | - sudo apt install -y nodejs 17 | install: 18 | - sudo chmod -R 755 * 19 | - php composer.phar install 20 | - cd uim-index-dev 21 | - npm i 22 | before_script: 23 | - npm i -g phplint 24 | - cd .. 25 | script: 26 | - cp config/.config.php.example config/.config.php 27 | - phplint '**/*.php' '!vendor/**' 28 | - php xcat initdownload 29 | - php xcat initQQWry 30 | - php xcat update 31 | - cd uim-index-dev 32 | - npm run lint 33 | - npm run build 34 | cache: 35 | directories: 36 | - uim-index-dev/node_modules 37 | - $HOME/.composer/cache/files 38 | -------------------------------------------------------------------------------- /resources/views/material/user/disable.tpl: -------------------------------------------------------------------------------- 1 | {include file='user/main.tpl'} 2 |
3 |
4 |
5 |

虚空之地

6 |
7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 | 15 |
16 |
17 |
18 |

您由于某些原因而被管理员禁用了账户,请联系管理员。

19 | {if $config["enable_admin_contact"] == 'true'} 20 |

管理员联系方式:

21 | {if $config["admin_contact1"]!=null} 22 |
  • {$config["admin_contact1"]}
  • 23 | {/if} 24 | {if $config["admin_contact2"]!=null} 25 |
  • {$config["admin_contact2"]}
  • 26 | {/if} 27 | {if $config["admin_contact3"]!=null} 28 |
  • {$config["admin_contact3"]}
  • 29 | {/if} 30 | {/if} 31 |
    32 |
    33 |
    34 | 35 |
    36 | 37 |
    38 | 39 | 40 |
    41 | 42 | 43 |
    44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | {include file='user/footer.tpl'} 52 | 53 | 54 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | var console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | --------------------------------------------------------------------------------