GithubHelp home page GithubHelp logo

Let the user group domains about qt-sesam HOT 31 OPEN

607011 avatar 607011 commented on July 30, 2024
Let the user group domains

from qt-sesam.

Comments (31)

607011 avatar 607011 commented on July 30, 2024

Should be merged with issue #5

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

Heavily working on this issue on branch Issue-31

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

TODO

  • Changes in domain settings should be reflected in viewer instantaneously. Currently, the tree is built from scratch (and this is buggy).
  • Allow sorting (ascending/descending) by group name or domain name.
  • Let the user add groups.
  • Let the user rename groups.
  • Let the user move entries between groups via drag'n'drop and via "move to list ►" shown in context menu when right-clicking on an entry.
  • Let the user delete an entry in the domain viewer.
  • After merging with master:
    • merge with #81,
    • then implement 1-click login when double-clicking on an entry in the domain viewer.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

Merged in 'master'.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

Currently working on drag'n'drop of items in tree view …

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

I'm stuck in the implementation of the above TODO list. @egbrt I'd appreciate your collaboration on this issue. Feel free to do whatever you want.

Only one caveat: Please do not touch the code that (de)serializes DomainSettings (DomainSettings::fromVariantMap(), DomainSettings::toVariantMap()) because changing the format of the JSON-encoded data will break compatibility with other implementations of c't SESAM, e.g. the Android App or the Python version.

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

I need to get access to d->treeModel in DomainSettings MainWindow::collectedDomainSettings(void) const, but Qt won't let me add Q_D(MainWindow). It says 'invalid conversion...in expansion of macro Q_D'. What should I do?

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt You can't access members via D-pointers in const methods.

Instead of d->treeModel use d_ptr->treeModel in const methods.

If this doesn't suit your needs remove const from method declaration, but only as a last resort.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt You might want to have a look at GitHub Flavored Markdown to improve the legibility of your comments ;-)

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

At the moment a domain name must be unique. This is a problem when you have multiple logins at the same 'domain' with different user names and/or have similar accounts at a different 'domain' with the same user name. For example:

  • Bank
    • DeutscheBank
      • Sparkasse [user=name1]
      • Sparkasse [user=name2]
    • BerlinerBank
      • Sparkasse [user=name1]

I think the unique identifier for a domain should be a combination of the hierarchy, domain name and user name.

from qt-sesam.

pinae avatar pinae commented on July 30, 2024

That's a good idea. However: the new system has to work with a dropdown list. The dropdown might get removed from Qt-SESAM in the future but it stays in the app and the python version.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

It's up to the user to select a unique domain name. I don't see any problem with it.

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

As long as you have all domain names in one place (for example a combobox) it may be okay to insist that domain names (or preferably the combination domain name + user name) should be unique. When you support a hierarchy it is different. A user will compare that with a directory structure on his computer where it is allowed to have files with the same name in different directories. Besides when you are in a specific group you don't see the domain names that are present in other groups, so how should you know what a unique name is.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt Thanks for clarification.

Feel free to change how the combobox shows the domains and whatever is needed to implement the desired behavior. But please bear in mind that the domain name written to the (encrypted) settings must not change for already existing data sets. That's because the domain name is weaved into the generated passwords, i.e. the generated passwords will change if the corresponding domain name changes.

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

fyi I just pushed a new version of Issue-31 to my fork. I'm not yet ready for a pull request but perhaps you like to see how it is coming along.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt I like how you are streamlining the code. E.g. it looks like the combobox is getting obsolete 👍

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

I'm trying to install the server application in my local lampp installation to check if my changes effect the sync process. I've already changed the location of the database file to a writable directory, but I'm getting the following error:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [14] unable to open database file' in /opt/lampp/htdocs/sesam/ajax/globals.php:64 Stack trace: #0 /opt/lampp/htdocs/sesam/ajax/globals.php(64): PDO->__construct('sqlite:/home/eg...', NULL, NULL, Array) #1 /opt/lampp/htdocs/sesam/ajax/install.php(2): require_once('/opt/lampp/htdo...') #2 {main} thrown in /opt/lampp/htdocs/sesam/ajax/globals.php on line 64

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

Are you sure the configured SQLite file path is writable by the webserver process? Or is it only writable by you (which isn't necessarily the same)?

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

Oops, sorry.

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

The database is created now, but I'm having trouble creating a self-signed certificate. I've installed the server code into htdocs/sesam and created a self-signed certificate with openssl, but I keep getting the SSL error messages 22 (host name did not match...) and 9 (certificate is self-signed..).

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt, Generating a certificate chain with a new CA worked for me.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

Thanks to @egbrt's great commitment to this feature it will soon be merged into the master branch. Stay tuned!

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

How is it going? Do you need any help?

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

Sorry. I'm currently busy with other things.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt, an idea you may want to follow: A text field for incremental search in DomainTreeModel would be useful to resemble the behavior of the now gone combobox. I'd like to have it placed directly above the tree. What do you think?

I guess it can be implemented with a little help of QAbstractProxyModel

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

@ola-ct, I'm not sure how useful that would be. Currently, I'm (still) using PasswordSafe with 140 accounts divided into 20 (sub)groups and I've never needed to search for an account... I suspect the hierarchy eliminates the need for a search box.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

@egbrt Be glad that you have the memory of an elephant ;-)

For oblivious people like me the feature would be of great use …

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

Actually, you don't need the memory of an elephant. The hierarchy is like an index on your collection of passwords. You don't even have to remember the groups because those are visible as soon as you open you open the password manager. After that it is just expanding the right group, then optionally one or more subgroups and then you end up with a small list of accounts. For example, 20 (sub)groups with each 10 accounts gives access to 200 passwords.

from qt-sesam.

607011 avatar 607011 commented on July 30, 2024

No problem, I'm going to implement the incremental search on my own. Because I need it more than you needed a tree viewer ;-)

from qt-sesam.

egbrt avatar egbrt commented on July 30, 2024

Let me suggest a deal ;-) When you have finished merging the tree viewer into the master branch, I'm going to implement the incremental search.
I'm waiting for the tree viewer to get merged into the master branch because I also have an idea about the user interface. I'd like to make the tree viewer the main user interface and move the 'right part' of the interface into a separate dialogue window.

from qt-sesam.

Line40 avatar Line40 commented on July 30, 2024

@ola-ct : I see there has never been a reply to the merging request of @egbrt, is this still in the works? I was about to try and implement the same thing before I stumbled upon this issue.

from qt-sesam.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.