Skip to content

umich initial release 7.6.0.0 - blancoj - #96

Merged
gkostin1966 merged 207 commits into
mainfrom
umich
Aug 27, 2026
Merged

umich initial release 7.6.0.0 - blancoj#96
gkostin1966 merged 207 commits into
mainfrom
umich

Conversation

@gkostin1966

@gkostin1966 gkostin1966 commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

umich initial release 7.6.0.0 - blancoj

blancoj added 30 commits August 16, 2023 10:52
change to short display, no thumbnail on sub form and discovery labels.
some changes to improve the look of the UI
config and request copy changes.
serverLocation for stats config change and Schema.org
improved file listing in search and other changes
altmetrics size, upload box moved, Privacy statement removed
formatting and deposit page changes
blancoj and others added 28 commits December 8, 2025 16:20
return 404 instead of 302 in error cases
Adds a boolean config flag `auth.showPasswordLogin` that controls which login
method type is shown in the DSpace Angular login UI. The flag is an exclusive
toggle — exactly one type renders at a time, never both, never none.

  false (default): OIDC button shown, password form hidden
                   -> production and workshop are unchanged
  true:            password form shown, OIDC button hidden
                   -> for environments where DSpace OIDC is disabled (demo)

Background
----------
The demo environment uses oauth2-proxy at the gate for U-M WebLogin, and
DSpace's internal OIDC is intentionally disabled so testers can switch
personas via shared EPerson accounts. The existing UM customisation
(*ngIf="authMethod.authMethodType !== 'password'") removed the password form
entirely, leaving a blank login page once DSpace OIDC was disabled.

Changes
-------
src/config/auth-config.interfaces.ts
  Add showPasswordLogin?: boolean to AuthConfig interface.

src/config/default-app-config.ts
  Default showPasswordLogin: false in the auth block.

src/app/shared/log-in/log-in.component.ts
  Inject APP_CONFIG; read flag into public showPasswordLogin property.

src/app/shared/log-in/log-in.component.html
  Replace hard-coded *ngIf="... !== 'password'" with exclusive toggle:
    *ngIf="showPasswordLogin === (authMethod.authMethodType === 'password')"

src/app/shared/log-in/log-in.component.spec.ts
  Provide APP_CONFIG token; update assertion toBe(2) -> toBe(1)
  (only non-password method renders with default showPasswordLogin: false).

config/config.example.yml
  Add commented-out showPasswordLogin entry for operator reference.

Configuration
-------------
Enable for demo via Kubernetes frontend ConfigMap env-var:
  DSPACE_AUTH_SHOWPASSWORDLOGIN=true

The DSpace Angular config system will convert the string 'true' to a proper
boolean via getBooleanFromString (confirmed). Production and workshop must NOT
set this variable — omitting it leaves the default false.

Testing
-------
Unit tests: 2 specs pass (log-in.component.spec.ts).
See PLAN_DSPACE_ANGULAR_PASSWORD_LOGIN.md for full rationale, config flow
deep-dive, on-host debugging commands, and demo verification steps.
…lation

- environment.test.ts: add missing 'serverLocation' property required by BuildConfig
- item-withdraw/item-reinstate spec: pass required 'reason' arg to setWithDrawn assertion
- bitstream-format specs (6 files): rename stale enum values to current names
    Unknown   -> AS_IS_UNKNOWN
    Known     -> AS_IS_KNOWN
    Supported -> HIGHEST_LEVEL

These errors existed in the umich base branch before this branch was cut.
None are related to the showPasswordLogin feature change.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
item-withdraw.component.spec.ts:
  Change 'as HTMLElement' to 'as unknown as HTMLInputElement' to fix TS2352
  type error introduced by the reviewing agent (insufficient type overlap).
log-in.component.spec.ts:
  Replace TestBed.overrideProvider() inside an it() block (which throws
  'Cannot override provider when test module is already instantiated') with
  the correct approach: set component.showPasswordLogin = true directly on
  the component instance and call detectChanges().
  Also drop unreliable componentInstance.authMethod assertions on custom
  elements rendered via CUSTOM_ELEMENTS_SCHEMA.
All 3 log-in specs now pass.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…nt ID

- Assert document.getElementById was called with 'withdrawReason' (the exact
  ID the component uses) rather than just trusting the spy ran.
- Assert setWithDrawn receives the exact string 'test-withdraw-reason' rather
  than jasmine.any(String), which would pass even with the wrong value.
…er directive, remove broken duplicate it block (DEEPBLUE-466)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…operty mutation instead

TestBed.overrideProvider() throws 'Cannot override provider when test module has
already been instantiated' when called inside an it() block, even after
fixture.destroy(). Destroying the fixture does not reset the TestBed module state.
The working approach is to set component.showPasswordLogin = true directly on the
component instance after the module is instantiated, then call detectChanges().
This correctly re-renders the template with the new value.
…. Previous versions were terms of deposit for depositors and users weren't mentioned
…ject root)

AGENTS.md, TODO.md, DONE.md, PLAN_DSPACE_ANGULAR_PASSWORD_LOGIN.md, and
PULL_REQUEST.md are agent-framework metadata files that belong in the
agents framework repository (.agents/ symlink), not in the project repo.

Migrated to:
  .agents/AGENT_TODO.md
  .agents/AGENT_DONE.md
  .agents/PLAN_DSPACE_ANGULAR_PASSWORD_LOGIN.md
  .agents/DEEPBLUE-466-PR.md
  .agents/DEEPBLUE-466-AGENTS.md  (archived feature-specific context)

.agents/ is a symlink to the external agents framework and is gitignored.
The project root is now free of agent-specific tracking files.
@gkostin1966
gkostin1966 merged commit 21251cd into main Aug 27, 2026
4 of 8 checks passed
public getHandle(values: String[]): String {
for(var index in values)
{
if (values[index].includes("https://hdl.handle.net/") ){
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants