diff --git a/gms-ui/src/components/TopMenu.vue b/gms-ui/src/components/TopMenu.vue index b71a95cf269bb8ac72c8ff807a700156331802ad..a5db75c6c0091407f50160ac66378c7e7b73c142 100644 --- a/gms-ui/src/components/TopMenu.vue +++ b/gms-ui/src/components/TopMenu.vue @@ -9,6 +9,7 @@ <!-- Right aligned nav items --> <b-navbar-nav class="ml-auto"> + <b-nav-item href="help/index.html" target="blank_" class="mr-4">Help</b-nav-item> <b-nav-form> <b-form-input size="sm" class="mr-sm-2" placeholder="Search" v-model="input.genericSearch.filter" @keydown.native.enter.prevent="genericSearch"></b-form-input> <b-button size="sm" class="my-2 my-sm-0" type="button" v-on:click="genericSearch()">Search</b-button> diff --git a/gms/src/main/java/it/inaf/ia2/gms/authn/SecurityConfig.java b/gms/src/main/java/it/inaf/ia2/gms/authn/SecurityConfig.java index 8d47685ebd00d9f2cd97b374b9b95cd535f16abc..aa1dd23e3beed7d5682d5b11b9d07c8317fa6471 100644 --- a/gms/src/main/java/it/inaf/ia2/gms/authn/SecurityConfig.java +++ b/gms/src/main/java/it/inaf/ia2/gms/authn/SecurityConfig.java @@ -72,7 +72,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { */ @Override public void configure(WebSecurity web) throws Exception { - web.ignoring().antMatchers("/ws/jwt/**", "/error", "/logout", "/invited-registration"); + web.ignoring().antMatchers("/ws/jwt/**", "/error", "/logout", "/invited-registration", "/help/**"); } /** diff --git a/gms/src/main/resources/static/help/help-admin.html b/gms/src/main/resources/static/help/help-admin.html new file mode 100644 index 0000000000000000000000000000000000000000..f452453aba0beea927dad9fcbb399d1b4fcc2daf --- /dev/null +++ b/gms/src/main/resources/static/help/help-admin.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<html> + <head> + <title>GMS - Help Page for Administrators</title> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous" /> + </head> + <body> + <div class="container"> + <h1 class="mt-5 text-center mb-4">GMS - Help Page for Administrators</h1> + + <p>Groups inside the GMS are organized in a tree structure (parent groups contain child groups). + You can navigate the structure clicking on the group names. + The parent of all groups is called ROOT.</p> + + <p class="text-center"> + <img src="img/gms-admin-groups.jpg" alt="" class="mb-3" /> + </p> + + <p>Each group has its own members and permissions.</p> + + <p>GMS supports the following permissions:</p> + <ul> + <li><code>ADMIN</code>: the user can edit the group, create/delete subgroups, add/remove members, add/remove permissions.</li> + <li><code>MANAGE_MEMBERS</code>: the user can add/remove members. The system will automatically assign + a <code>VIEW_MEMBERS</code> permission to those members.</li> + <li><code>VIEW_MEMBERS</code>: the user can see the other members.</li> + </ul> + + <p>Memberships and permissions are handled separately, for example:</p> + <ul> + <li>A person can be a member of a group without having any permission on it. + In this case applications using the GMS (like a portal) know that the user + is a member of the group but he/she can't do anything on the GMS.</li> + <li>A person can have a permission (for example <code>ADMIN</code>) on a group without being + a member of that group. In this case applications using the GMS don't see + the user as a member of the group but he/she can administrate it on the GMS interface.</li> + <li>A person can be a member of a group and also have a permission on it (for example <code>MANAGE_MEMBERS</code>). + This is the case of Principal Investigators.</li> + </ul> + + <p>Memberships and permissions defined in a parent group are inherited by child groups.</p> + + <h2 class="mt-4 mb-3">Managing groups</h2> + + <p>Go to the "Groups" tab and click on the "Add group" button:</p> + + <p> + <img src="img/gms-add-group-btn.jpg" alt="" /> + </p> + + <p>The following modal dialog is displayed:</p> + + <p> + <img src="img/gms-admin-add-group-modal.jpg" alt="" class="mb-3" /> + </p> + + <p>If you select the "is leaf" checkbox, the group will be a leaf of the tree: this means that + it will not be possible to create sub-groups inside it. You can change this setting in any moment + clicking on the "Edit group" button (pencil icon <img src="img/pencil-icon.jpg" alt="" />).</p> + + <p>You can delete groups using trash icons (<img src="img/trash-icon.jpg" alt="" />). + A dialog will ask for confirming the operation before deleting the group.</p> + + <h2 class="mt-4 mb-3">Managing memberships</h2> + + <p>Go to the "Members" tab and click on the "Add member" button:</p> + + <p> + <img src="img/gms-add-member-btn.jpg" alt="" /> + </p> + + <p>The following modal dialog is displayed:</p> + + <p> + <img src="img/gms-admin-add-member-modal.jpg" alt="" class="mb-2 mt-2" /> + </p> + + <p>Type the name or the email of the user in the search input in order to select the desired user.</p> + + <p>You can delete memberships using the trash icons (<img src="img/trash-icon.jpg" alt="" />). + The application will ask you if you want to remove + also the associated permission.</p> + + <h2 class="mt-4 mb-3">Managing permissions</h2> + + <p>Go to the "Permissions" tab and click on the "Add permission" button:</p> + + <p> + <img src="img/gms-add-permission-btn.jpg" alt="" /> + </p> + + <p>The following modal dialog is displayed:</p> + + <p> + <img src="img/gms-admin-add-permission-modal.jpg" alt="" class="mb-2 mt-2" /> + </p> + + <p>Type the name or the email of the user in the search input in order to select the desired user.</p> + + <p>You can delete permissions using the trash icons (<img src="img/trash-icon.jpg" alt="" />). + Remember that removing permissions doesn't remove memberships. + You can also use the edit icon (<img src="img/pencil-icon.jpg" alt="" />) + in order to change a permission.</p> + + <h2 class="mt-4">Seeing information about users</h2> + + <p>You can click on the user names in the Members or Permissions tab in order to see a detailed page about a specific user.</p> + + <h2 class="mt-4">Generic search</h2> + + <p>On the top menu bar there is the generic search input. You can use it for searching both users and groups.</p> + + <p> + <img src="img/gms-generic-search.jpg" alt="" /> + </p> + + <p class="text-center mt-5 mb-3"><a href="index.html">Back</a></p> + </div> + </body> +</html> \ No newline at end of file diff --git a/gms/src/main/resources/static/help/help-pi.html b/gms/src/main/resources/static/help/help-pi.html new file mode 100644 index 0000000000000000000000000000000000000000..1cd7633c30103ebaa9457644264723baba275c7a --- /dev/null +++ b/gms/src/main/resources/static/help/help-pi.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> + <head> + <title>GMS - Help Page for Users</title> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous" /> + </head> + <body> + <div class="container"> + <h1 class="mt-5 text-center mb-4">GMS - Help Page for Principal Investigators</h1> + + <p>Groups inside the GMS are organized in a tree structure (parent groups contain child groups). + You can navigate the structure clicking on the group names. + The parent of all groups is called ROOT.</p> + + <p class="text-center"> + <img src="img/gms-pi-groups.jpg" alt="" class="mb-3" /> + </p> + + <h2>Managing memberships</h2> + + <p>Click on the "Add collaborator" button:</p> + + <p> + <img src="img/gms-add-collaborator-btn.jpg" alt="" class="mb-3" /> + </p> + + <p>The following modal dialog is displayed:</p> + + <p> + <img src="img/gms-add-collaborator-modal.jpg" alt="" class="mb-2 mt-2" /> + </p> + + <p> + Type the name or the email of the user in the search input in order to select the desired user. + The user will be able to see the memberships but he/she will not be able to add other collaborators. + If multiple users need to manage memberships of the same group you can ask administrators to enable them. + </p> + + <p>You can delete memberships using the trash icons (<img src="img/trash-icon.jpg" alt="" />). + + <h2 class="mt-4">Seeing information about users</h2> + + <p>You can click on the user names in order to see a detailed page about a specific user.</p> + + <h2 class="mt-4">Generic search</h2> + + <p>On the top menu bar there is the generic search input. You can use it for searching both users and groups.</p> + + <p> + <img src="img/gms-generic-search.jpg" alt="" /> + </p> + + <p class="text-center mt-5 mb-3"><a href="index.html">Back</a></p> + </div> + </body> +</html> \ No newline at end of file diff --git a/gms/src/main/resources/static/help/img/gms-add-collaborator-btn.jpg b/gms/src/main/resources/static/help/img/gms-add-collaborator-btn.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54e2c52882630138a1889034c130491c08f17433 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-add-collaborator-btn.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-add-collaborator-modal.jpg b/gms/src/main/resources/static/help/img/gms-add-collaborator-modal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fc1d1c94223394ad194bfeeb355de6f656dc203 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-add-collaborator-modal.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-add-group-btn.jpg b/gms/src/main/resources/static/help/img/gms-add-group-btn.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9333b0b57fcc8568a5a2e3ec78f74d8c7a961d5 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-add-group-btn.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-add-member-btn.jpg b/gms/src/main/resources/static/help/img/gms-add-member-btn.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53c308dcb8f5cd6d8594b349eb4536f9fe25142d Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-add-member-btn.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-add-permission-btn.jpg b/gms/src/main/resources/static/help/img/gms-add-permission-btn.jpg new file mode 100644 index 0000000000000000000000000000000000000000..037413bc4fec9e83138d8db3ecbefc5b32e9e296 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-add-permission-btn.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-admin-add-group-modal.jpg b/gms/src/main/resources/static/help/img/gms-admin-add-group-modal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f5de71d6482bf01c5c6caa2a6349cb774c294ad3 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-admin-add-group-modal.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-admin-add-member-modal.jpg b/gms/src/main/resources/static/help/img/gms-admin-add-member-modal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9773609ae77e26f6bd026b938bc62991511598f8 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-admin-add-member-modal.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-admin-add-permission-modal.jpg b/gms/src/main/resources/static/help/img/gms-admin-add-permission-modal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..91b866c72ccbe8076d7f7222df2b3e9cc49c2477 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-admin-add-permission-modal.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-admin-groups.jpg b/gms/src/main/resources/static/help/img/gms-admin-groups.jpg new file mode 100644 index 0000000000000000000000000000000000000000..057d125a32133b102206e7a47815b20e6762bc86 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-admin-groups.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-generic-search.jpg b/gms/src/main/resources/static/help/img/gms-generic-search.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de6ed2980b449eac467cc524dab6fb3eaf7b03e7 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-generic-search.jpg differ diff --git a/gms/src/main/resources/static/help/img/gms-pi-groups.jpg b/gms/src/main/resources/static/help/img/gms-pi-groups.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4cf200d13e9e56b10eb0c73b4a63e1d1b9af0534 Binary files /dev/null and b/gms/src/main/resources/static/help/img/gms-pi-groups.jpg differ diff --git a/gms/src/main/resources/static/help/img/pencil-icon.jpg b/gms/src/main/resources/static/help/img/pencil-icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0de4d87d8aa9f7364c65bbba26f7ae156ff8da7c Binary files /dev/null and b/gms/src/main/resources/static/help/img/pencil-icon.jpg differ diff --git a/gms/src/main/resources/static/help/img/trash-icon.jpg b/gms/src/main/resources/static/help/img/trash-icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1cb7d80b7a1b7bc28474ae5f7859bd4a660764be Binary files /dev/null and b/gms/src/main/resources/static/help/img/trash-icon.jpg differ diff --git a/gms/src/main/resources/static/help/index.html b/gms/src/main/resources/static/help/index.html new file mode 100644 index 0000000000000000000000000000000000000000..2a1935af2587edc319429cf158e4ca719986e3b9 --- /dev/null +++ b/gms/src/main/resources/static/help/index.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html> + <head> + <title>GMS - Help Pages</title> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous" /> + </head> + <body> + <div class="container"> + <h1 class="mt-5 text-center mb-5">GMS - Help Pages</h1> + + <p class="text-center lead"><strong><a href="help-pi.html">Help page for Principal Investigators</a></strong></p> + <p class="text-center lead mb-5"><strong><a href="help-admin.html">Help page for Administrators</a></strong></p> + + <p class="text-center">For any issue send an email to <a href="mailto:ia2@inaf.it">ia2@inaf.it</a></p> + </div> + </body> +</html> \ No newline at end of file