ce7db82c | 05-Jul-2024 |
Paul Fertser <fercerpav@gmail.com> |
Retrieve role information the Redfish standard way
Currently webui-vue has a hardcoded list of pages and sidebar menu items restricted to a specific Redfish role (from a predefined default set). To
Retrieve role information the Redfish standard way
Currently webui-vue has a hardcoded list of pages and sidebar menu items restricted to a specific Redfish role (from a predefined default set). To disallow navigating to restricted pages and to hide disallowed menu items the application needs to know the roles assigned to the session.
bmcweb only implements a single role identity per session so the Roles array returned within a Session object always has just one element.
This patch changes the mechanism used to retrieve the current role from buggy direct query to AccountService (which can only return information about BMC local users) to extracting it from standard Redfish Session object.
In case the role is not available (e.g. when backend implementation predates #Session.v1_7_0.Session) the application assumes Administrator role which is meant as a best effort to continue working given the circumstances. This doesn't pose a security risk because all validation is always performed by the backend itself, so the worst that can happen is end user getting error messages trying to access something without enough privileges.
Tested: logging in and out of accounts with different roles without reloading the page, observing the list of queries made, the role variable assignments and presence of the menu items depending on account, navigating to different pages. Also tested reloading the page and confirmed the correct role was retrieved without going through login again. Also tested deleting and mangling localStorage variable sessionURI prior to doing page reload, in those cases redirect to login page was observed.
Change-Id: I8b6c84060a987489cc1d35c46c1b00618a88b607 Signed-off-by: Paul Fertser <fercerpav@gmail.com>
show more ...
|
918526f2 | 19-Sep-2024 |
Shubhi Garg <shgarg@nvidia.com> |
Fix power operations as per DMTF redfish spec
[Problem Description]:
1) Power Operations page uses "Orderly" and "Immediate" strings for "Graceful reboot/shutdown" and "Force reboot/shutdown". Thes
Fix power operations as per DMTF redfish spec
[Problem Description]:
1) Power Operations page uses "Orderly" and "Immediate" strings for "Graceful reboot/shutdown" and "Force reboot/shutdown". These names do not align according to redfish spec and causes user confusion.
2) For boot settings, if "BootSourceOverrideEnabled" flag is false, WebUI allows to modify boot options.
[Changes]:
1) Changed reboot/shutdown naming convention as per DMTF redfish spec to view correct names on WebUI.
2) Added info-tooltip to give detailed information on Reboot/Shutdown options. Information is referenced from: https://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType
3) Added "oneTimeBootEnabled" condition check to render BootSettings if condition is true. "oneTimeBootEnabled" checks BootSourceOverrideEnabled flag, if true then BootSettings will be able to modify boot options.
[Testing]: 1) Load WebUI with the changes and go to Power operations page. 2) Check reboot shutdown names have changes to Graceful reboot/shutdown" and "Force reboot/shutdown". 3) Check if BootSettings template renders as expected.
Change-Id: I5a86e05ee03167ebb93ffd381af3a47c277990fd Signed-off-by: Shubhi Garg <shgarg@nvidia.com>
show more ...
|
825059ac | 04-Oct-2024 |
Surya Venkatesan <suryav@ami.com> |
i18n fix after vue3 merge to master
Fix i18n issue in the Power restore policy, Inventory LEDs, and User management page.
After merge the vue3 code to master the i18n Power restore policy, Inventor
i18n fix after vue3 merge to master
Fix i18n issue in the Power restore policy, Inventory LEDs, and User management page.
After merge the vue3 code to master the i18n Power restore policy, Inventory LEDs, and User management page got conflicts and old code retrieved in master. So unable to render the Power restore policy, Inventory LEDs and unable to disable the user in user management page
change the i18n.t method to i18n.global.t for the vue3 support.
Change-Id: I46f3f56632308ceaee321dd896e16e922d964b60 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
1b89e594 | 25-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Date and time page helper issue
Invalid feedback element if condition change, Helper import change in date time page and table date filter global component.
Change-Id: I1f01943229b78d4dff36f3905fe3
Date and time page helper issue
Invalid feedback element if condition change, Helper import change in date time page and table date filter global component.
Change-Id: I1f01943229b78d4dff36f3905fe3781ba696d528 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
69be824a | 23-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Invalid feedback if condition change
For required, invalid format, minlength, maxlength, date, pattern validation if condition change in the few components
Change-Id: Id8eebc140301e48dde833a604ca92
Invalid feedback if condition change
For required, invalid format, minlength, maxlength, date, pattern validation if condition change in the few components
Change-Id: Id8eebc140301e48dde833a604ca92426ebf77c9c Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
1a814b9f | 23-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
LDAP and server power operation page fix
In LDAP loading declare outside the form, form validation condition change, server power operation page validation added and i18n method changed in the event
LDAP and server power operation page fix
In LDAP loading declare outside the form, form validation condition change, server power operation page validation added and i18n method changed in the event log store.
Change-Id: I903b4dec7da1a5a2cc8441c65693c57201405d70 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
f1ccca3f | 23-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Factory reset modal popup and validation issue
In vue3 i18n is not return the object value from the locale, so unable to do the for loop in Setting list. Remove the for loop and implement the separa
Factory reset modal popup and validation issue
In vue3 i18n is not return the object value from the locale, so unable to do the for loop in Setting list. Remove the for loop and implement the separate list for reset bios and reset to default. And implement the useVuelidate in the factory reset page.
Change-Id: I10833742475b90f7c5349a5b995ff04e93c306de Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
4b89b043 | 19-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Locale gets undefined in the login page
While use i18n.locale it is undefined so those pages use the storedLanguage that page gets failed to load.
Change-Id: I11b45f42d06bb355f561d5c1e93f7516775b1c
Locale gets undefined in the login page
While use i18n.locale it is undefined so those pages use the storedLanguage that page gets failed to load.
Change-Id: I11b45f42d06bb355f561d5c1e93f7516775b1c81 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
4626aec4 | 19-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Network page validation and i18n issue fix
In network page invalid if condition changed, added validations and i18n function changed based on the vue 3 support.
Change-Id: If5b9c00f6da722984f1c568c
Network page validation and i18n issue fix
In network page invalid if condition changed, added validations and i18n function changed based on the vue 3 support.
Change-Id: If5b9c00f6da722984f1c568cfbcb6b34537c3df1 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
00355b65 | 12-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Firmware page vuelidate and form file error fix
While add a file in the form file vuelidate error occurs and global component form file not return a file, by emit the $event in form file fix the iss
Firmware page vuelidate and form file error fix
While add a file in the form file vuelidate error occurs and global component form file not return a file, by emit the $event in form file fix the issue.
Change-Id: Icbeddc7a3faa262f12e85268206ae70950f37905 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
6923c46d | 05-Jul-2024 |
Paul Fertser <fercerpav@gmail.com> |
Handle expired passwords Redfish standard way
A password can expire at any moment during session lifetime and bmcweb starts returning 403 Forbidden errors to the requests made after that. The respon
Handle expired passwords Redfish standard way
A password can expire at any moment during session lifetime and bmcweb starts returning 403 Forbidden errors to the requests made after that. The response contains clear indication of the condition in the standard `@Message.ExtendedInfo` attribute which is an array of Message objects.
Previously the code was trying to detect this condition by querying AccountService after logging in but this approach doesn't work when password expires mid-session. Also it was limited to BMC-managed accounts and used hardcoded account URIs in violation of Redfish spec.
This patch adds to the interceptor of 403 error so that the user is automatically redirected to the password change page as soon as the condition is detected.
The same message is also present in the session creation POST response 201 if the password expired before the log in attempt, in this case the session is created as usual but the user is automatically redirected to password change page before any further requests are made.
Tested: logging in, navigating, logging out with non-expired password. Logging in, navigating, then running `passwd -e <accountname>` via ssh leads to functional password change page on the next request and then navigating proceeds normally, and logging out too. If password is expired before logging in the user gets redirected to the password change page automatically after logging in.
Fixes: https://github.com/openbmc/webui-vue/issues/118 Change-Id: I03f5ee2526a4bb1d35d3bbea1142fea077d6bfed Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
90300e9f | 01-Aug-2024 |
Surya Venkatesan <suryav@ami.com> |
Add user validation in user management page
helpers and sameAs validations are not working in vue3 so the helpers and sameAS are imported from vuelidate/lib/validators. Invalid validation field like
Add user validation in user management page
helpers and sameAs validations are not working in vue3 so the helpers and sameAS are imported from vuelidate/lib/validators. Invalid validation field like required are not show so the if condition for invalid feedback alert field changed. Add user and delete user are working in the user management page.
Change-Id: I0133e02357048ffbc6206382b2a0a5c162e2384d Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
f74cbab0 | 17-Jul-2024 |
Ed Tanous <etanous@nvidia.com> |
Rebase vue3 to latest master
Ipv6 got added. Make the updates to make it build for vue3.
Change-Id: Ifaa4b8e46200a8431c5d9ca9b8e3e279cc868f26 Signed-off-by: Ed Tanous <etanous@nvidia.com> |
de23ea23 | 11-Jul-2024 |
Surya V <suryav@ami.com> |
Vuelidate, I18n, and filter are upgraded to vue3
While navigating to the pages i18n, vuelidate, and filters errors occurred. i18n, and vuelidate code changes in each page adapted to vue3. Filter glo
Vuelidate, I18n, and filter are upgraded to vue3
While navigating to the pages i18n, vuelidate, and filters errors occurred. i18n, and vuelidate code changes in each page adapted to vue3. Filter global function for date and time format implemented in the main.js file and those files which as called the filter functions.
Change-Id: If1a2ee22d47750faef1c35ef2c263299067d9a20 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
883a0d59 | 23-Mar-2024 |
Ed Tanous <ed@tanous.net> |
i18n, vue-router and vuex upgrade
1. Configuration of i18n legacy as false. 2. Translation function t is called using the useI18n. 3. Used the i18n.global.t() function from i18n instead of this.$t()
i18n, vue-router and vuex upgrade
1. Configuration of i18n legacy as false. 2. Translation function t is called using the useI18n. 3. Used the i18n.global.t() function from i18n instead of this.$t() 4. Event bus error that occurred during logout. 5. Implemented vue-router 4.4.0 and vuex upgrade to 4.1.0
Change-Id: I9464d82c76dcc1445ce271983ea3ab9d7b03d265 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
7d6b44cb | 23-Mar-2024 |
Ed Tanous <ed@tanous.net> |
Upgrade vue3 and all dependencies
Start the process of porting everything to Vue 3. I have most things working. npm run-scripts build works, npm install works. prettier passes. Styles load, logi
Upgrade vue3 and all dependencies
Start the process of porting everything to Vue 3. I have most things working. npm run-scripts build works, npm install works. prettier passes. Styles load, login works, webui loads.
This was primarily done using the linked documents below. It makes the following design decisions: 1. Vue is put in compat 2 mode, which allows most of the components to work as-is. 2. Bootstrap v4 is used along with bootstrap-vue to keep our components working. 3. Minor changes are made to load the latest versions of vue-router, vuex, and vue-i18n.
I suspect this patchset is good enough to start with, and we can clean up the broken things one patchset at a time. The things that need to happen are:
1. Get remaining features working again. This primiarily is vue-i18n for mixins, and non vue components. This likely needs to be done by not pulling in i18n into the non vue components, then using the .Vue files to do the internationalization in the component context, NOT in the mixin context. Alternatively, we could drop MixIns alltogether. 2. Get custom styles working again. Previously, we used some path hackery in vue.config.js to optionally pre-load styles. This stops working now that we're required to @import our modules. Likely we need some rearangement of the paths such that custom styles are a complete replacement (possibly importing the original) rather than additive with overrides. That's a guess, but I don't really see anyone else doing customization the way we've defined it here. 3. Bootstrap 5 no longer requires ANY custom vue modules, as it has dropped the jquery dependency. We won't be able to pull in bootstrap 5 all at once, so pull in bootstrap 5 under an alias, like "bootstrap5" that we can optionally import 5 or 4. 4. One at a time, start porting components over to Vue3 syntax and bootstrap 5. This will be the bulk of the manual work and review.
The only thing I think left is getting unit tests passing, which I commented out the pre-commit hook to make this PR.
Tested: Code builds. Needs better testing.
[1] https://router.vuejs.org/guide/migration/ [2] https://vue-i18n.intlify.dev/guide/migration/vue3 [3] https://vuelidate-next.netlify.app/migration_guide.html#package-name-and-imports
Change-Id: I5bb3187b9efbf2e4ff63e57994bc528756e2a981 Signed-off-by: Ed Tanous <ed@tanous.net>
show more ...
|
41303975 | 30-Sep-2024 |
Nikhil Ashoka <a.nikhil@ibm.com> |
Updated Power restore policy URI
- Previously, we used to get the values for power restore policy page from“JsonSchemas/ComputerSystem/ComputerSystem.json”. Now we have removed the hardcoded API
Updated Power restore policy URI
- Previously, we used to get the values for power restore policy page from“JsonSchemas/ComputerSystem/ComputerSystem.json”. Now we have removed the hardcoded API call and are fetching the values from the JsonSchemas/ComputerSystem’s URI because we would have versioned ComputerSystem.json in the redfish response.
Change-Id: I1a25cbbb3dfc536485a6f71a359ae32c6eadf5f7 Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
show more ...
|
51feb353 | 27-Sep-2024 |
Sean Zhang <xiazhang@nvidia.com> |
Fix event entry download
Event entry should be downloaded with specific http header of "Accept: application/octet-stream" or "*/*", but the default http header is set to "Accept: application/json",
Fix event entry download
Event entry should be downloaded with specific http header of "Accept: application/octet-stream" or "*/*", but the default http header is set to "Accept: application/json", so need to specify the header for event downloading.
Refer: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/40136
Tested: Event entry data can be downloaded with the fix.
Change-Id: Ia45123340da79a54fc4229470e6822206b8df808 Signed-off-by: Sean Zhang <xiazhang@nvidia.com>
show more ...
|
f4e79739 | 17-Sep-2024 |
Nikhil Ashoka <a.nikhil@ibm.com> |
Updated Dumps card in overview page
- The Dumps count in the overview page is not displaying the count of all
the entries. Updated to display count of all entries. - The registration of Dumps stor
Updated Dumps card in overview page
- The Dumps count in the overview page is not displaying the count of all
the entries. Updated to display count of all entries. - The registration of Dumps store is in multiple locations, store -> index.js and env -> store -> ibm.js. Causing error in IBM machines because of duplicate
registration. Removed from env folder.
Change-Id: Idc57a85db090d1b1d3211c01e658b181a7fc1177 Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
show more ...
|
ccf5c5c8 | 12-Sep-2024 |
jason westover <jwestover@nvidia.com> |
Add default Target to MultipartHttpPush
When no targets are provided, webui will now default to the BMC: i.e. "/redfish/v1/Managers/bmc"
The current version of bmcweb requires the Targets parameter
Add default Target to MultipartHttpPush
When no targets are provided, webui will now default to the BMC: i.e. "/redfish/v1/Managers/bmc"
The current version of bmcweb requires the Targets parameter. bmcweb will be updated for multipart to match the behavior of simpleupdate: if Targets is empty or missing, default to the BMC.
Also, the fwupdate page will be updated soon to allow the selection of Targets from the FirmwareInventory list.
This should be a temp webui fix until we are comfortable with the upcoming changes to bmcweb.
Change-Id: I630dcb40068b98aad8e1d276d17fe9af4793e788 Signed-off-by: jason westover <jwestover@nvidia.com>
show more ...
|
e2c716a9 | 28-Jul-2024 |
Leo Xu <yongquanx@nvidia.com> |
Add support for MultipartHttpPushUri in fw push
According to the Redfish Firmware Update Whitepaper [1] due to the vendor-specific details of this operation, HttpPushUri has been deprecated in f
Add support for MultipartHttpPushUri in fw push
According to the Redfish Firmware Update Whitepaper [1] due to the vendor-specific details of this operation, HttpPushUri has been deprecated in favor of multipartHTTP push updates.
Availability of update methods is determined from the UpdateService response.
If MultipartHttpPushUri is found it will be preferred over HttpPushUri
Tested: -Firmware update by performed via MultipartHttpPushUri
[1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP2062_1.0.1.pdf
Change-Id: I184a889514d5f9f9598f35b2281404335bc0bc82 Signed-off-by: Leo Xu <yongquanx@nvidia.com>
show more ...
|
db2940a8 | 25-Jul-2024 |
Farah Rasheed <Farah.Rasheed1@dell.com> |
Add status state info to inventory tables
Add status state information to the inventory tables for fans and power supplies.
Also updates sortCompare to be able to sort by the state.
Change-Id: Ic8
Add status state info to inventory tables
Add status state information to the inventory tables for fans and power supplies.
Also updates sortCompare to be able to sort by the state.
Change-Id: Ic830dd0867daee0bf6052a5d1cff5592b98fc009 Signed-off-by: Farah Rasheed <Farah.Rasheed1@dell.com>
show more ...
|
09a3b9e0 | 03-Jul-2024 |
Paul Fertser <fercerpav@gmail.com> |
Use auth token when not communicating with bmcweb
Redfish backends other than OpenBMC bmcweb expect clients to authenticate using X-Auth-Token HTTP header as that's the only standard authentication
Use auth token when not communicating with bmcweb
Redfish backends other than OpenBMC bmcweb expect clients to authenticate using X-Auth-Token HTTP header as that's the only standard authentication method for Redfish sessions.
This code falls back to using the token in case Session creation didn't result in obtaining an XSRF cookie (as should normally happen with bmcweb).
Limitations: all WebSocket-based functionality can not work (JS-based NBD Virtual Media, IP KVM, SOL), page reload drops the session and requires to log in again.
Tested: logging in, observing Overview and successfully logging out of an AMI MegaRAC BMC. Logging in and navigating around a bmcweb-running system which doesn't have the code to provide cookies for Session POST request (everything works as usual sans WS-based features).
Change-Id: I81dc881193440d8d252dcd283b99915bd08c0c5e Signed-off-by: Paul Fertser <fercerpav@gmail.com>
show more ...
|
b2acbcaa | 08-Jul-2024 |
Farah Rasheed <Farah.Rasheed1@dell.com> |
Add a confirmation modal for disabling users
Add a confirmation modal in the user management table when users are disabled.
Change-Id: I06bb1c96abdc7fa895aec2fe2025e9039577ae1d Signed-off-by: Farah
Add a confirmation modal for disabling users
Add a confirmation modal in the user management table when users are disabled.
Change-Id: I06bb1c96abdc7fa895aec2fe2025e9039577ae1d Signed-off-by: Farah Rasheed <Farah.Rasheed1@dell.com>
show more ...
|
6de03414 | 05-Jul-2024 |
Paul Fertser <fercerpav@gmail.com> |
Handle expired passwords Redfish standard way
A password can expire at any moment during session lifetime and bmcweb starts returning 403 Forbidden errors to the requests made after that. The respon
Handle expired passwords Redfish standard way
A password can expire at any moment during session lifetime and bmcweb starts returning 403 Forbidden errors to the requests made after that. The response contains clear indication of the condition in the standard `@Message.ExtendedInfo` attribute which is an array of Message objects.
Previously the code was trying to detect this condition by querying AccountService after logging in but this approach doesn't work when password expires mid-session. Also it was limited to BMC-managed accounts and used hardcoded account URIs in violation of Redfish spec.
This patch adds to the interceptor of 403 error so that the user is automatically redirected to the password change page as soon as the condition is detected.
The same message is also present in the session creation POST response 201 if the password expired before the log in attempt, in this case the session is created as usual but the user is automatically redirected to password change page before any further requests are made.
Tested: logging in, navigating, logging out with non-expired password. Logging in, navigating, then running `passwd -e <accountname>` via ssh leads to functional password change page on the next request and then navigating proceeds normally, and logging out too. If password is expired before logging in the user gets redirected to the password change page automatically after logging in.
Fixes: https://github.com/openbmc/webui-vue/issues/118 Change-Id: I03f5ee2526a4bb1d35d3bbea1142fea077d6bfed Signed-off-by: Paul Fertser <fercerpav@gmail.com>
show more ...
|