mirror of https://github.com/jumpserver/jumpserver
Modify terminal reqject templatte
parent
0907f5021e
commit
b670259ab6
|
@ -14,7 +14,8 @@ class Terminal(models.Model):
|
||||||
name = models.CharField(max_length=30, unique=True, verbose_name=_('Name'))
|
name = models.CharField(max_length=30, unique=True, verbose_name=_('Name'))
|
||||||
remote_addr = models.GenericIPAddressField(verbose_name=_('Remote address'), blank=True, null=True)
|
remote_addr = models.GenericIPAddressField(verbose_name=_('Remote address'), blank=True, null=True)
|
||||||
type = models.CharField(choices=TYPE_CHOICES, max_length=3, blank=True, verbose_name=_('Terminal type'))
|
type = models.CharField(choices=TYPE_CHOICES, max_length=3, blank=True, verbose_name=_('Terminal type'))
|
||||||
user = models.OneToOneField(User, related_name='terminal', verbose_name='Application user', null=True)
|
user = models.OneToOneField(User, related_name='terminal', verbose_name='Application user',
|
||||||
|
null=True, on_delete=models.CASCADE)
|
||||||
url = models.CharField(max_length=100, blank=True, verbose_name=_('URL to login'))
|
url = models.CharField(max_length=100, blank=True, verbose_name=_('URL to login'))
|
||||||
is_accepted = models.BooleanField(default=False, verbose_name='Is Accepted')
|
is_accepted = models.BooleanField(default=False, verbose_name='Is Accepted')
|
||||||
date_created = models.DateTimeField(auto_now_add=True)
|
date_created = models.DateTimeField(auto_now_add=True)
|
||||||
|
@ -38,6 +39,11 @@ class Terminal(models.Model):
|
||||||
self.save()
|
self.save()
|
||||||
return user, access_key
|
return user, access_key
|
||||||
|
|
||||||
|
def delete(self, using=None, keep_parents=False):
|
||||||
|
if self.user:
|
||||||
|
self.user.delete()
|
||||||
|
return super(Terminal, self).delete(using=using, keep_parents=keep_parents)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
active = 'Active' if self.user and self.user.is_active else 'Disabled'
|
active = 'Active' if self.user and self.user.is_active else 'Disabled'
|
||||||
return '%s: %s' % (self.name, active)
|
return '%s: %s' % (self.name, active)
|
||||||
|
|
|
@ -76,7 +76,9 @@ $(document).ready(function(){
|
||||||
.replace('99991938', rowData.name);
|
.replace('99991938', rowData.name);
|
||||||
var accept_btn = '<a class="btn btn-xs btn-primary btn-accept" data-id="99991937">{% trans "Accept" %}</a> '
|
var accept_btn = '<a class="btn btn-xs btn-primary btn-accept" data-id="99991937">{% trans "Accept" %}</a> '
|
||||||
.replace('99991937', cellData);
|
.replace('99991937', cellData);
|
||||||
var reject_btn = '<a href="" class="btn btn-xs btn-danger">{% trans "Reject" %}</a>'
|
var reject_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_delete" data-uid="99991937" data-name="99991938">{% trans "Reject" %}</a>'
|
||||||
|
.replace('99991937', cellData)
|
||||||
|
.replace('99991938', rowData.name);
|
||||||
if (rowData.is_accepted) {
|
if (rowData.is_accepted) {
|
||||||
$(td).html(update_btn + delete_btn)
|
$(td).html(update_btn + delete_btn)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -35,14 +35,15 @@ def get_ip_city(ip, timeout=10):
|
||||||
url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=%s&format=json' % ip
|
url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=%s&format=json' % ip
|
||||||
try:
|
try:
|
||||||
r = requests.get(url, timeout=timeout)
|
r = requests.get(url, timeout=timeout)
|
||||||
|
print(r)
|
||||||
except requests.Timeout:
|
except requests.Timeout:
|
||||||
r = None
|
r = None
|
||||||
city = 'Unknown'
|
city = 'Unknown'
|
||||||
if r and r.status_code == 200:
|
if r and r.status_code == 200:
|
||||||
try:
|
try:
|
||||||
data = r.json()
|
data = r.json()
|
||||||
if data['code'] == 0:
|
if not isinstance(data, int) and data['ret'] == 1:
|
||||||
city = data['data']['country'] + data['data']['city']
|
city = data['country'] + ' ' + data['city']
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
return city
|
return city
|
||||||
|
|
|
@ -121,7 +121,7 @@ class UserAuthApi(APIView):
|
||||||
password = request.data.get('password', '')
|
password = request.data.get('password', '')
|
||||||
public_key = request.data.get('public_key', '')
|
public_key = request.data.get('public_key', '')
|
||||||
login_type = request.data.get('login_type', '')
|
login_type = request.data.get('login_type', '')
|
||||||
login_ip = request.META.get('REMOTE_ADDR', '')
|
login_ip = request.data.get('remote_addr', None) or request.META.get('REMOTE_ADDR', '')
|
||||||
user_agent = request.data.get('HTTP_USER_AGENT', '')
|
user_agent = request.data.get('HTTP_USER_AGENT', '')
|
||||||
|
|
||||||
user, msg = check_user_valid(username=username, password=password, public_key=public_key)
|
user, msg = check_user_valid(username=username, password=password, public_key=public_key)
|
||||||
|
|
|
@ -195,10 +195,10 @@ def check_user_valid(**kwargs):
|
||||||
elif not user.is_valid:
|
elif not user.is_valid:
|
||||||
return None, _('Disabled or expired')
|
return None, _('Disabled or expired')
|
||||||
|
|
||||||
if password and user.check_password(password):
|
if password and user.password and user.check_password(password):
|
||||||
return user, ''
|
return user, ''
|
||||||
|
|
||||||
if public_key:
|
if public_key and user.public_key:
|
||||||
public_key_saved = user.public_key.split()
|
public_key_saved = user.public_key.split()
|
||||||
if len(public_key_saved) == 1:
|
if len(public_key_saved) == 1:
|
||||||
if public_key == public_key_saved[0]:
|
if public_key == public_key_saved[0]:
|
||||||
|
|
Loading…
Reference in New Issue