Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
4e67749e
Commit
4e67749e
authored
Jul 10, 2017
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Docs] 添加api dockers
parent
e120fd56
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
99 additions
and
51 deletions
+99
-51
api.py
apps/applications/api.py
+0
-3
api.py
apps/assets/api.py
+1
-0
api_urls.py
apps/assets/urls/api_urls.py
+5
-5
settings.py
apps/jumpserver/settings.py
+20
-1
urls.py
apps/jumpserver/urls.py
+8
-17
views.py
apps/jumpserver/views.py
+4
-6
api.py
apps/users/api.py
+30
-2
user_list.html
apps/users/templates/users/user_list.html
+0
-2
api_urls.py
apps/users/urls/api_urls.py
+5
-4
user.py
apps/users/views/user.py
+11
-11
config_example.py
config_example.py
+15
-0
No files found.
apps/applications/api.py
View file @
4e67749e
...
@@ -2,9 +2,6 @@
...
@@ -2,9 +2,6 @@
#
#
from
collections
import
OrderedDict
from
collections
import
OrderedDict
from
django.core.cache
import
cache
from
django.conf
import
settings
from
django.utils
import
timezone
import
copy
import
copy
from
rest_framework.generics
import
ListCreateAPIView
from
rest_framework.generics
import
ListCreateAPIView
from
rest_framework
import
viewsets
from
rest_framework
import
viewsets
...
...
apps/assets/api.py
View file @
4e67749e
...
@@ -191,6 +191,7 @@ class AssetAdminUserTestView(AssetRefreshHardwareView):
...
@@ -191,6 +191,7 @@ class AssetAdminUserTestView(AssetRefreshHardwareView):
class
AssetGroupPushSystemUserView
(
generics
.
UpdateAPIView
):
class
AssetGroupPushSystemUserView
(
generics
.
UpdateAPIView
):
queryset
=
AssetGroup
.
objects
.
all
()
queryset
=
AssetGroup
.
objects
.
all
()
permission_classes
=
(
IsSuperUser
,)
permission_classes
=
(
IsSuperUser
,)
serializer_class
=
serializers
.
AssetSerializer
def
patch
(
self
,
request
,
*
args
,
**
kwargs
):
def
patch
(
self
,
request
,
*
args
,
**
kwargs
):
asset_group
=
self
.
get_object
()
asset_group
=
self
.
get_object
()
...
...
apps/assets/urls/api_urls.py
View file @
4e67749e
...
@@ -8,14 +8,14 @@ app_name = 'assets'
...
@@ -8,14 +8,14 @@ app_name = 'assets'
router
=
BulkRouter
()
router
=
BulkRouter
()
router
.
register
(
r'v1/
asset-
groups'
,
api
.
AssetGroupViewSet
,
'asset-group'
)
router
.
register
(
r'v1/groups'
,
api
.
AssetGroupViewSet
,
'asset-group'
)
router
.
register
(
r'v1/assets'
,
api
.
AssetViewSet
,
'asset'
)
router
.
register
(
r'v1/assets'
,
api
.
AssetViewSet
,
'asset'
)
router
.
register
(
r'v1/idc'
,
api
.
IDCViewSet
,
'idc'
)
router
.
register
(
r'v1/idc'
,
api
.
IDCViewSet
,
'idc'
)
router
.
register
(
r'v1/admin-user'
,
api
.
AdminUserViewSet
,
'admin-user'
)
router
.
register
(
r'v1/admin-user'
,
api
.
AdminUserViewSet
,
'admin-user'
)
router
.
register
(
r'v1/system-user'
,
api
.
SystemUserViewSet
,
'system-user'
)
router
.
register
(
r'v1/system-user'
,
api
.
SystemUserViewSet
,
'system-user'
)
urlpatterns
=
[
urlpatterns
=
[
url
(
r'^v1/assets
_
bulk/$'
,
api
.
AssetListUpdateApi
.
as_view
(),
name
=
'asset-bulk-update'
),
url
(
r'^v1/assets
-
bulk/$'
,
api
.
AssetListUpdateApi
.
as_view
(),
name
=
'asset-bulk-update'
),
url
(
r'^v1/system-user/(?P<pk>[0-9]+)/auth-info/'
,
api
.
SystemUserAuthInfoApi
.
as_view
(),
url
(
r'^v1/system-user/(?P<pk>[0-9]+)/auth-info/'
,
api
.
SystemUserAuthInfoApi
.
as_view
(),
name
=
'system-user-auth-info'
),
name
=
'system-user-auth-info'
),
url
(
r'^v1/assets/(?P<pk>\d+)/groups/$'
,
url
(
r'^v1/assets/(?P<pk>\d+)/groups/$'
,
...
@@ -29,14 +29,14 @@ urlpatterns = [
...
@@ -29,14 +29,14 @@ urlpatterns = [
url
(
r'^v1/assets/(?P<pk>\d+)/system-users/$'
,
url
(
r'^v1/assets/(?P<pk>\d+)/system-users/$'
,
api
.
SystemUserUpdateApi
.
as_view
(),
name
=
'asset-update-system-users'
),
api
.
SystemUserUpdateApi
.
as_view
(),
name
=
'asset-update-system-users'
),
url
(
r'^v1/
asset-
groups/(?P<pk>\d+)/push-system-user/$'
,
url
(
r'^v1/groups/(?P<pk>\d+)/push-system-user/$'
,
api
.
AssetGroupPushSystemUserView
.
as_view
(),
name
=
'asset-group-push-system-user'
),
api
.
AssetGroupPushSystemUserView
.
as_view
(),
name
=
'asset-group-push-system-user'
),
# update the system users, which add and delete the asset to the system user
# update the system users, which add and delete the asset to the system user
url
(
r'^v1/system
_
user/(?P<pk>\d+)/assets/$'
,
url
(
r'^v1/system
-
user/(?P<pk>\d+)/assets/$'
,
api
.
SystemUserUpdateAssetsApi
.
as_view
(),
name
=
'systemuser-update-assets'
),
api
.
SystemUserUpdateAssetsApi
.
as_view
(),
name
=
'systemuser-update-assets'
),
url
(
r'^v1/system
_
user/(?P<pk>\d+)/groups/$'
,
url
(
r'^v1/system
-
user/(?P<pk>\d+)/groups/$'
,
api
.
SystemUserUpdateAssetGroupApi
.
as_view
(),
name
=
'systemuser-update-assetgroups'
),
api
.
SystemUserUpdateAssetGroupApi
.
as_view
(),
name
=
'systemuser-update-assetgroups'
),
# update the asset group, which add or delete the asset to the group
# update the asset group, which add or delete the asset to the group
...
...
apps/jumpserver/settings.py
View file @
4e67749e
...
@@ -59,6 +59,8 @@ INSTALLED_APPS = [
...
@@ -59,6 +59,8 @@ INSTALLED_APPS = [
'common.apps.CommonConfig'
,
'common.apps.CommonConfig'
,
'applications.apps.ApplicationsConfig'
,
'applications.apps.ApplicationsConfig'
,
'rest_framework'
,
'rest_framework'
,
'rest_framework_swagger'
,
'django_filters'
,
'bootstrap3'
,
'bootstrap3'
,
'captcha'
,
'captcha'
,
'django.contrib.auth'
,
'django.contrib.auth'
,
...
@@ -289,12 +291,29 @@ REST_FRAMEWORK = {
...
@@ -289,12 +291,29 @@ REST_FRAMEWORK = {
'users.authentication.PrivateTokenAuthentication'
,
'users.authentication.PrivateTokenAuthentication'
,
'users.authentication.SessionAuthentication'
,
'users.authentication.SessionAuthentication'
,
),
),
#
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
'DEFAULT_FILTER_BACKENDS'
:
(
'django_filters.rest_framework.DjangoFilterBackend'
,),
}
}
AUTHENTICATION_BACKENDS
=
[
'django_auth_ldap.backend.LDAPBackend'
,
'django.contrib.auth.backends.ModelBackend'
,
]
# Custom User Auth model
# Custom User Auth model
AUTH_USER_MODEL
=
'users.User'
AUTH_USER_MODEL
=
'users.User'
# Auth LDAP settings
if
CONFIG
.
AUTH_LDAP
:
AUTHENTICATION_BACKENDS
.
insert
(
0
,
'django_auth_ldap.backend.LDAPBackend'
)
AUTH_LDAP_SERVER_URI
=
CONFIG
.
AUTH_LDAP_SERVER_URI
AUTH_LDAP_BIND_DN
=
CONFIG
.
AUTH_LDAP_BIND_DN
AUTH_LDAP_BIND_PASSWORD
=
CONFIG
.
AUTH_LDAP_BIND_PASSWORD
AUTH_LDAP_USER_DN_TEMPLATE
=
CONFIG
.
AUTH_LDAP_USER_DN_TEMPLATE
AUTH_LDAP_START_TLS
=
CONFIG
.
AUTH_LDAP_START_TLS
AUTH_LDAP_USER_ATTR_MAP
=
CONFIG
.
AUTH_LDAP_USER_ATTR_MAP
# Celery using redis as broker
# Celery using redis as broker
BROKER_URL
=
'redis://
%(password)
s
%(host)
s:
%(port)
s/3'
%
{
BROKER_URL
=
'redis://
%(password)
s
%(host)
s:
%(port)
s/3'
%
{
'password'
:
CONFIG
.
REDIS_PASSWORD
+
':'
if
CONFIG
.
REDIS_PASSWORD
else
''
,
'password'
:
CONFIG
.
REDIS_PASSWORD
+
':'
if
CONFIG
.
REDIS_PASSWORD
else
''
,
...
...
apps/jumpserver/urls.py
View file @
4e67749e
# ~*~ coding: utf-8 ~*~
# ~*~ coding: utf-8 ~*~
from
__future__
import
unicode_literals
from
__future__
import
unicode_literals
"""jumpserver URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
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
.views
import
IndexView
from
rest_framework.schemas
import
get_schema_view
from
rest_framework_swagger.renderers
import
SwaggerUIRenderer
,
OpenAPIRenderer
from
.views
import
IndexView
schema_view
=
get_schema_view
(
title
=
'Users API'
,
renderer_classes
=
[
OpenAPIRenderer
,
SwaggerUIRenderer
])
urlpatterns
=
[
urlpatterns
=
[
url
(
r'^captcha/'
,
include
(
'captcha.urls'
)),
url
(
r'^$'
,
IndexView
.
as_view
(),
name
=
'index'
),
url
(
r'^$'
,
IndexView
.
as_view
(),
name
=
'index'
),
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'
)),
...
@@ -40,10 +27,14 @@ urlpatterns = [
...
@@ -40,10 +27,14 @@ urlpatterns = [
url
(
r'^api/audits/'
,
include
(
'audits.urls.api_urls'
,
namespace
=
'api-audits'
)),
url
(
r'^api/audits/'
,
include
(
'audits.urls.api_urls'
,
namespace
=
'api-audits'
)),
url
(
r'^api/applications/'
,
include
(
'applications.urls.api_urls'
,
namespace
=
'api-applications'
)),
url
(
r'^api/applications/'
,
include
(
'applications.urls.api_urls'
,
namespace
=
'api-applications'
)),
url
(
r'^api/ops/'
,
include
(
'ops.urls.api_urls'
,
namespace
=
'api-ops'
)),
url
(
r'^api/ops/'
,
include
(
'ops.urls.api_urls'
,
namespace
=
'api-ops'
)),
url
(
r'^captcha/'
,
include
(
'captcha.urls'
)),
]
]
if
settings
.
DEBUG
:
if
settings
.
DEBUG
:
urlpatterns
+=
static
(
settings
.
MEDIA_URL
,
document_root
=
settings
.
MEDIA_ROOT
)
urlpatterns
+=
static
(
settings
.
MEDIA_URL
,
document_root
=
settings
.
MEDIA_ROOT
)
urlpatterns
+=
[
url
(
r'^docs/'
,
schema_view
,
name
=
"docs"
),
]
apps/jumpserver/views.py
View file @
4e67749e
...
@@ -4,8 +4,6 @@ from django.db.models import Count
...
@@ -4,8 +4,6 @@ from django.db.models import Count
from
django.contrib.auth.mixins
import
LoginRequiredMixin
from
django.contrib.auth.mixins
import
LoginRequiredMixin
from
django.shortcuts
import
redirect
from
django.shortcuts
import
redirect
from
users.utils
import
AdminUserRequiredMixin
from
users.models
import
User
from
users.models
import
User
from
assets.models
import
Asset
from
assets.models
import
Asset
from
audits.models
import
ProxyLog
from
audits.models
import
ProxyLog
...
@@ -26,10 +24,10 @@ class IndexView(LoginRequiredMixin, TemplateView):
...
@@ -26,10 +24,10 @@ class IndexView(LoginRequiredMixin, TemplateView):
proxy_log_month
=
ProxyLog
.
objects
.
filter
(
date_start__gt
=
month_ago
,
is_failed
=
False
)
proxy_log_month
=
ProxyLog
.
objects
.
filter
(
date_start__gt
=
month_ago
,
is_failed
=
False
)
month_dates
=
proxy_log_month
.
dates
(
'date_start'
,
'day'
)
month_dates
=
proxy_log_month
.
dates
(
'date_start'
,
'day'
)
month_total_visit
=
[
ProxyLog
.
objects
.
filter
(
date_start__date
=
d
)
for
d
in
month_dates
]
month_total_visit
=
[
ProxyLog
.
objects
.
filter
(
date_start__date
=
d
)
for
d
in
month_dates
]
month_str
=
[
d
.
strftime
(
'
%
m-
%
d'
)
for
d
in
month_dates
]
month_str
=
[
d
.
strftime
(
'
%
m-
%
d'
)
for
d
in
month_dates
]
or
[
'0'
]
month_total_visit_count
=
[
p
.
count
()
for
p
in
month_total_visit
]
month_total_visit_count
=
[
p
.
count
()
for
p
in
month_total_visit
]
or
[
0
]
month_user
=
[
p
.
values
(
'user'
)
.
distinct
()
.
count
()
for
p
in
month_total_visit
]
month_user
=
[
p
.
values
(
'user'
)
.
distinct
()
.
count
()
for
p
in
month_total_visit
]
or
[
0
]
month_asset
=
[
p
.
values
(
'asset'
)
.
distinct
()
.
count
()
for
p
in
month_total_visit
]
month_asset
=
[
p
.
values
(
'asset'
)
.
distinct
()
.
count
()
for
p
in
month_total_visit
]
or
[
0
]
month_user_active
=
User
.
objects
.
filter
(
last_login__gt
=
month_ago
)
.
count
()
month_user_active
=
User
.
objects
.
filter
(
last_login__gt
=
month_ago
)
.
count
()
month_user_inactive
=
User
.
objects
.
filter
(
last_login__lt
=
month_ago
)
.
count
()
month_user_inactive
=
User
.
objects
.
filter
(
last_login__lt
=
month_ago
)
.
count
()
month_user_disabled
=
User
.
objects
.
filter
(
is_active
=
False
)
.
count
()
month_user_disabled
=
User
.
objects
.
filter
(
is_active
=
False
)
.
count
()
...
...
apps/users/api.py
View file @
4e67749e
...
@@ -4,7 +4,9 @@ from rest_framework import generics
...
@@ -4,7 +4,9 @@ from rest_framework import generics
from
rest_framework.permissions
import
AllowAny
from
rest_framework.permissions
import
AllowAny
from
rest_framework.response
import
Response
from
rest_framework.response
import
Response
from
rest_framework.views
import
APIView
from
rest_framework.views
import
APIView
from
rest_framework
import
viewsets
from
rest_framework_bulk
import
BulkModelViewSet
from
rest_framework_bulk
import
BulkModelViewSet
from
django_filters.rest_framework
import
DjangoFilterBackend
from
.
import
serializers
from
.
import
serializers
from
.hands
import
write_login_log_async
from
.hands
import
write_login_log_async
...
@@ -18,11 +20,37 @@ from common.utils import get_logger
...
@@ -18,11 +20,37 @@ from common.utils import get_logger
logger
=
get_logger
(
__name__
)
logger
=
get_logger
(
__name__
)
class
UserViewSet
(
IDInFilterMixin
,
BulkModelViewSet
):
# class UserListView(generics.ListAPIView):
# queryset = User.objects.all()
# serializer_class = serializers.UserSerializer
# filter_fields = ('username', 'email', 'name', 'id')
class
UserViewSet
(
viewsets
.
ModelViewSet
):
# class UserViewSet(IDInFilterMixin, BulkModelViewSet):
"""
retrieve:
Return a user instance .
list:
Return all users except app user, ordered by most recently joined.
create:
Create a new user.
delete:
Remove an existing user.
partial_update:
Update one or more fields on an existing user.
update:
Update a user.
"""
queryset
=
User
.
objects
.
all
()
queryset
=
User
.
objects
.
all
()
# queryset = User.objects.all().exclude(role="App").order_by("date_joined")
serializer_class
=
serializers
.
UserSerializer
serializer_class
=
serializers
.
UserSerializer
permission_classes
=
(
IsSuperUser
,)
permission_classes
=
(
IsSuperUser
,)
# filter_backends = (DjangoFilterBackend,)
filter_fields
=
(
'username'
,
'email'
,
'name'
,
'id'
)
filter_fields
=
(
'username'
,
'email'
,
'name'
,
'id'
)
...
...
apps/users/templates/users/user_list.html
View file @
4e67749e
...
@@ -14,12 +14,10 @@
...
@@ -14,12 +14,10 @@
{% endblock %}
{% endblock %}
{% block table_container %}
{% block table_container %}
<div
class=
"uc pull-left m-l-5 m-r-5"
><a
href=
"{% url "
users:user-create
"
%}"
class=
"btn btn-sm btn-primary"
>
{% trans "Create user" %}
</a></div>
<div
class=
"uc pull-left m-l-5 m-r-5"
><a
href=
"{% url "
users:user-create
"
%}"
class=
"btn btn-sm btn-primary"
>
{% trans "Create user" %}
</a></div>
{#
<div
class=
"uc pull-left"
><a
href=
"javascript:void(0);"
class=
"btn btn-sm btn-primary"
data-toggle=
"modal"
data-target=
"#user_import_modal"
>
{% trans "Import user" %}
</a></div>
#}
<table
class=
"table table-striped table-bordered table-hover "
id=
"user_list_table"
>
<table
class=
"table table-striped table-bordered table-hover "
id=
"user_list_table"
>
<thead>
<thead>
<tr>
<tr>
<th
class=
"text-center"
>
<th
class=
"text-center"
>
{#
<div><input
id=
""
type=
"checkbox"
class=
"ipt_check_all"
><label></label></div>
#}
<input
id=
""
type=
"checkbox"
class=
"ipt_check_all"
>
<input
id=
""
type=
"checkbox"
class=
"ipt_check_all"
>
</th>
</th>
<th
class=
"text-center"
>
{% trans 'Name' %}
</th>
<th
class=
"text-center"
>
{% trans 'Name' %}
</th>
...
...
apps/users/urls/api_urls.py
View file @
4e67749e
...
@@ -11,22 +11,23 @@ app_name = 'users'
...
@@ -11,22 +11,23 @@ app_name = 'users'
router
=
BulkRouter
()
router
=
BulkRouter
()
router
.
register
(
r'v1/users'
,
api
.
UserViewSet
,
'user'
)
router
.
register
(
r'v1/users'
,
api
.
UserViewSet
,
'user'
)
router
.
register
(
r'v1/
user-
groups'
,
api
.
UserGroupViewSet
,
'user-group'
)
router
.
register
(
r'v1/groups'
,
api
.
UserGroupViewSet
,
'user-group'
)
urlpatterns
=
[
urlpatterns
=
[
# url(r'', api.UserListView.as_view()),
url
(
r'^v1/token/$'
,
api
.
UserToken
.
as_view
(),
name
=
'user-token'
),
url
(
r'^v1/token/$'
,
api
.
UserToken
.
as_view
(),
name
=
'user-token'
),
url
(
r'^v1/profile/$'
,
api
.
UserProfile
.
as_view
(),
name
=
'user-profile'
),
url
(
r'^v1/profile/$'
,
api
.
UserProfile
.
as_view
(),
name
=
'user-profile'
),
url
(
r'^v1/auth/$'
,
api
.
UserAuthApi
.
as_view
(),
name
=
'user-auth'
),
url
(
r'^v1/auth/$'
,
api
.
UserAuthApi
.
as_view
(),
name
=
'user-auth'
),
url
(
r'^v1/users/(?P<pk>\d+)/password/reset/$'
,
url
(
r'^v1/users/(?P<pk>\d+)/password/reset/$'
,
api
.
UserResetPasswordApi
.
as_view
(),
name
=
'user-reset-password'
),
api
.
UserResetPasswordApi
.
as_view
(),
name
=
'user-reset-password'
),
url
(
r'^v1/users/(?P<pk>\d+)/pub
lic-
key/reset/$'
,
url
(
r'^v1/users/(?P<pk>\d+)/pubkey/reset/$'
,
api
.
UserResetPKApi
.
as_view
(),
name
=
'user-public-key-reset'
),
api
.
UserResetPKApi
.
as_view
(),
name
=
'user-public-key-reset'
),
url
(
r'^v1/users/(?P<pk>\d+)/pub
lic-
key/update/$'
,
url
(
r'^v1/users/(?P<pk>\d+)/pubkey/update/$'
,
api
.
UserUpdatePKApi
.
as_view
(),
name
=
'user-public-key-update'
),
api
.
UserUpdatePKApi
.
as_view
(),
name
=
'user-public-key-update'
),
url
(
r'^v1/users/(?P<pk>\d+)/groups/$'
,
url
(
r'^v1/users/(?P<pk>\d+)/groups/$'
,
api
.
UserUpdateGroupApi
.
as_view
(),
name
=
'user-update-group'
),
api
.
UserUpdateGroupApi
.
as_view
(),
name
=
'user-update-group'
),
url
(
r'^v1/
user-
groups/(?P<pk>\d+)/users/$'
,
url
(
r'^v1/groups/(?P<pk>\d+)/users/$'
,
api
.
UserGroupUpdateUserApi
.
as_view
(),
name
=
'user-group-update-user'
),
api
.
UserGroupUpdateUserApi
.
as_view
(),
name
=
'user-group-update-user'
),
]
]
...
...
apps/users/views/user.py
View file @
4e67749e
...
@@ -20,8 +20,9 @@ from django.utils.decorators import method_decorator
...
@@ -20,8 +20,9 @@ from django.utils.decorators import method_decorator
from
django.views
import
View
from
django.views
import
View
from
django.views.generic
import
ListView
from
django.views.generic
import
ListView
from
django.views.generic.base
import
TemplateView
from
django.views.generic.base
import
TemplateView
from
django.views.generic.edit
import
(
CreateView
,
UpdateView
,
FormMixin
,
from
django.views.generic.edit
import
(
FormView
)
CreateView
,
UpdateView
,
FormMixin
,
FormView
)
from
django.views.generic.detail
import
DetailView
,
SingleObjectMixin
from
django.views.generic.detail
import
DetailView
,
SingleObjectMixin
from
django.views.decorators.csrf
import
csrf_exempt
from
django.views.decorators.csrf
import
csrf_exempt
from
django.contrib.auth
import
logout
as
auth_logout
from
django.contrib.auth
import
logout
as
auth_logout
...
@@ -33,13 +34,14 @@ from common.mixins import JSONResponseMixin
...
@@ -33,13 +34,14 @@ from common.mixins import JSONResponseMixin
from
common.utils
import
get_logger
,
get_object_or_none
from
common.utils
import
get_logger
,
get_object_or_none
from
perms.models
import
AssetPermission
from
perms.models
import
AssetPermission
__all__
=
[
'UserListView'
,
'UserCreateView'
,
'UserDetailView'
,
__all__
=
[
'UserUpdateView'
,
'UserAssetPermissionCreateView'
,
'UserListView'
,
'UserCreateView'
,
'UserDetailView'
,
'UserAssetPermissionView'
,
'UserGrantedAssetView'
,
'UserUpdateView'
,
'UserAssetPermissionCreateView'
,
'UserExportView'
,
'UserBulkImportView'
,
'UserProfileView'
,
'UserAssetPermissionView'
,
'UserGrantedAssetView'
,
'UserProfileUpdateView'
,
'UserPasswordUpdateView'
,
'UserExportView'
,
'UserBulkImportView'
,
'UserProfileView'
,
'UserPublicKeyUpdateView'
,
'UserBulkUpdateView'
,
'UserProfileUpdateView'
,
'UserPasswordUpdateView'
,
]
'UserPublicKeyUpdateView'
,
'UserBulkUpdateView'
,
]
logger
=
get_logger
(
__name__
)
logger
=
get_logger
(
__name__
)
...
@@ -52,8 +54,6 @@ class UserListView(AdminUserRequiredMixin, TemplateView):
...
@@ -52,8 +54,6 @@ class UserListView(AdminUserRequiredMixin, TemplateView):
context
.
update
({
context
.
update
({
'app'
:
_
(
'Users'
),
'app'
:
_
(
'Users'
),
'action'
:
_
(
'User list'
),
'action'
:
_
(
'User list'
),
'groups'
:
UserGroup
.
objects
.
all
(),
'form'
:
forms
.
UserBulkUpdateForm
(),
})
})
return
context
return
context
...
...
config_example.py
View file @
4e67749e
...
@@ -8,6 +8,8 @@
...
@@ -8,6 +8,8 @@
:license: GPL v2, see LICENSE for more details.
:license: GPL v2, see LICENSE for more details.
"""
"""
import
os
import
os
import
ldap
from
django_auth_ldap.config
import
LDAPSearch
BASE_DIR
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
BASE_DIR
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
LOG_DIR
=
os
.
path
.
join
(
BASE_DIR
,
'logs'
)
LOG_DIR
=
os
.
path
.
join
(
BASE_DIR
,
'logs'
)
...
@@ -93,6 +95,19 @@ class Config:
...
@@ -93,6 +95,19 @@ class Config:
# You can set jumpserver usage url here, that when user submit wizard redirect to
# You can set jumpserver usage url here, that when user submit wizard redirect to
USER_GUIDE_URL
=
''
USER_GUIDE_URL
=
''
# LDAP Auth settings
AUTH_LDAP
=
False
AUTH_LDAP_SERVER_URI
=
'ldap://localhost:389'
AUTH_LDAP_BIND_DN
=
'cn=admin,dc=jumpserver,dc=org'
AUTH_LDAP_BIND_PASSWORD
=
''
AUTH_LDAP_USER_DN_TEMPLATE
=
"uid=
%(user)
s,ou=people,dc=jumpserver,dc=org"
AUTH_LDAP_USER_ATTR_MAP
=
{
"username"
:
"cn"
,
"name"
:
"sn"
,
"email"
:
"mail"
}
AUTH_LDAP_START_TLS
=
False
def
__init__
(
self
):
def
__init__
(
self
):
pass
pass
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment