Browse Source

Merge pull request #9337 from abpframework/feat/v7095

Pass tenantId to reset password
pull/9371/head
Mehmet Erim 5 years ago
committed by GitHub
parent
commit
d30a870b19
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      npm/ng-packs/apps/dev-app/src/environments/environment.ts
  2. 1
      npm/ng-packs/packages/account/src/lib/account-routing.module.ts
  3. 2
      npm/ng-packs/packages/account/src/lib/components/auth-wrapper/auth-wrapper.component.html
  4. 20
      npm/ng-packs/packages/account/src/lib/components/auth-wrapper/auth-wrapper.component.ts
  5. 5
      npm/ng-packs/packages/account/src/lib/components/reset-password/reset-password.component.ts
  6. 2
      npm/ng-packs/packages/account/src/lib/proxy/account/index.ts
  7. 4
      npm/ng-packs/packages/account/src/lib/proxy/account/models.ts
  8. 35
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/account.service.ts
  9. 3
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/index.ts
  10. 2
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/models/index.ts
  11. 11
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/models/login-result-type.enum.ts
  12. 12
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/models/models.ts
  13. 2
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/index.ts
  14. 2
      npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/index.ts
  15. 2
      npm/ng-packs/packages/account/src/lib/proxy/account/web/index.ts
  16. 1170
      npm/ng-packs/packages/account/src/lib/proxy/generate-proxy.json

3
npm/ng-packs/apps/dev-app/src/environments/environment.ts

@ -23,6 +23,9 @@ export const environment = {
url: 'https://localhost:44305',
rootNamespace: 'MyCompanyName.MyProjectName',
},
AbpAccount: {
rootNamespace: 'Volo.Abp',
},
AbpFeatureManagement: {
rootNamespace: 'Volo.Abp',
},

1
npm/ng-packs/packages/account/src/lib/account-routing.module.ts

@ -69,6 +69,7 @@ const routes: Routes = [
component: ReplaceableRouteContainerComponent,
canActivate: [AuthenticationFlowGuard],
data: {
tenantBoxVisible: false,
replaceableComponent: {
key: eAccountComponents.ResetPassword,
defaultComponent: ResetPasswordComponent,

2
npm/ng-packs/packages/account/src/lib/components/auth-wrapper/auth-wrapper.component.html

@ -1,6 +1,6 @@
<div class="row">
<div class="mx-auto col col-md-5">
<ng-container *ngIf="(isMultiTenancyEnabled$ | async) && multiTenancy.isTenantBoxVisible">
<ng-container *ngIf="(isMultiTenancyEnabled$ | async) && isTenantBoxVisible">
<abp-tenant-box *abpReplaceableTemplate="{ componentKey: tenantBoxKey }"></abp-tenant-box>
</ng-container>

20
npm/ng-packs/packages/account/src/lib/components/auth-wrapper/auth-wrapper.component.ts

@ -1,8 +1,9 @@
import { ConfigStateService, MultiTenancyService, SubscriptionService } from '@abp/ng.core';
import { Component } from '@angular/core';
import { Component, Injector } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { eAccountComponents } from '../../enums/components';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'abp-auth-wrapper',
@ -20,9 +21,24 @@ export class AuthWrapperComponent {
}
tenantBoxKey = eAccountComponents.TenantBox;
route: ActivatedRoute;
private _tenantBoxVisible = true;
private setTenantBoxVisibility = () => {
this._tenantBoxVisible = this.route.snapshot.firstChild.data.tenantBoxVisible ?? true;
};
get isTenantBoxVisible() {
return this._tenantBoxVisible && this.multiTenancy.isTenantBoxVisible;
}
constructor(
public readonly multiTenancy: MultiTenancyService,
private configState: ConfigStateService,
) {}
injector: Injector,
) {
this.route = injector.get(ActivatedRoute);
this.setTenantBoxVisibility();
}
}

5
npm/ng-packs/packages/account/src/lib/components/reset-password/reset-password.component.ts

@ -18,6 +18,7 @@ export class ResetPasswordComponent implements OnInit {
inProgress = false;
isPasswordReset = false;
tenantId = '';
mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {
if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;
@ -34,7 +35,8 @@ export class ResetPasswordComponent implements OnInit {
) {}
ngOnInit(): void {
this.route.queryParams.subscribe(({ userId, resetToken }) => {
this.route.queryParams.subscribe(({ userId, resetToken, tenantId }) => {
this.tenantId = tenantId;
if (!userId || !resetToken) this.router.navigateByUrl('/account/login');
this.form = this.fb.group(
@ -61,6 +63,7 @@ export class ResetPasswordComponent implements OnInit {
userId: this.form.get('userId').value,
resetToken: this.form.get('resetToken').value,
password: this.form.get('password').value,
tenantId: this.tenantId || undefined, // if this.tenantId is empty, we should not send it at all
})
.pipe(finalize(() => (this.inProgress = false)))
.subscribe(() => {

2
npm/ng-packs/packages/account/src/lib/proxy/account/index.ts

@ -1,2 +1,4 @@
import * as Web from './web';
export * from './account.service';
export * from './models';
export { Web };

4
npm/ng-packs/packages/account/src/lib/proxy/account/models.ts

@ -1,5 +1,6 @@
import type { ExtensibleObject } from '@abp/ng.core';
export interface RegisterDto {
export interface RegisterDto extends ExtensibleObject {
userName: string;
emailAddress: string;
password: string;
@ -8,6 +9,7 @@ export interface RegisterDto {
export interface ResetPasswordDto {
userId?: string;
tenantId?: string;
resetToken: string;
password: string;
}

35
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/account.service.ts

@ -0,0 +1,35 @@
import type { AbpLoginResult, UserLoginInfo } from './models/models';
import { RestService } from '@abp/ng.core';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class AccountService {
apiName = 'AbpAccount';
checkPasswordByLogin = (login: UserLoginInfo) =>
this.restService.request<any, AbpLoginResult>({
method: 'POST',
url: '/api/account/check-password',
body: login,
},
{ apiName: this.apiName });
loginByLogin = (login: UserLoginInfo) =>
this.restService.request<any, AbpLoginResult>({
method: 'POST',
url: '/api/account/login',
body: login,
},
{ apiName: this.apiName });
logout = () =>
this.restService.request<any, void>({
method: 'GET',
url: '/api/account/logout',
},
{ apiName: this.apiName });
constructor(private restService: RestService) {}
}

3
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/index.ts

@ -0,0 +1,3 @@
import * as Models from './models';
export * from './account.service';
export { Models };

2
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/models/index.ts

@ -0,0 +1,2 @@
export * from './login-result-type.enum';
export * from './models';

11
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/models/login-result-type.enum.ts

@ -0,0 +1,11 @@
import { mapEnumToOptions } from '@abp/ng.core';
export enum LoginResultType {
Success = 1,
InvalidUserNameOrPassword = 2,
NotAllowed = 3,
LockedOut = 4,
RequiresTwoFactor = 5,
}
export const loginResultTypeOptions = mapEnumToOptions(LoginResultType);

12
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/controllers/models/models.ts

@ -0,0 +1,12 @@
import type { LoginResultType } from './login-result-type.enum';
export interface AbpLoginResult {
result: LoginResultType;
description?: string;
}
export interface UserLoginInfo {
userNameOrEmailAddress: string;
password: string;
rememberMe: boolean;
}

2
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/account/index.ts

@ -0,0 +1,2 @@
import * as Controllers from './controllers';
export { Controllers };

2
npm/ng-packs/packages/account/src/lib/proxy/account/web/areas/index.ts

@ -0,0 +1,2 @@
import * as Account from './account';
export { Account };

2
npm/ng-packs/packages/account/src/lib/proxy/account/web/index.ts

@ -0,0 +1,2 @@
import * as Areas from './areas';
export { Areas };

1170
npm/ng-packs/packages/account/src/lib/proxy/generate-proxy.json

File diff suppressed because it is too large
Loading…
Cancel
Save