Bug 46270 - Make portal administration easier
Make portal administration easier
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Portal
UCS 4.3
Other Linux
: P5 enhancement (vote)
: UCS 4.3
Assigned To: Johannes Keiser
Dirk Wiesenthal
: interim-2
: 46295 (view as bug list)
Depends on:
Blocks: 46277 46336 46391 46702
  Show dependency treegraph
 
Reported: 2018-02-09 19:41 CET by Johannes Keiser
Modified: 2019-03-07 09:53 CET (History)
7 users (show)

See Also:
What kind of report is it?: Feature Request
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
screenshot (670.65 KB, image/png)
2018-03-07 10:51 CET, Jannik Ahlers
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Keiser univentionstaff 2018-02-09 19:41:31 CET
Currently, the portal is not easy to configure. The new installed apps or servers are added automatically but one needs to start the LDAP navigation to add a new entry.  Once the admin is logged in, she should be able to add new entries or modify existing entries in the portal. The configuration for every user could be the next step.

Feature whishlist
  1. Add UMC UDM module for portal adminstration
  2. Show which computer objects are using a portal on the portal object, this is currently defined at the computer object only
  3. Easier configuration of entry order (by defining a priority at the entry object) #45459
  4. show portal entries depending on users group membership
  5. show 'customize this page' link if logged into portal as administrator/member of domain admin group
  6. Easier configuration of entry order (with a drag+drop wysiwyg view of the portal)
  7. Additional categories on the portal
Comment 1 Arvid Requate univentionstaff 2018-02-12 21:43:18 CET
There are commits in the name of this bug, who's the assignee?

======================================================================
commit 90f9b995d36bc19fd68bbc8864b4d050622cb92f
Author: Dirk Wiesenthal <wiesenthal@univention.de>
Date:   Sun Feb 11 02:53:43 2018 +0100

    Bug #46270: Portal Entries may define a user group which restricts visiblity (2)

commit bc3365b63f78e057fdb4ec503fde5e8a10af1827
Author: Dirk Wiesenthal <wiesenthal@univention.de>
Date:   Sun Feb 11 01:53:21 2018 +0100

    Bug #46270: Portal Entries may define a user group which restricts
    visiblity

commit 13f5b37e3cbd50be31cd3e1bdb4c03305a689d66
Author: Johannes Keiser <keiser@univention.de>
Date:   Fri Feb 9 20:23:20 2018 +0100

    Bug #46270: Debian changelog entries
======================================================================
Comment 2 Felix Botner univentionstaff 2018-02-13 10:14:57 CET
commit f5adc6cc adds univention-ldap-server as dependency to univention-portal. 

This breaks the member-server installation! Remove the univention-ldap-server dependency!
Comment 3 Arvid Requate univentionstaff 2018-02-13 11:33:45 CET
> commit f5adc6cc adds univention-ldap-server as dependency to univention-portal.

Yeah, thant's Bug 46277.
Comment 4 Johannes Keiser univentionstaff 2018-02-13 13:07:59 CET
These commits address point 1,2,3,5,6 from comment 0:
univention-directory-manager-modules (13.0.19-11)
univention-ldap (14.0.2-9)
univention-management-console-module-udm (8.0.5-2)
univention-portal (2.0.0-2)
univention-web (2.0.0-6)
f5adc6c Bug #46270: Create UDM module for portal administration and enable portal administration through the portal
13f5b37 Bug #46270: Debian changelog entries
216dad0 Bug #46270: Merge branch 'jkeiser/portal_administration' into 4.3-0

univention-portal (2.0.0-5)
313fa21 Bug #46270: Fix dnd in IE 11
332be4e Bug #46270: Fix pressing enter in dnd mode doubling the tiles
7a852ac Bug #46270: Fix position problem of the placholder when dragging tiles
297bc48 Bug #46270: Adjust styling of dragged tiles
0e33d19 Bug #46270: Fix portal not loading on servers without udm
bf6ca9e Bug #46270: Remove dependency on univention-ldap-server from univention-portal
bee059e Bug #46270: Adjust univention-portal.postinst
1ad773d Bug #46270: Remove active state for tile in portal entry wizard

univention-web (2.0.0-7)
f1960a7 Bug #46270: Remove unused styling

8ad3a08 Bug #46270: Debian changelog entries
b4ea1b2 Bug #46270: Changelog
5fc72de Bug #46270: Merge branch 'jkeiser/portal_administration' into 4.3-0


Point 4 from Dirk:
bc3365b Bug #46270: Portal Entries may define a user group which restricts visiblity
90f9b99 Bug #46270: Portal Entries may define a user group which restricts visiblity (2)(In reply to Felix Botner from comment #2)


> commit f5adc6cc adds univention-ldap-server as dependency to
> univention-portal. 
> 
> This breaks the member-server installation! Remove the
> univention-ldap-server dependency!
addressed with commit bf6ca9e
Comment 5 Florian Best univentionstaff 2018-02-13 18:51:34 CET
https://github.com/univention/univention-corporate-server/commit/bc3365b63f78e057fdb4ec503fde5e8a10af1827
changes the UMC-Server core and the UMC-Webserver just to add information about the groups of the user. Why?

Instead you could add a layer in some univention-portal code, which handles the visibility of portal entries in the backend instead of in the frontend!
Even a simple UMC module could do the same instead of changing core-code.
Comment 6 Dirk Wiesenthal univentionstaff 2018-02-26 12:14:10 CET
After an update, I found the portal to be non-working. I guess
  univention-directory-listener-ctrl resync portal
  univention-directory-listener-ctrl resync portal_entry
is missing. The problem seems to be that sorting is not present in the old file. Maybe you can work around missing sorting anyway?

It seems after the update the UDM objects are not yet "ready" for the changes. When I change the list of computers connected to the portal, I get:

Traceback(fe28ef2c66f71791ff3ee835ccb6f53d): 
Interner Server-Fehler in "udm/put (settings/portal_all)".
Request: udm/put (settings/portal_all)

Traceback (most recent call last):
  File "%PY2.7%/notifier/threads.py", line 82, in _run
    tmp = self._function()
  File "%PY2.7%/notifier/__init__.py", line 104, in __call__
    return self._function( *tmp, **self._kwargs )
  File "%PY2.7%/univention/management/console/modules/udm/__init__.py", line 407, in _thread
    module.modify(properties)
  File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 83, in _decorated
    return method(*args, **kwargs)
  File "%PY2.7%/univention/management/console/ldap.py", line 143, in _decorated
    result = func(*args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 454, in modify
    obj.modify()
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 526, in modify
    dn = self._modify(modify_childs, ignore_license=ignore_license, response=response)
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 1076, in _modify
    self._ldap_post_modify()
  File "%PY2.7%/univention/admin/handlers/settings/portal.py", line 276, in _ldap_post_modify
    self.__update_portal_computers()
  File "%PY2.7%/univention/admin/handlers/settings/portal.py", line 295, in __update_portal_computers
    compobj['portal'] = ''
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 2958, in __setitem__
    super(simpleComputer, self).__setitem__(key, value)
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 347, in __setitem__
    self.descriptions[key]
KeyError: 'portal'

How do you create the de.po file? Translations I found missing:
"Change order of portal entries ..."
"A portal entry with the given name ..."
"Portal entry was successfully created ..."
Comment 7 Stefan Gohmann univentionstaff 2018-03-01 13:45:30 CET
*** Bug 46295 has been marked as a duplicate of this bug. ***
Comment 8 Johannes Keiser univentionstaff 2018-03-02 13:51:40 CET
(In reply to Dirk Wiesenthal from comment #6)
> After an update, I found the portal to be non-working. I guess
>   univention-directory-listener-ctrl resync portal
>   univention-directory-listener-ctrl resync portal_entry
> is missing. The problem seems to be that sorting is not present in the old
> file. Maybe you can work around missing sorting anyway?

I moved the resync to postup to ensure that univention-ldap is updated
I also made a check in javascript in case the entry order is not present

1864ccd Bug #46270: Move resync of portal and portal_entry to postup
895ec5a Bug #46270: Debian changelog entries

> How do you create the de.po file? Translations I found missing:
> "Change order of portal entries ..."
> "A portal entry with the given name ..."
> "Portal entry was successfully created ..."

ca3ba99 Bug #46270: Add missing translations

> It seems after the update the UDM objects are not yet "ready" for the
> changes. When I change the list of computers connected to the portal, I get:
> 
> Traceback(fe28ef2c66f71791ff3ee835ccb6f53d): 
> Interner Server-Fehler in "udm/put (settings/portal_all)".
> Request: udm/put (settings/portal_all)
> 
> Traceback (most recent call last):
>   File "%PY2.7%/notifier/threads.py", line 82, in _run
>     tmp = self._function()
>   File "%PY2.7%/notifier/__init__.py", line 104, in __call__
>     return self._function( *tmp, **self._kwargs )
>   File "%PY2.7%/univention/management/console/modules/udm/__init__.py", line
> 407, in _thread
>     module.modify(properties)
>   File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line
> 83, in _decorated
>     return method(*args, **kwargs)
>   File "%PY2.7%/univention/management/console/ldap.py", line 143, in
> _decorated
>     result = func(*args, **kwargs)
>   File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line
> 454, in modify
>     obj.modify()
>   File "%PY2.7%/univention/admin/handlers/__init__.py", line 526, in modify
>     dn = self._modify(modify_childs, ignore_license=ignore_license,
> response=response)
>   File "%PY2.7%/univention/admin/handlers/__init__.py", line 1076, in _modify
>     self._ldap_post_modify()
>   File "%PY2.7%/univention/admin/handlers/settings/portal.py", line 276, in
> _ldap_post_modify
>     self.__update_portal_computers()
>   File "%PY2.7%/univention/admin/handlers/settings/portal.py", line 295, in
> __update_portal_computers
>     compobj['portal'] = ''
>   File "%PY2.7%/univention/admin/handlers/__init__.py", line 2958, in
> __setitem__
>     super(simpleComputer, self).__setitem__(key, value)
>   File "%PY2.7%/univention/admin/handlers/__init__.py", line 347, in
> __setitem__
>     self.descriptions[key]
> KeyError: 'portal'

I could not reproduce this error
Comment 9 Dirk Wiesenthal univentionstaff 2018-03-06 14:26:25 CET
The traceback occurs when the computer module is not yet loaded
Comment 10 Johannes Keiser univentionstaff 2018-03-06 15:48:34 CET
(In reply to Dirk Wiesenthal from comment #9)
> The traceback occurs when the computer module is not yet loaded

a3b96a7 Bug #46270: Initialize computer module to get extended attributes
Comment 11 Jannik Ahlers univentionstaff 2018-03-07 10:51:15 CET
I can't edit the portal on a slave system. Is that a feature? It seems to make it impossible to edit the slave portal more than once. You have to design your slave portal on your master, set its visibility to the slave, and then design a new portal for your master. Trying to overwrite the slave portal afterwards fails (see screenshot).
Comment 12 Jannik Ahlers univentionstaff 2018-03-07 10:51:40 CET
Created attachment 9441 [details]
screenshot
Comment 13 Johannes Keiser univentionstaff 2018-03-07 16:16:23 CET
(In reply to Jannik Ahlers from comment #11)
> I can't edit the portal on a slave system. Is that a feature? It seems to
> make it impossible to edit the slave portal more than once. You have to
> design your slave portal on your master, set its visibility to the slave,
> and then design a new portal for your master. Trying to overwrite the slave
> portal afterwards fails (see screenshot).

At the moment the currently set portal can only be edited on a master or backup system. The portal could be edited on other systems by installing univention-management-console-module-udm but this is not and (will not) be documented as a workaround/solution.

The error in the screenshot appears if the system does not have a portal set.
It appears that the portal can be edited but there is no portal object set that could be edited. (See Bug #46534)
Comment 14 Dirk Wiesenthal univentionstaff 2018-03-08 16:41:04 CET
Works great
Comment 15 Stefan Gohmann univentionstaff 2018-03-14 14:38:36 CET
UCS 4.3 has been released:
 https://docs.software-univention.de/release-notes-4.3-0-en.html
 https://docs.software-univention.de/release-notes-4.3-0-de.html

If this error occurs again, please use "Clone This Bug".
Comment 16 Jannik Ahlers univentionstaff 2018-03-16 13:33:24 CET
The function to make a portal entry visible for members of a specific group only is dependent on the memberof-overlay, and therefore doesn't work if the overlay is deactivated (see bug 46476). I think there should at least be a visible hint of this.
Comment 17 Arvid Requate univentionstaff 2018-03-19 12:31:43 CET
This bug is closed, so it cannot be used to handle your request. Please open a new bug which refers to this bug (e.g. by cloning this one). Give it a meaningful description and try to rate it according to your judgement (Field: "What kind of report is it?").