Unverified Commit 15bc1ba9 authored by BaiJiangJie's avatar BaiJiangJie Committed by GitHub

Merge pull request #78 from jumpserver/dev

Dev
parents 9e58a870 2e97efbc
......@@ -160,14 +160,25 @@ export class ElementAssetTreeComponent implements OnInit, OnChanges {
}
onRightClick(event, treeId, treeNode) {
if (!treeNode || treeNode.isParent ) {
return null;
}
const host = treeNode.meta.asset;
if (host.protocol.toLowerCase() === 'rdp') {
let findSSHProtocol = false;
const protocols = host.protocols || [];
if (host.protocol) {
protocols.push(host.protocol);
}
for (let i = 0; i < protocols.length; i++) {
const protocol = protocols[i];
if (protocol && protocol.startsWith('ssh')) {
findSSHProtocol = true;
}
}
if (!findSSHProtocol) {
alert('Windows 请使用Ctrl+Shift+Alt呼出侧边栏上传下载');
}
if (!treeNode && event.target.tagName.toLowerCase() !== 'button' && $(event.target).parents('a').length === 0) {
this.zTree.cancelSelectedNode();
this.showRMenu(event.clientX, event.clientY);
......
<!--<iframe #rdp [src]="trust('https://inews.gtimg.com/newsapp_bt/0/3460971429/1000')" width="100%" height="100%" (mouseenter)="active()"></iframe>-->
<iframe #rdp [src]="trust(target)" width="100%" height="100%" (mouseenter)="active()"></iframe>
<iframe *ngIf="target" #rdp [src]="trust(target)" width="100%" height="100%" (mouseenter)="active()"></iframe>
......@@ -18,6 +18,7 @@ export class ElementGuacamoleComponent implements OnInit {
@Input() target: string;
@Input() index: number;
@ViewChild('rdp') el: ElementRef;
registered = false;
constructor(private sanitizer: DomSanitizer,
private _http: HttpService,
......@@ -26,29 +27,43 @@ export class ElementGuacamoleComponent implements OnInit {
}
registerHost() {
let action: any;
if (this.remoteAppId) {
this._http.guacamole_add_remote_app(User.id, this.remoteAppId).subscribe(
data => {
const base = data.result;
this.target = document.location.origin + '/guacamole/#/client/' + base + '?token=' + DataStore.guacamole_token;
NavList.List[this.index].Rdp = this.el.nativeElement;
},
error => {
this._logger.error(error);
}
);
action = this._http.guacamole_add_remote_app(User.id, this.remoteAppId);
} else {
this._http.guacamole_add_asset(User.id, this.host.id, this.userid).subscribe(
data => {
const base = data.result;
this.target = document.location.origin + '/guacamole/#/client/' + base + '?token=' + DataStore.guacamole_token;
NavList.List[this.index].Rdp = this.el.nativeElement;
},
error2 => {
this._logger.error(error2);
}
);
action = this._http.guacamole_add_asset(User.id, this.host.id, this.userid);
}
action.subscribe(
data => {
const base = data.result;
this.target = document.location.origin + '/guacamole/#/client/' + base + '?token=' + DataStore.guacamole_token;
NavList.List[this.index].Rdp = this.el.nativeElement;
},
error => {
if (!this.registered) {
console.log('Register host error, register token then connect');
this.registerToken();
}
}
);
}
registerToken() {
const now = new Date();
const nowTime = now.getTime() / 1000;
this.registered = true;
this._http.get_guacamole_token(User.id, '').subscribe(
data => {
// /guacamole/client will redirect to http://guacamole/#/client
DataStore.guacamole_token = data['authToken'];
DataStore.guacamole_token_time = nowTime;
this.registerHost();
},
error => {
this._logger.error(error);
return null;
}
);
}
ngOnInit() {
......@@ -63,25 +78,7 @@ export class ElementGuacamoleComponent implements OnInit {
NavList.List[this.index].Rdp = this.el.nativeElement;
return null;
}
const now = new Date();
const nowTime = now.getTime() / 1000;
if (!DataStore.guacamole_token || nowTime - DataStore.guacamole_token_time > 3600) {
this._http.get_guacamole_token(User.id, '').subscribe(
data => {
// /guacamole/client will redirect to http://guacamole/#/client
DataStore.guacamole_token = data['authToken'];
DataStore.guacamole_token_time = nowTime;
this.registerHost();
},
error => {
this._logger.error(error);
alert(error.message);
return null;
}
);
} else {
this.registerHost();
}
this.registerHost();
}
trust(url) {
......
......@@ -2,5 +2,5 @@ export const environment = {
production: true
};
// export const version = '1.3.0-{{BUILD_NUMBER}} GPLv2.';
export const version = '1.5.0-101 GPLv2.';
export const version = '1.5.1-101 GPLv2.';
// export const version = '1.4.1-{{BUILD_NUMBER}} GPLv2.';
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