Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
df42ac0e
C
Cloudreve
项目概览
hexbee
/
Cloudreve
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cloudreve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
df42ac0e
编写于
3月 11, 2019
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Feat: User setting
上级
4880972d
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
348 addition
and
1248 deletion
+348
-1248
application/index/controller/Member.php
application/index/controller/Member.php
+1
-1
application/index/view/home/home.html
application/index/view/home/home.html
+4
-2
application/index/view/member/setting.html
application/index/view/member/setting.html
+76
-262
application/index/view/member/setting_old.html
application/index/view/member/setting_old.html
+265
-0
composer.lock
composer.lock
+0
-981
mysql.sql
mysql.sql
+2
-2
未找到文件。
application/index/controller/Member.php
浏览文件 @
df42ac0e
...
...
@@ -185,7 +185,7 @@ class Member extends Controller{
$policyList
[
$key
]
=
$value
;
}
$avaliablePolicy
=
Db
::
name
(
"policy"
)
->
where
(
"id"
,
"in"
,
$policyList
)
->
select
();
$basicOptions
=
Option
::
getValues
([
'basic'
]);
$basicOptions
=
Option
::
getValues
([
'basic'
]
,
$this
->
userObj
->
userSQLData
);
return
view
(
'setting'
,
[
'options'
=>
$basicOptions
,
'userInfo'
=>
$userInfo
,
...
...
application/index/view/home/home.html
浏览文件 @
df42ac0e
...
...
@@ -80,10 +80,12 @@
<script
src=
"http://192.168.123.19:3000/static/js/runtime~index.bundle.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/0.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/2.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/3.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/4.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/7.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/1.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/
3
.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/
6
.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/
9
.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/
5
.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/index.chunk.js"
></script>
</html>
\ No newline at end of file
application/index/view/member/setting.html
浏览文件 @
df42ac0e
{extend name="header_home" /}
{block name="title"}用户设置- {$options.siteName}{/block}
{block name="content"}
<link
rel=
"stylesheet"
href=
"/static/css/setting.css"
/>
<style
type=
"text/css"
>
.col-md-3
{
padding-right
:
15px
;
padding-left
:
15px
;
}
</style>
<!DOCTYPE html>
<html
lang=
"zh-cn"
>
<head>
<meta
charset=
"utf-8"
>
<link
rel=
"shortcut icon"
href=
"/favicon.ico"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, shrink-to-fit=no"
>
<meta
name=
"theme-color"
content=
"{$options.themeColor}"
/>
<!--
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link
rel=
"manifest"
href=
"/manifest.json"
>
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>
用户设置- {$options.siteName}
</title>
<script
type=
"text/javascript"
>
colorTheme
=
{:
json_encode
(
$options
[
"
themeConfig
"
])};
isHomePage
=
false
;
isSharePage
=
false
;
pageId
=
"
userSetting
"
;
userInfo
=
{
uid
:
{
$userInfo
.
uid
},
nick
:
"
{$userInfo.userNick}
"
,
email
:
"
{$userInfo.userMail}
"
,
group
:
"
{$userInfo.groupData.group_name}
"
,
groupId
:
{
$userInfo
.
groupData
.
id
},
groupColor
:
"
{$userInfo.groupData.color}
"
,
regTime
:
"
{$userSQL.user_date}
"
,
homePage
:
"
{$userSQL.profile}
"
,
twoFactor
:
"
{$userSQL.two_step}
"
,
};
siteInfo
=
{
mainTitle
:
"
{$options.siteName}
"
,
};
uploadConfig
=
{
allowSource
:
false
,
allowShare
:
false
,
allowRemoteDownload
:
"
0
"
,
allowTorrentDownload
:
"
0
"
,
};
isMobile
=
window
.
innerWidth
<
600
;
</script>
</head>
<body
>
<div
id=
"container"
>
{include file="navbar_home" /}
<div
class=
"col-md-10 quota_content"
>
<h1>
用户设置
</h1>
<br>
<div
class=
"fix_side"
>
<div
class=
"fix"
>
<div
class=
"col-md-9"
>
<ul
class=
"nav nav-tabs"
>
<li
class=
"active"
><a
href=
"#home"
data-toggle=
"tab"
aria-expanded=
"true"
>
基本信息
<div
class=
"ripple-container"
></div></a></li>
<li
class=
""
><a
href=
"#security"
data-toggle=
"tab"
aria-expanded=
"false"
>
安全隐私
<div
class=
"ripple-container"
></div></a></li>
<li
class=
""
><a
href=
"#password"
data-toggle=
"tab"
aria-expanded=
"false"
>
修改密码
<div
class=
"ripple-container"
></div></a></li>
<li
class=
""
><a
href=
"#webdav"
data-toggle=
"tab"
aria-expanded=
"false"
>
WebDAV
<div
class=
"ripple-container"
></div></a></li>
</ul>
<div
id=
"myTabContent"
class=
"tab-content"
>
<div
class=
"tab-pane fade active in"
id=
"home"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
id=
"packs"
>
<div
class=
"col-md-8"
>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"uid"
>
UID:
</label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input"
>
{$userInfo.uid}
</div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"nick"
>
昵称:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"text"
class=
"form-control"
id=
"nick"
value=
"{$userInfo.userNick}"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"email"
>
Email:
</label></div>
<div
class=
"col-md-9"
>
<input
type=
"email"
class=
"form-control"
id=
"email"
value=
"{$userInfo.userMail}"
disabled
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
用户组:
</label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input group"
>
{$groupData.group_name}
</div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
注册日期:
</label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input "
>
{$userInfo.regDate}
</div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
></label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input "
><button
class=
"btn btn-raised btn-primary"
id=
"saveNick"
>
保存更改
</button></div>
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"avatar"
>
<img
src=
"/Member/Avatar/{$userInfo.uid}/l?cache=no"
class=
"img-circle avatar-img"
><br>
<button
class=
"btn btn-primary"
data-toggle=
"modal"
data-target=
"#avatar_modal"
><i
class=
"fa fa-pencil-square-o"
aria-hidden=
"true"
></i>
修改头像
</button>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tab-pane fade"
id=
"security"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
个人主页:
</label></div>
<div
class=
"col-md-9"
>
<div
><div
class=
"togglebutton"
>
<label>
<input
type=
"checkbox"
id=
"homePage"
{
eq
name=
"$userSQL.profile"
value=
"1"
}
checked
{
else
}{/
eq
}
>
</label>
</div></div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
style=
"margin-top: 10px;"
><label
for=
"inputEmail"
>
二步验证:
</label></div>
<div
class=
"col-md-9"
>
{eq name="$userSQL.two_step" value="0"}
<button
class=
"btn btn-primary btn-raised"
id=
"twoStep"
><i
class=
"fa fa-lock"
aria-hidden=
"true"
></i>
开启二步验证
</button>
{else}
<button
class=
"btn btn-primary btn-raised"
><i
class=
"fa fa-check"
aria-hidden=
"true"
></i>
已开启
</button>
{/eq}
</div>
</div>
</div>
</div>
</div>
<div
class=
"tab-pane fade"
id=
"password"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
原密码:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"password"
class=
"form-control"
id=
"passOrigin"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
新密码:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"password"
class=
"form-control"
id=
"passNew"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
确认新密码:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"password"
class=
"form-control"
id=
"passNewRepet"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
></label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input "
><button
class=
"btn btn-raised btn-primary waves-effect"
id=
"savePwd"
>
保存更改
</button></div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tab-pane fade"
id=
"webdav"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
>
{eq name="groupData.webdav" value="0"}
<div
class=
"alert alert-warning"
role=
"alert"
>
您当前的用户组不支持WebDAV
</div>
{else/}
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
连接地址:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"text"
class=
"form-control"
id=
"webdavUrl"
value=
"{$options.siteURL}WebDav/Api/uid/{$userInfo.uid}"
spellcheck=
"false"
readonly
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
用户名:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"text"
class=
"form-control"
id=
"webdavUsername"
value=
"{$userInfo.userMail}"
spellcheck=
"false"
readonly
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
style=
"margin-top: 10px;"
><label
for=
"inputEmail"
>
登录密码:
</label></div>
<div
class=
"col-md-9"
>
<button
class=
"btn btn-primary btn-raised"
id=
"setWebdavPwd"
><i
class=
"fa fa-lock"
aria-hidden=
"true"
></i>
设置/更改密码
</button>
</div>
</div>
{/eq}
<br>
<p>
你可以使用任何支持WebDAV协议的文件管理工具或操作系统将网盘映射到本地,方便多端同步管理。初次使用请先设置WebDAV登录密码,此密码默认与登录密码不相同。
</p>
</div>
</div>
</div>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div
id=
"root"
></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
<script
src=
"http://192.168.123.19:3000/static/js/runtime~setting.bundle.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/0.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/2.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/3.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/8.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/10.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/1.chunk.js"
></script>
<script
src=
"http://192.168.123.19:3000/static/js/setting.chunk.js"
></script>
</div>
</div>
<div
class=
"col-md-3"
><div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
公告
</div>
<div
class=
"panel-body"
>
公告内容
</div>
</div></div>
</div>
</div>
<br>
<div
class=
"fix_side"
>
<div
class=
"fix"
>
</div>
</div>
</div>
<div
class=
"modal fade"
tabindex=
"-1"
role=
"dialog"
id=
"avatar_modal"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<h4
class=
"modal-title"
>
修改头像
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-4"
><div
class=
"avatar"
><img
src=
"/Member/Avatar/{$userInfo.uid}/l?cache=no"
class=
"img-circle avatar-img"
><br></div></div>
<div
class=
"col-md-8"
>
<span
class=
"btn btn-raised btn-info fileinput-button"
id=
"uploadAvatar"
>
<span
id=
"upload-text"
>
上传头像
</span>
<input
type=
"file"
accept=
"image/*"
id=
"avatar_file"
name=
"avatar"
>
</span>
<br><button
class=
"btn btn-raised btn-info"
id=
"useGravatar"
>
使用Gravatar头像
</button>
<br>
修改头像后请清理浏览器缓存
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-primary "
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<div
class=
"modal fade"
tabindex=
"-1"
role=
"dialog"
id=
"two_step_modal"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<h4
class=
"modal-title"
>
开启二步验证
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-4"
><img
id=
"qrcode"
></div>
<div
class=
"col-md-8"
>
<div
class=
"alert alert-success"
role=
"alert"
>
请使用任意二步验证APP或者支持二步验证的密码管理软件扫描左侧二维码添加本站。扫描完成后请填写二步验证APP给出的6位验证码以开启二步验证。
</div>
<input
type=
"number"
class=
"form-control"
placeholder=
"请输入6位验证码"
id=
"vCode"
>
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-info "
id=
"confirm"
>
确认开启
</button>
<button
class=
"btn btn-primary "
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<div
class=
"modal fade"
tabindex=
"-1"
role=
"dialog"
id=
"set_webdav_pwd"
>
<div
class=
"modal-dialog modal-sm"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<h4
class=
"modal-title"
>
设置WebDAV认证密码
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"row fix"
>
<label>
请输入密码:
</label>
<input
type=
"password"
id=
"webdav_pwd"
class=
"form-control"
autocomplete=
"false"
>
</div>
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-info "
id=
"confirmWebdav"
>
保存
</button>
<button
class=
"btn btn-primary "
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
</body>
<script
src=
"/static/js/material.js"
></script>
<script
src=
"/static/js/uploader.min.js"
></script>
<script
type=
"text/javascript"
>
upload_load
=
0
;
</script>
<script
src=
"/static/js/setting.js"
></script>
{$options.js_code}
</html>
{/block}
\ No newline at end of file
</html>
\ No newline at end of file
application/index/view/member/setting_old.html
0 → 100644
浏览文件 @
df42ac0e
{extend name="header_home" /}
{block name="title"}用户设置- {$options.siteName}{/block}
{block name="content"}
<link
rel=
"stylesheet"
href=
"/static/css/setting.css"
/>
<style
type=
"text/css"
>
.col-md-3
{
padding-right
:
15px
;
padding-left
:
15px
;
}
</style>
</head>
<body
>
<div
id=
"container"
>
{include file="navbar_home" /}
<div
class=
"col-md-10 quota_content"
>
<h1>
用户设置
</h1>
<br>
<div
class=
"fix_side"
>
<div
class=
"fix"
>
<div
class=
"col-md-9"
>
<ul
class=
"nav nav-tabs"
>
<li
class=
"active"
><a
href=
"#home"
data-toggle=
"tab"
aria-expanded=
"true"
>
基本信息
<div
class=
"ripple-container"
></div></a></li>
<li
class=
""
><a
href=
"#security"
data-toggle=
"tab"
aria-expanded=
"false"
>
安全隐私
<div
class=
"ripple-container"
></div></a></li>
<li
class=
""
><a
href=
"#password"
data-toggle=
"tab"
aria-expanded=
"false"
>
修改密码
<div
class=
"ripple-container"
></div></a></li>
<li
class=
""
><a
href=
"#webdav"
data-toggle=
"tab"
aria-expanded=
"false"
>
WebDAV
<div
class=
"ripple-container"
></div></a></li>
</ul>
<div
id=
"myTabContent"
class=
"tab-content"
>
<div
class=
"tab-pane fade active in"
id=
"home"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
id=
"packs"
>
<div
class=
"col-md-8"
>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"uid"
>
UID:
</label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input"
>
{$userInfo.uid}
</div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"nick"
>
昵称:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"text"
class=
"form-control"
id=
"nick"
value=
"{$userInfo.userNick}"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"email"
>
Email:
</label></div>
<div
class=
"col-md-9"
>
<input
type=
"email"
class=
"form-control"
id=
"email"
value=
"{$userInfo.userMail}"
disabled
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
用户组:
</label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input group"
>
{$groupData.group_name}
</div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
注册日期:
</label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input "
>
{$userInfo.regDate}
</div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
></label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input "
><button
class=
"btn btn-raised btn-primary"
id=
"saveNick"
>
保存更改
</button></div>
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"avatar"
>
<img
src=
"/Member/Avatar/{$userInfo.uid}/l?cache=no"
class=
"img-circle avatar-img"
><br>
<button
class=
"btn btn-primary"
data-toggle=
"modal"
data-target=
"#avatar_modal"
><i
class=
"fa fa-pencil-square-o"
aria-hidden=
"true"
></i>
修改头像
</button>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tab-pane fade"
id=
"security"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
个人主页:
</label></div>
<div
class=
"col-md-9"
>
<div
><div
class=
"togglebutton"
>
<label>
<input
type=
"checkbox"
id=
"homePage"
{
eq
name=
"$userSQL.profile"
value=
"1"
}
checked
{
else
}{/
eq
}
>
</label>
</div></div>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
style=
"margin-top: 10px;"
><label
for=
"inputEmail"
>
二步验证:
</label></div>
<div
class=
"col-md-9"
>
{eq name="$userSQL.two_step" value="0"}
<button
class=
"btn btn-primary btn-raised"
id=
"twoStep"
><i
class=
"fa fa-lock"
aria-hidden=
"true"
></i>
开启二步验证
</button>
{else}
<button
class=
"btn btn-primary btn-raised"
><i
class=
"fa fa-check"
aria-hidden=
"true"
></i>
已开启
</button>
{/eq}
</div>
</div>
</div>
</div>
</div>
<div
class=
"tab-pane fade"
id=
"password"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
原密码:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"password"
class=
"form-control"
id=
"passOrigin"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
新密码:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"password"
class=
"form-control"
id=
"passNew"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
确认新密码:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"password"
class=
"form-control"
id=
"passNewRepet"
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
></label></div>
<div
class=
"col-md-9"
>
<div
class=
"non_input "
><button
class=
"btn btn-raised btn-primary waves-effect"
id=
"savePwd"
>
保存更改
</button></div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tab-pane fade"
id=
"webdav"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-body"
>
{eq name="groupData.webdav" value="0"}
<div
class=
"alert alert-warning"
role=
"alert"
>
您当前的用户组不支持WebDAV
</div>
{else/}
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
连接地址:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"text"
class=
"form-control"
id=
"webdavUrl"
value=
"{$options.siteURL}WebDav/Api/uid/{$userInfo.uid}"
spellcheck=
"false"
readonly
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
><label
for=
"inputEmail"
>
用户名:
</label></div>
<div
class=
"col-md-6"
>
<input
type=
"text"
class=
"form-control"
id=
"webdavUsername"
value=
"{$userInfo.userMail}"
spellcheck=
"false"
readonly
>
</div>
</div>
<div
class=
"row fix"
>
<div
class=
"col-md-3 option_name"
style=
"margin-top: 10px;"
><label
for=
"inputEmail"
>
登录密码:
</label></div>
<div
class=
"col-md-9"
>
<button
class=
"btn btn-primary btn-raised"
id=
"setWebdavPwd"
><i
class=
"fa fa-lock"
aria-hidden=
"true"
></i>
设置/更改密码
</button>
</div>
</div>
{/eq}
<br>
<p>
你可以使用任何支持WebDAV协议的文件管理工具或操作系统将网盘映射到本地,方便多端同步管理。初次使用请先设置WebDAV登录密码,此密码默认与登录密码不相同。
</p>
</div>
</div>
</div>
</div>
</div>
<div
class=
"col-md-3"
><div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
公告
</div>
<div
class=
"panel-body"
>
公告内容
</div>
</div></div>
</div>
</div>
<br>
<div
class=
"fix_side"
>
<div
class=
"fix"
>
</div>
</div>
</div>
<div
class=
"modal fade"
tabindex=
"-1"
role=
"dialog"
id=
"avatar_modal"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<h4
class=
"modal-title"
>
修改头像
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-4"
><div
class=
"avatar"
><img
src=
"/Member/Avatar/{$userInfo.uid}/l?cache=no"
class=
"img-circle avatar-img"
><br></div></div>
<div
class=
"col-md-8"
>
<span
class=
"btn btn-raised btn-info fileinput-button"
id=
"uploadAvatar"
>
<span
id=
"upload-text"
>
上传头像
</span>
<input
type=
"file"
accept=
"image/*"
id=
"avatar_file"
name=
"avatar"
>
</span>
<br><button
class=
"btn btn-raised btn-info"
id=
"useGravatar"
>
使用Gravatar头像
</button>
<br>
修改头像后请清理浏览器缓存
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-primary "
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<div
class=
"modal fade"
tabindex=
"-1"
role=
"dialog"
id=
"two_step_modal"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<h4
class=
"modal-title"
>
开启二步验证
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"row fix"
>
<div
class=
"col-md-4"
><img
id=
"qrcode"
></div>
<div
class=
"col-md-8"
>
<div
class=
"alert alert-success"
role=
"alert"
>
请使用任意二步验证APP或者支持二步验证的密码管理软件扫描左侧二维码添加本站。扫描完成后请填写二步验证APP给出的6位验证码以开启二步验证。
</div>
<input
type=
"number"
class=
"form-control"
placeholder=
"请输入6位验证码"
id=
"vCode"
>
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-info "
id=
"confirm"
>
确认开启
</button>
<button
class=
"btn btn-primary "
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<div
class=
"modal fade"
tabindex=
"-1"
role=
"dialog"
id=
"set_webdav_pwd"
>
<div
class=
"modal-dialog modal-sm"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<h4
class=
"modal-title"
>
设置WebDAV认证密码
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"row fix"
>
<label>
请输入密码:
</label>
<input
type=
"password"
id=
"webdav_pwd"
class=
"form-control"
autocomplete=
"false"
>
</div>
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-info "
id=
"confirmWebdav"
>
保存
</button>
<button
class=
"btn btn-primary "
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
</body>
<script
src=
"/static/js/material.js"
></script>
<script
src=
"/static/js/uploader.min.js"
></script>
<script
type=
"text/javascript"
>
upload_load
=
0
;
</script>
<script
src=
"/static/js/setting.js"
></script>
{$options.js_code}
</html>
{/block}
\ No newline at end of file
composer.lock
已删除
100644 → 0
浏览文件 @
4880972d
此差异已折叠。
点击以展开。
mysql.sql
浏览文件 @
df42ac0e
...
...
@@ -191,7 +191,7 @@ INSERT INTO `sd_options` (`id`, `option_name`, `option_value`, `option_type`) VA
(
32
,
'mail_reset_pwd_template'
,
' <!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Transitional//EN
\"
\"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
\"
>
\r\n
<html xmlns=
\"
http://www.w3.org/1999/xhtml
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
, Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
>
\r\n
<head>
\r\n
<meta name=
\"
viewport
\"
content=
\"
width=device-width
\"
/>
\r\n
<meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html; charset=UTF-8
\"
/>
\r\n
<title>重设密码</title>
\r\n\r\n\r\n
<style type=
\"
text/css
\"
>
\r\n
img {
\r\n
max-width: 100%;
\r\n
}
\r\n
body {
\r\n
-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; line-height: 1.6em;
\r\n
}
\r\n
body {
\r\n
background-color: #f6f6f6;
\r\n
}
\r\n
@media only screen and (max-width: 640px) {
\r\n
body {
\r\n
padding: 0 !important;
\r\n
}
\r\n
h1 {
\r\n
font-weight: 800 !important; margin: 20px 0 5px !important;
\r\n
}
\r\n
h2 {
\r\n
font-weight: 800 !important; margin: 20px 0 5px !important;
\r\n
}
\r\n
h3 {
\r\n
font-weight: 800 !important; margin: 20px 0 5px !important;
\r\n
}
\r\n
h4 {
\r\n
font-weight: 800 !important; margin: 20px 0 5px !important;
\r\n
}
\r\n
h1 {
\r\n
font-size: 22px !important;
\r\n
}
\r\n
h2 {
\r\n
font-size: 18px !important;
\r\n
}
\r\n
h3 {
\r\n
font-size: 16px !important;
\r\n
}
\r\n
.container {
\r\n
padding: 0 !important; width: 100% !important;
\r\n
}
\r\n
.content {
\r\n
padding: 0 !important;
\r\n
}
\r\n
.content-wrap {
\r\n
padding: 10px !important;
\r\n
}
\r\n
.invoice {
\r\n
width: 100% !important;
\r\n
}
\r\n
}
\r\n
</style>
\r\n
</head>
\r\n\r\n
<body itemscope itemtype=
\"
http://schema.org/EmailMessage
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; line-height: 1.6em; background-color: #f6f6f6; margin: 0;
\"
bgcolor=
\"
#f6f6f6
\"
>
\r\n\r\n
<table class=
\"
body-wrap
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; width: 100%; background-color: #f6f6f6; margin: 0;
\"
bgcolor=
\"
#f6f6f6
\"
><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;
\"
valign=
\"
top
\"
></td>
\r\n
<td class=
\"
container
\"
width=
\"
600
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; display: block !important; max-width: 600px !important; clear: both !important; margin: 0 auto;
\"
valign=
\"
top
\"
>
\r\n
<div class=
\"
content
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; max-width: 600px; display: block; margin: 0 auto; padding: 20px;
\"
>
\r\n
<table class=
\"
main
\"
width=
\"
100%
\"
cellpadding=
\"
0
\"
cellspacing=
\"
0
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; border-radius: 3px; background-color: #fff; margin: 0; border: 1px solid #e9e9e9;
\"
bgcolor=
\"
#fff
\"
><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
alert alert-warning
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 16px; vertical-align: top; color: #fff; font-weight: 500; text-align: center; border-radius: 3px 3px 0 0; background-color: #2196F3; margin: 0; padding: 20px;
\"
align=
\"
center
\"
bgcolor=
\"
#FF9F00
\"
valign=
\"
top
\"
>
\r\n
重设{siteTitle}密码
\r\n
</td>
\r\n
</tr><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
content-wrap
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 20px;
\"
valign=
\"
top
\"
>
\r\n
<table width=
\"
100%
\"
cellpadding=
\"
0
\"
cellspacing=
\"
0
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
content-block
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 0 0 20px;
\"
valign=
\"
top
\"
>
\r\n
亲爱的 <strong style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
>{userName}</strong> :
\r\n
</td>
\r\n
</tr><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
content-block
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 0 0 20px;
\"
valign=
\"
top
\"
>
\r\n
请点击下方按钮完成密码重设。如果非你本人操作,请忽略此邮件。
\r\n
</td>
\r\n
</tr><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
content-block
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 0 0 20px;
\"
valign=
\"
top
\"
>
\r\n
<a href=
\"
{resetUrl}
\"
class=
\"
btn-primary
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; color: #FFF; text-decoration: none; line-height: 2em; font-weight: bold; text-align: center; cursor: pointer; display: inline-block; border-radius: 5px; text-transform: capitalize; background-color: #2196F3; margin: 0; border-color: #2196F3; border-style: solid; border-width: 10px 20px;
\"
>重设密码</a>
\r\n
</td>
\r\n
</tr><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
content-block
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 0 0 20px;
\"
valign=
\"
top
\"
>
\r\n
感谢您选择{siteTitle}。
\r\n
</td>
\r\n
</tr></table></td>
\r\n
</tr></table><div class=
\"
footer
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; width: 100%; clear: both; color: #999; margin: 0; padding: 20px;
\"
>
\r\n
<table width=
\"
100%
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><tr style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;
\"
><td class=
\"
aligncenter content-block
\"
style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; vertical-align: top; color: #999; text-align: center; margin: 0; padding: 0 0 20px;
\"
align=
\"
center
\"
valign=
\"
top
\"
>此邮件由系统自动发送,请不要直接回复。</td>
\r\n
</tr></table></div></div>
\r\n
</td>
\r\n
<td style=
\"
font-family:
\'
Helvetica Neue
\'
,Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;
\"
valign=
\"
top
\"
></td>
\r\n
</tr></table></body>
\r\n
</html>
\r\n
'
,
'mail_template'
),
(
49
,
'database_version'
,
'5'
,
'version'
),
(
43
,
'hot_share_num'
,
'10'
,
'share'
),
(
44
,
'gravatar_server'
,
'https://
v2ex.assets.uxengine.net/gravatar
/'
,
'avatar'
),
(
44
,
'gravatar_server'
,
'https://
gravatar.loli.net
/'
,
'avatar'
),
(
45
,
'admin_color_body'
,
'fixed-nav sticky-footer bg-light'
,
'admin'
),
(
46
,
'admin_color_nav'
,
'navbar navbar-expand-lg fixed-top navbar-light bg-light'
,
'admin'
),
(
47
,
'js_code'
,
'<script type=
\"
text/javascript
\"
>
\r\n\r\n
</script>'
,
'basic'
),
...
...
@@ -304,7 +304,7 @@ CREATE TABLE `sd_users` (
--
INSERT
INTO
`sd_users`
(
`id`
,
`user_email`
,
`user_nick`
,
`user_pass`
,
`user_date`
,
`user_status`
,
`user_group`
,
`group_primary`
,
`user_activation_key`
,
`used_storage`
,
`two_step`
,
`delay_time`
,
`avatar`
,
`profile`
,
`webdav_key`
)
VALUES
(
1
,
'admin@cloudreve.org'
,
'Admin'
,
'd8446059f8846a2c111a7f53515665fb'
,
'2018-0
1-30 02:13:34
'
,
0
,
1
,
0
,
'n'
,
0
,
'0'
,
0
,
'default'
,
1
,
'd8446059f8846a2c111a7f53515665fb'
);
(
1
,
'admin@cloudreve.org'
,
'Admin'
,
'd8446059f8846a2c111a7f53515665fb'
,
'2018-0
2-04 12:56:38
'
,
0
,
1
,
0
,
'n'
,
0
,
'0'
,
0
,
'default'
,
1
,
'd8446059f8846a2c111a7f53515665fb'
);
CREATE
TABLE
`sd_download`
(
`id`
int
(
11
)
NOT
NULL
,
`pid`
text
NOT
NULL
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录