Review of "Forti VPN" version 3

Details Page Preview

Connect to a Fortinet SSL-VPN from the top bar with one click. * Several profiles: switch between accounts and gateways from the menu * OTP: save your secret and the code is made for you, or type it when you connect * Passwords and OTP secrets are kept in the GNOME Keyring * Safe DNS: VPN DNS first, your normal DNS stays as backup, everything restored on disconnect * Live connection steps and notifications Needs openfortivpn and a small root helper (not part of this zip). Easiest: install the forti-gnome .deb package from the project page, it installs everything. Manual: sudo apt install openfortivpn ppp pkexec gir1.2-secret-1, then install the 3 helper files as shown in the project README (Manual install). Not supported: push-only 2FA and SAML/SSO logins.

Extension Homepage
https://github.com/danialhatami/forti-gnome

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 2

Shexli found 2 issues that may need reviewer attention.

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • extension.js:131
    this._detail = new St.BoxLayout({vertical: true, style_class: 'forti-tiles'})
  • extension.js:102
    this._gear = new St.Button({style_class: 'forti-gear', can_focus: true, accessible_name: 'Settings',
                child: new St.Icon({icon_name: 'preferences-system-symbolic', icon_size: 16})})
  • extension.js:140
    this._plist = new St.BoxLayout({vertical: true, style_class: 'forti-prows'})
  • extension.js:138
    this._plistBox = new St.BoxLayout({vertical: true, style_class: 'forti-plist'})
  • extension.js:112
            this._power = new St.Button({can_focus: true, x_align: CENTER, accessible_name: 'Connect or disconnect',
                child: new St.Icon({icon_name: 'system-shutdown-symbolic', style_class: 'forti-power-icon',
                    x_align: CENTER, y_align: CENTER, x_expand: true, y_expand: true})}

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:131
    this._detail = new St.BoxLayout({vertical: true, style_class: 'forti-tiles'})
  • extension.js:102
    this._gear = new St.Button({style_class: 'forti-gear', can_focus: true, accessible_name: 'Settings',
                child: new St.Icon({icon_name: 'preferences-system-symbolic', icon_size: 16})})
  • extension.js:140
    this._plist = new St.BoxLayout({vertical: true, style_class: 'forti-prows'})
  • extension.js:112
            this._power = new St.Button({can_focus: true, x_align: CENTER, accessible_name: 'Connect or disconnect',
                child: new St.Icon({icon_name: 'system-shutdown-symbolic', style_class: 'forti-power-icon',
                    x_align: CENTER, y_align: CENTER, x_expand: true, y_expand: true})}

All Versions

Version Status
4 Unreviewed
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

danialhatami auto- rejected
Auto-rejected because of new version 4 was uploaded