Review of "Forti VPN" version 1

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.

FAQ

Files

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

Shexli (experimental) warning 4

Shexli found 4 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:129
    this._detail = new St.BoxLayout({vertical: true, style_class: 'forti-tiles'})
  • extension.js:138
    this._plist = new St.BoxLayout({vertical: true, style_class: 'forti-prows'})
  • extension.js:136
    this._plistBox = new St.BoxLayout({vertical: true, style_class: 'forti-plist'})
  • extension.js:110
            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-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • secrets.js:6
    new Secret.Schema(
        'org.forti-gnome.Secret',
        Secret.SchemaFlags.NONE,
        {profile: Secret.SchemaAttributeType.STRING, field: Secret.SchemaAttributeType.STRING})

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:129
    this._detail = new St.BoxLayout({vertical: true, style_class: 'forti-tiles'})
  • extension.js:138
    this._plist = new St.BoxLayout({vertical: true, style_class: 'forti-prows'})
  • extension.js:136
    this._plistBox = new St.BoxLayout({vertical: true, style_class: 'forti-plist'})
  • extension.js:110
            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})}
  • extension.js:52
    this._settings = ext.getSettings()

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

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

Disconnect all signals

  • extension.js:113
    this._power.connect('clicked', () => this._onButton())
  • extension.js:321
    entry.clutter_text.connect('activate', submit)
  • extension.js:312
    d.connect('closed', () => d.destroy())

All Versions

Version Status
4 Unreviewed
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

danialhatami posted a review
danialhatami auto- rejected
Auto-rejected because of new version 2 was uploaded