Commit bd4f9613 authored by ibuler's avatar ibuler

[Update] 修改一些文案

parent d284c217
...@@ -319,32 +319,36 @@ function beforeDrag() { ...@@ -319,32 +319,36 @@ function beforeDrag() {
return true return true
} }
function beforeDrop() { function beforeDrop(treeId, treeNodes, targetNode, moveType) {
return true var treeNodesNames = [];
$.each(treeNodes, function (index, value) {
treeNodesNames.push(value.value);
});
var msg = "你想移动节点: `" + treeNodesNames.join(",") + "` 到 `" + targetNode.value + "` 下吗?";
if (confirm(msg)){
return true
} else {
return false
}
} }
function onDrag(event, treeId, treeNodes) { function onDrag(event, treeId, treeNodes) {
} }
function onDrop(event, treeId, treeNodes, targetNode, moveType) { function onDrop(event, treeId, treeNodes, targetNode, moveType) {
var treeNodesNames = [];
var treeNodesIds = []; var treeNodesIds = [];
$.each(treeNodes, function (index, value) { $.each(treeNodes, function (index, value) {
treeNodesNames.push(value.value);
treeNodesIds.push(value.id); treeNodesIds.push(value.id);
}); });
var msg = "你想移动节点: `" + treeNodesNames.join(",") + "` 到 `" + targetNode.value + "` 下吗?";
var the_url = "{% url 'api-assets:node-add-children' pk=DEFAULT_PK %}".replace("{{ DEFAULT_PK }}", targetNode.id); var the_url = "{% url 'api-assets:node-add-children' pk=DEFAULT_PK %}".replace("{{ DEFAULT_PK }}", targetNode.id);
var body = {nodes: treeNodesIds}; var body = {nodes: treeNodesIds};
if (confirm(msg)){ APIUpdateAttr({
APIUpdateAttr({ url: the_url,
url: the_url, method: "PUT",
method: "PUT", body: JSON.stringify(body)
body: JSON.stringify(body) })
})
}
} }
function initTree() { function initTree() {
......
...@@ -58,8 +58,7 @@ class UserAssetListView(LoginRequiredMixin, TemplateView): ...@@ -58,8 +58,7 @@ class UserAssetListView(LoginRequiredMixin, TemplateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': _('Assets'), 'action': _('My assets'),
'action': _('Asset list'),
'system_users': SystemUser.objects.all(), 'system_users': SystemUser.objects.all(),
} }
kwargs.update(context) kwargs.update(context)
......
...@@ -84,7 +84,7 @@ msgstr "资产" ...@@ -84,7 +84,7 @@ msgstr "资产"
#: assets/forms/user.py:24 #: assets/forms/user.py:24
msgid "Password or private key passphrase" msgid "Password or private key passphrase"
msgstr "密码或钥密码" msgstr "密码或钥密码"
#: assets/forms/user.py:25 assets/models/user.py:30 common/forms.py:113 #: assets/forms/user.py:25 assets/models/user.py:30 common/forms.py:113
#: users/forms.py:16 users/forms.py:24 users/templates/users/login.html:56 #: users/forms.py:16 users/forms.py:24 users/templates/users/login.html:56
...@@ -683,7 +683,7 @@ msgstr "认证" ...@@ -683,7 +683,7 @@ msgstr "认证"
#: assets/templates/assets/_system_user.html:47 #: assets/templates/assets/_system_user.html:47
msgid "Auto generate key" msgid "Auto generate key"
msgstr "自动生成钥" msgstr "自动生成钥"
#: assets/templates/assets/_system_user.html:64 #: assets/templates/assets/_system_user.html:64
#: assets/templates/assets/asset_create.html:58 #: assets/templates/assets/asset_create.html:58
...@@ -1192,7 +1192,7 @@ msgstr "密码认证" ...@@ -1192,7 +1192,7 @@ msgstr "密码认证"
#: common/forms.py:156 #: common/forms.py:156
msgid "Public key auth" msgid "Public key auth"
msgstr "钥认证" msgstr "钥认证"
#: common/forms.py:159 common/templates/common/terminal_setting.html:63 #: common/forms.py:159 common/templates/common/terminal_setting.html:63
#: terminal/forms.py:30 terminal/models.py:20 #: terminal/forms.py:30 terminal/models.py:20
...@@ -1731,7 +1731,7 @@ msgid "" ...@@ -1731,7 +1731,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
"\n" "\n"
" 您的ssh钥没有设置或已失效,请点击 <a href=" " 您的ssh钥没有设置或已失效,请点击 <a href="
"\"%(user_pubkey_update)s\"> 链接 </a> 更新\n" "\"%(user_pubkey_update)s\"> 链接 </a> 更新\n"
" " " "
...@@ -2329,7 +2329,7 @@ msgstr "将失效用户当前密码,并发送重设密码邮件到用户邮箱 ...@@ -2329,7 +2329,7 @@ msgstr "将失效用户当前密码,并发送重设密码邮件到用户邮箱
msgid "" msgid ""
"The reset-ssh-public-key E-mail has been sent successfully. Please inform " "The reset-ssh-public-key E-mail has been sent successfully. Please inform "
"the user to update his new ssh public key." "the user to update his new ssh public key."
msgstr "重设钥邮件将会发送到用户邮箱" msgstr "重设钥邮件将会发送到用户邮箱"
#: users/templates/users/user_detail.html:350 #: users/templates/users/user_detail.html:350
#: users/templates/users/user_profile.html:140 #: users/templates/users/user_profile.html:140
...@@ -2338,7 +2338,7 @@ msgstr "重置SSH密钥" ...@@ -2338,7 +2338,7 @@ msgstr "重置SSH密钥"
#: users/templates/users/user_detail.html:360 #: users/templates/users/user_detail.html:360
msgid "This will reset the user public key and send a reset mail" msgid "This will reset the user public key and send a reset mail"
msgstr "将会失效用户当前钥,并发送重置邮件到用户邮箱" msgstr "将会失效用户当前钥,并发送重置邮件到用户邮箱"
#: users/templates/users/user_detail.html:377 #: users/templates/users/user_detail.html:377
#: users/templates/users/user_profile.html:166 #: users/templates/users/user_profile.html:166
...@@ -2561,7 +2561,7 @@ msgstr "禁用或失效" ...@@ -2561,7 +2561,7 @@ msgstr "禁用或失效"
#: users/utils.py:154 #: users/utils.py:154
msgid "Password or SSH public key invalid" msgid "Password or SSH public key invalid"
msgstr "密码或钥不合法" msgstr "密码或钥不合法"
#: users/views/group.py:29 #: users/views/group.py:29
msgid "User group list" msgid "User group list"
...@@ -2642,7 +2642,7 @@ msgstr "密码更新" ...@@ -2642,7 +2642,7 @@ msgstr "密码更新"
#: users/views/user.py:375 #: users/views/user.py:375
msgid "Public key update" msgid "Public key update"
msgstr "钥更新" msgstr "钥更新"
#~ msgid "Help" #~ msgid "Help"
#~ msgstr "帮助" #~ msgstr "帮助"
...@@ -4,16 +4,16 @@ from __future__ import unicode_literals ...@@ -4,16 +4,16 @@ from __future__ import unicode_literals
from django.conf.urls import url, include from django.conf.urls import url, include
from django.conf import settings from django.conf import settings
from django.conf.urls.static import static from django.conf.urls.static import static
from django.views.static import serve as static_serve
from rest_framework.schemas import get_schema_view from rest_framework.schemas import get_schema_view
from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer
from .views import IndexView from .views import IndexView, LunaView
schema_view = get_schema_view(title='Users API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer]) schema_view = get_schema_view(title='Users API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer])
urlpatterns = [ urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'), url(r'^$', IndexView.as_view(), name='index'),
url(r'^luna/$', LunaView.as_view(), name='luna-error'),
url(r'^users/', include('users.urls.views_urls', namespace='users')), url(r'^users/', include('users.urls.views_urls', namespace='users')),
url(r'^assets/', include('assets.urls.views_urls', namespace='assets')), url(r'^assets/', include('assets.urls.views_urls', namespace='assets')),
url(r'^perms/', include('perms.urls.views_urls', namespace='perms')), url(r'^perms/', include('perms.urls.views_urls', namespace='perms')),
......
from django.views.generic import TemplateView from django.http import HttpResponse
from django.views.generic import TemplateView, View
from django.utils import timezone from django.utils import timezone
from django.db.models import Count from django.db.models import Count
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
...@@ -150,3 +151,12 @@ class IndexView(LoginRequiredMixin, TemplateView): ...@@ -150,3 +151,12 @@ class IndexView(LoginRequiredMixin, TemplateView):
kwargs.update(context) kwargs.update(context)
return super(IndexView, self).get_context_data(**kwargs) return super(IndexView, self).get_context_data(**kwargs)
class LunaView(View):
def get(self, request):
msg = """
Luna是单独部署的一个程序,你需要部署luna,coco,配置nginx做url分发,
如果你看到了这个页面,证明你访问的不是nginx监听的端口,祝你好运
"""
return HttpResponse(msg)
\ No newline at end of file
...@@ -3299,7 +3299,7 @@ body.tour-open .animated { ...@@ -3299,7 +3299,7 @@ body.tour-open .animated {
border-bottom: 1px solid #e7eaec; border-bottom: 1px solid #e7eaec;
} }
body { body {
font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "open sans", "Helvetica Neue", "微软雅黑", Helvetica, Arial, sans-serif;
background-color: #2f4050; background-color: #2f4050;
font-size: 13px; font-size: 13px;
color: #676a6c; color: #676a6c;
......
...@@ -62,11 +62,11 @@ ...@@ -62,11 +62,11 @@
<li> <li>
<a href="">{% trans 'Dashboard' %}</a> <a href="">{% trans 'Dashboard' %}</a>
</li> </li>
<li>
{% if app %} {% if app %}
<li>
<a>{{ app }}</a> <a>{{ app }}</a>
{% endif %}
</li> </li>
{% endif %}
{% if action %} {% if action %}
<li class="active"> <li class="active">
<strong>{{ action }}</strong> <strong>{{ action }}</strong>
......
...@@ -42,6 +42,11 @@ ...@@ -42,6 +42,11 @@
<li id="session-online"><a href="{% url 'terminal:session-online-list' %}">{% trans 'Session online' %}</a></li> <li id="session-online"><a href="{% url 'terminal:session-online-list' %}">{% trans 'Session online' %}</a></li>
<li id="session-offline"><a href="{% url 'terminal:session-offline-list' %}">{% trans 'Session offline' %}</a></li> <li id="session-offline"><a href="{% url 'terminal:session-offline-list' %}">{% trans 'Session offline' %}</a></li>
<li id="command"><a href="{% url 'terminal:command-list' %}">{% trans 'Commands' %}</a></li> <li id="command"><a href="{% url 'terminal:command-list' %}">{% trans 'Commands' %}</a></li>
<li>
<a href="{% url 'terminal:web-terminal' %}" target="_blank">
<span class="nav-label">{% trans 'Web terminal' %}</span>
</a>
</li>
<li id="terminal"><a href="{% url 'terminal:terminal-list' %}">{% trans 'Terminal' %}</a></li> <li id="terminal"><a href="{% url 'terminal:terminal-list' %}">{% trans 'Terminal' %}</a></li>
</ul> </ul>
</li> </li>
......
...@@ -6,7 +6,7 @@ from django.conf import settings ...@@ -6,7 +6,7 @@ from django.conf import settings
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from common.mixins import DatetimeSearchMixin from common.mixins import DatetimeSearchMixin, AdminUserRequiredMixin
from ..models import Command from ..models import Command
from .. import utils from .. import utils
from ..backends import get_multi_command_store from ..backends import get_multi_command_store
...@@ -15,7 +15,7 @@ __all__ = ['CommandListView'] ...@@ -15,7 +15,7 @@ __all__ = ['CommandListView']
common_storage = get_multi_command_store() common_storage = get_multi_command_store()
class CommandListView(DatetimeSearchMixin, ListView): class CommandListView(DatetimeSearchMixin, AdminUserRequiredMixin, ListView):
model = Command model = Command
template_name = "terminal/command_list.html" template_name = "terminal/command_list.html"
context_object_name = 'command_list' context_object_name = 'command_list'
......
...@@ -97,7 +97,7 @@ class SessionOfflineListView(SessionListView): ...@@ -97,7 +97,7 @@ class SessionOfflineListView(SessionListView):
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
class SessionDetailView(SingleObjectMixin, ListView): class SessionDetailView(SingleObjectMixin, AdminUserRequiredMixin, ListView):
template_name = 'terminal/session_detail.html' template_name = 'terminal/session_detail.html'
model = Session model = Session
object = None object = None
......
...@@ -145,7 +145,8 @@ class UserAuthApi(APIView): ...@@ -145,7 +145,8 @@ class UserAuthApi(APIView):
if not login_ip: if not login_ip:
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR', '').split(',') x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR', '').split(',')
if x_forwarded_for:
if x_forwarded_for and x_forwarded_for[0]:
login_ip = x_forwarded_for[0] login_ip = x_forwarded_for[0]
else: else:
login_ip = request.META.get("REMOTE_ADDR") login_ip = request.META.get("REMOTE_ADDR")
......
...@@ -16,7 +16,8 @@ class AccessKey(models.Model): ...@@ -16,7 +16,8 @@ class AccessKey(models.Model):
default=uuid.uuid4, editable=False) default=uuid.uuid4, editable=False)
secret = models.UUIDField(verbose_name='AccessKeySecret', secret = models.UUIDField(verbose_name='AccessKeySecret',
default=uuid.uuid4, editable=False) default=uuid.uuid4, editable=False)
user = models.ForeignKey(User, verbose_name='User', on_delete=models.CASCADE, related_name='access_key') user = models.ForeignKey(User, verbose_name='User',
on_delete=models.CASCADE, related_name='access_key')
def get_id(self): def get_id(self):
return str(self.id) return str(self.id)
......
...@@ -57,6 +57,7 @@ class UserLoginView(FormView): ...@@ -57,6 +57,7 @@ class UserLoginView(FormView):
return HttpResponse(_("Please enable cookies and try again.")) return HttpResponse(_("Please enable cookies and try again."))
auth_login(self.request, form.get_user()) auth_login(self.request, form.get_user())
x_forwarded_for = self.request.META.get('HTTP_X_FORWARDED_FOR', '').split(',') x_forwarded_for = self.request.META.get('HTTP_X_FORWARDED_FOR', '').split(',')
if x_forwarded_for and x_forwarded_for[0]: if x_forwarded_for and x_forwarded_for[0]:
login_ip = x_forwarded_for[0] login_ip = x_forwarded_for[0]
else: else:
......
...@@ -313,7 +313,6 @@ class UserProfileView(LoginRequiredMixin, TemplateView): ...@@ -313,7 +313,6 @@ class UserProfileView(LoginRequiredMixin, TemplateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': _('Users'),
'action': _('Profile'), 'action': _('Profile'),
} }
kwargs.update(context) kwargs.update(context)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment