Modern Dashboard with Role presets

Created on 19 October 2021, over 3 years ago
Updated 16 March 2023, about 2 years ago

Problem/Motivation

Drupal’s default behavior when you log into a site is redirecting you to your account page. It doesn’t give any meaningful info or quick glimpse of what's going on their sites or tools that a user might need.

@saschaeggi outlined that after conducting several interviews and doing some user research with Content Editors that a big portion of these users would like to have a dashboard to get a quick glimpse of what's going on their sites. He showcased his idea of a modern dashboard in his DrupalCon Europe's Talk «Gin Admin Theme: The Past, The Present & The Future». Slides on Notist

Proposed resolution

Create a new and modern Dashboard based on user needs, and define that needs per role.


Screenshot of Gin Dashboard idea by @saschaeggi

Historically there have been several attempts to get a version of a Dashboard into core:

"Add to core" issues:

"Remove from core" issue: #950956: Remove Dashboard from core

Shortened thoughts about why the previous attempt didn’t work, to keep in mind with this new attempt:

  • @Gábor Hojtsy: I think the core one did not succeed because developers did not make panes for it, though not sure why they did not
  • @webchick: My recollection is that the "tech" behind Dashboard was never the problem, it was very much about not having the right (or really, any) "stuff" to go into the dashboard.
  • @webchick: Another thing D7 didn't have (I think?) was the notion of any roles outside of anonymous and authenticated. That also made things really challenging, Dashboard-wise. Admins, "Editors," and site visitors all have very, very different needs.

Now that we have a new role in core in the Standard profile ( and more coming ), we can add different and targeted elements per role.

Example posted by @webchick:


So if I'm a content author, that could be things like:

  • Drafts I currently have in progress
  • Draft feedback I need to act on / provide
  • "Engagement" with my published content in a nice line graph or similar

If I'm a site owner that could be:

  • Outstanding updates I need to install
  • Spam users/comments I need to delete
  • Errors my site is encountering

Note about what this issue is not about: User-specific new navigation 🌱 New “content creation” menu proposal Needs review or site architecture (Toolbar organization) have their own issues.

Remaining tasks

  • Agree on what's the problem we're trying to solve (@yoroy): “see at a glance all of the things a user cares about” (@webchick)
  • Define content/elements per role
  • Define behavior (link somewhere, redirect on login...)
  • Agree on a technical solution: more or less complex
🌱 Plan
Status

Active

Component

Idea

Created by

🇨🇭Switzerland saschaeggi Zurich

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • 🇬🇧United Kingdom catch

    The Standard Profile ships several "personas" to match the roles (e.g. Admin, Content Editor, etc), and we have some kind of way of matching a Dashboard to one or more roles (maybe just used the conditions system that Blocks use for visibility, but with only role based conditions, none of the page stuff);

    Roles are additive, so an admin can also be a content editor - if someone has more than one role, and each role matches a dashboard variant, how do you choose which dashboard they get? We also don't have metadata for roles except for the special superuser admin role, i.e. there's not really a way to indicate precedence.

    It would be a lot simpler to use the existing block visibility system - i.e. you either have access to a block or you don't, and then the combination of roles/permissions that you have determines which blocks show in your dashboard. This would mean only one dashboard with blocks that might or might not show on it.

  • 🇺🇸United States dww

    Roles are additive, so an admin can also be a content editor - if someone has more than one role, and each role matches a dashboard variant, how do you choose which dashboard they get? We also don't have metadata for roles except for the special superuser admin role, i.e. there's not really a way to indicate precedence.

    But roles do have weights, and the UI tells you to weight them from least powerful to most. So we could just say “the heaviest role the user has” or whatever.

  • 🇺🇸United States dww

    Here's the relevant help text at the top of /admin/people/roles on 10.1.x:

    Here, you can define the names and the display sort order of the roles on your site. It is recommended to order roles from least permissive (for example, Anonymous user) to most permissive (for example, Administrator user).

    Especially given the proposal includes "customize your own" and we're just talking about a default dashboard setup for you, the one based on your most permissive role seems totally fine.

  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺

    There's a group of people that have been working on this for a couple of months already, and on today's call we discussed that we need to update this idea, but you beat us to do that.

    While we work on that, some links:

    * We are communicating in the #dashboard channel on slack.
    * We have a sandbox at https://www.drupal.org/sandbox/penyaskito/3327580
    * You can find a demo at https://github.com/penyaskito/dashboard-initiative
    * You can see the demo online at https://main-ps44ayjkzq3gdy5zk1fifpraj8ctkihy.tugboatqa.com/

  • 🇬🇧United Kingdom catch

    But roles do have weights, and the UI tells you to weight them from least powerful to most. So we could just say “the heaviest role the user has” or whatever.

    That still tracks to essentially security concerns rather than UX. 'User admin' would usually be the 'heavier' role than 'content admin' for security reasons, but this doesn't mean it's the main role of the account. Say I'm a content admin on d.o and have blocks with comments and nodes to review, then I get additional user admin access to block spammers and suddenly those blocks disappear.

    I did have one thought which would be to implement the role based dashboards as tabs, and then you'd have access to whichever ones you have access to. Has its own problems but would mean that people don't lose access to stuff they're relying on when roles are added.

  • 🇬🇧United Kingdom AaronMcHale Edinburgh, Scotland

    So, for context, I think we've moved past the idea of this being based on roles and instead are focusing more on Dashboards which meet specific personas.

    So for example, you could have a dashboard focused on content creation/management, or another one focused on site administration. My ideal vision (and this is just my perspective) you could decide to place a dashboard anywhere that made sense, so for example you might decide to place a content focused dashboard under /admin/content, and then it would appear there as a tab.

  • 🇬🇧United Kingdom catch

    OK if that's no longer the plan it's probably not worth talking about the drawbacks with it, but tagging for issue summary update.

  • 🇫🇷France andypost

    The efforts reminds me Add simple blank page creation capability Needs work

  • 🇪🇸Spain ckrina Barcelona

    Updating issue summary with existing plan and proposal. We're organizing ourselves at the #dashboard and #admin-ui channels in Drupal Slack for anybody willing to get involved or with any questions.

  • 🇦🇺Australia pameeela

    It might be an option to consider an initial dashboard that shows various things based on permissions only, and otherwise isn't customisable. Tailored ones per persona are obviously better, but the current state of seeing /user is really bad. So this could be a two-phased approach with the first one being the same for all and later versions being customisable.

    Wordpress and Joomla provide standard dashboards and they're not perfect, but still better.

    Or maybe this is a separate task to create a nicer destination for login? Since it seems based on #18 this has expanded a bit beyond just the login use case.

  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺

    @pameeela That's mostly the plan :D

    You can see the current progress at https://www.drupal.org/project/dashboard . There is a tugboat link available that you can use for a live demo of the standard profile defaults (admin/admin, editor/editor). Join #dashboard on Slack if you want to discuss, we should shortly update again this idea description.

  • 🇦🇺Australia pameeela

    Ah very cool! I missed that detail in the issue summary that it was building on an existing contrib module. It looks awesome!

  • 🇳🇿New Zealand quietone

    The Ideas project is being deprecated. This issue is moved to the Drupal project. Check that the selected component is correct. Also, add the relevant tags, especially any 'needs manager review' tags.

Production build 0.71.5 2024