You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js

1376 lines
48 KiB

import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core';
import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core';
import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store';
import { __decorate, __metadata } from 'tslib';
import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared';
import { FormControl, Validators, FormBuilder } from '@angular/forms';
import { Observable } from 'rxjs';
import { tap, switchMap, pluck, finalize, take } from 'rxjs/operators';
import { RouterModule } from '@angular/router';
import snq from 'snq';
import { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
import { PermissionManagementModule } from '@abp/ng.permission-management';
import { TableModule } from 'primeng/table';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class GetRoles {
/**
* @param {?=} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetRoles.type = '[Identity] Get Roles';
if (false) {
/** @type {?} */
GetRoles.type;
/** @type {?} */
GetRoles.prototype.payload;
}
class GetRoleById {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetRoleById.type = '[Identity] Get Role By Id';
if (false) {
/** @type {?} */
GetRoleById.type;
/** @type {?} */
GetRoleById.prototype.payload;
}
class DeleteRole {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
DeleteRole.type = '[Identity] Delete Role';
if (false) {
/** @type {?} */
DeleteRole.type;
/** @type {?} */
DeleteRole.prototype.payload;
}
class CreateRole {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
CreateRole.type = '[Identity] Create Role';
if (false) {
/** @type {?} */
CreateRole.type;
/** @type {?} */
CreateRole.prototype.payload;
}
class UpdateRole {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
UpdateRole.type = '[Identity] Update Role';
if (false) {
/** @type {?} */
UpdateRole.type;
/** @type {?} */
UpdateRole.prototype.payload;
}
class GetUsers {
/**
* @param {?=} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetUsers.type = '[Identity] Get Users';
if (false) {
/** @type {?} */
GetUsers.type;
/** @type {?} */
GetUsers.prototype.payload;
}
class GetUserById {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetUserById.type = '[Identity] Get User By Id';
if (false) {
/** @type {?} */
GetUserById.type;
/** @type {?} */
GetUserById.prototype.payload;
}
class DeleteUser {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
DeleteUser.type = '[Identity] Delete User';
if (false) {
/** @type {?} */
DeleteUser.type;
/** @type {?} */
DeleteUser.prototype.payload;
}
class CreateUser {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
CreateUser.type = '[Identity] Create User';
if (false) {
/** @type {?} */
CreateUser.type;
/** @type {?} */
CreateUser.prototype.payload;
}
class UpdateUser {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
UpdateUser.type = '[Identity] Update User';
if (false) {
/** @type {?} */
UpdateUser.type;
/** @type {?} */
UpdateUser.prototype.payload;
}
class GetUserRoles {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetUserRoles.type = '[Identity] Get User Roles';
if (false) {
/** @type {?} */
GetUserRoles.type;
/** @type {?} */
GetUserRoles.prototype.payload;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class IdentityService {
/**
* @param {?} rest
*/
constructor(rest) {
this.rest = rest;
}
/**
* @param {?=} params
* @return {?}
*/
getRoles(params = (/** @type {?} */ ({}))) {
/** @type {?} */
const request = {
method: 'GET',
url: '/api/identity/roles',
params,
};
return this.rest.request(request);
}
/**
* @param {?} id
* @return {?}
*/
getRoleById(id) {
/** @type {?} */
const request = {
method: 'GET',
url: `/api/identity/roles/${id}`,
};
return this.rest.request(request);
}
/**
* @param {?} id
* @return {?}
*/
deleteRole(id) {
/** @type {?} */
const request = {
method: 'DELETE',
url: `/api/identity/roles/${id}`,
};
return this.rest.request(request);
}
/**
* @param {?} body
* @return {?}
*/
createRole(body) {
/** @type {?} */
const request = {
method: 'POST',
url: '/api/identity/roles',
body,
};
return this.rest.request(request);
}
/**
* @param {?} body
* @return {?}
*/
updateRole(body) {
/** @type {?} */
const url = `/api/identity/roles/${body.id}`;
delete body.id;
/** @type {?} */
const request = {
method: 'PUT',
url,
body,
};
return this.rest.request(request);
}
/**
* @param {?=} params
* @return {?}
*/
getUsers(params = (/** @type {?} */ ({}))) {
/** @type {?} */
const request = {
method: 'GET',
url: '/api/identity/users',
params,
};
return this.rest.request(request);
}
/**
* @param {?} id
* @return {?}
*/
getUserById(id) {
/** @type {?} */
const request = {
method: 'GET',
url: `/api/identity/users/${id}`,
};
return this.rest.request(request);
}
/**
* @param {?} id
* @return {?}
*/
getUserRoles(id) {
/** @type {?} */
const request = {
method: 'GET',
url: `/api/identity/users/${id}/roles`,
};
return this.rest.request(request);
}
/**
* @param {?} id
* @return {?}
*/
deleteUser(id) {
/** @type {?} */
const request = {
method: 'DELETE',
url: `/api/identity/users/${id}`,
};
return this.rest.request(request);
}
/**
* @param {?} body
* @return {?}
*/
createUser(body) {
/** @type {?} */
const request = {
method: 'POST',
url: '/api/identity/users',
body,
};
return this.rest.request(request);
}
/**
* @param {?} body
* @return {?}
*/
updateUser(body) {
/** @type {?} */
const url = `/api/identity/users/${body.id}`;
delete body.id;
/** @type {?} */
const request = {
method: 'PUT',
url,
body,
};
return this.rest.request(request);
}
}
IdentityService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
IdentityService.ctorParameters = () => [
{ type: RestService }
];
/** @nocollapse */ IdentityService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IdentityService_Factory() { return new IdentityService(ɵɵinject(RestService)); }, token: IdentityService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
IdentityService.prototype.rest;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
let IdentityState = class IdentityState {
/**
* @param {?} identityService
*/
constructor(identityService) {
this.identityService = identityService;
}
/**
* @param {?} __0
* @return {?}
*/
static getRoles({ roles }) {
return roles.items;
}
/**
* @param {?} __0
* @return {?}
*/
static getRolesTotalCount({ roles }) {
return roles.totalCount;
}
/**
* @param {?} __0
* @return {?}
*/
static getUsers({ users }) {
return users.items;
}
/**
* @param {?} __0
* @return {?}
*/
static getUsersTotalCount({ users }) {
return users.totalCount;
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getRoles({ patchState }, { payload }) {
return this.identityService.getRoles(payload).pipe(tap((/**
* @param {?} roles
* @return {?}
*/
roles => patchState({
roles,
}))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getRole({ patchState }, { payload }) {
return this.identityService.getRoleById(payload).pipe(tap((/**
* @param {?} selectedRole
* @return {?}
*/
selectedRole => patchState({
selectedRole,
}))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
deleteRole({ dispatch }, { payload }) {
return this.identityService.deleteRole(payload).pipe(switchMap((/**
* @return {?}
*/
() => dispatch(new GetRoles()))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
addRole({ dispatch }, { payload }) {
return this.identityService.createRole(payload).pipe(switchMap((/**
* @return {?}
*/
() => dispatch(new GetRoles()))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
updateRole({ getState, dispatch }, { payload }) {
return dispatch(new GetRoleById(payload.id)).pipe(switchMap((/**
* @return {?}
*/
() => this.identityService.updateRole(Object.assign({}, getState().selectedRole, payload)))), switchMap((/**
* @return {?}
*/
() => dispatch(new GetRoles()))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getUsers({ patchState }, { payload }) {
return this.identityService.getUsers(payload).pipe(tap((/**
* @param {?} users
* @return {?}
*/
users => patchState({
users,
}))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getUser({ patchState }, { payload }) {
return this.identityService.getUserById(payload).pipe(tap((/**
* @param {?} selectedUser
* @return {?}
*/
selectedUser => patchState({
selectedUser,
}))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
deleteUser({ dispatch }, { payload }) {
return this.identityService.deleteUser(payload).pipe(switchMap((/**
* @return {?}
*/
() => dispatch(new GetUsers()))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
addUser({ dispatch }, { payload }) {
return this.identityService.createUser(payload).pipe(switchMap((/**
* @return {?}
*/
() => dispatch(new GetUsers()))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
updateUser({ getState, dispatch }, { payload }) {
return dispatch(new GetUserById(payload.id)).pipe(switchMap((/**
* @return {?}
*/
() => this.identityService.updateUser(Object.assign({}, getState().selectedUser, payload)))), switchMap((/**
* @return {?}
*/
() => dispatch(new GetUsers()))));
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getUserRoles({ patchState }, { payload }) {
return this.identityService.getUserRoles(payload).pipe(pluck('items'), tap((/**
* @param {?} selectedUserRoles
* @return {?}
*/
selectedUserRoles => patchState({
selectedUserRoles,
}))));
}
};
__decorate([
Action(GetRoles),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetRoles]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "getRoles", null);
__decorate([
Action(GetRoleById),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetRoleById]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "getRole", null);
__decorate([
Action(DeleteRole),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetRoleById]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "deleteRole", null);
__decorate([
Action(CreateRole),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, CreateRole]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "addRole", null);
__decorate([
Action(UpdateRole),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UpdateRole]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "updateRole", null);
__decorate([
Action(GetUsers),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetUsers]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "getUsers", null);
__decorate([
Action(GetUserById),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetUserById]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "getUser", null);
__decorate([
Action(DeleteUser),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetUserById]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "deleteUser", null);
__decorate([
Action(CreateUser),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, CreateUser]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "addUser", null);
__decorate([
Action(UpdateUser),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UpdateUser]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "updateUser", null);
__decorate([
Action(GetUserRoles),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetUserRoles]),
__metadata("design:returntype", void 0)
], IdentityState.prototype, "getUserRoles", null);
__decorate([
Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Array)
], IdentityState, "getRoles", null);
__decorate([
Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Number)
], IdentityState, "getRolesTotalCount", null);
__decorate([
Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Array)
], IdentityState, "getUsers", null);
__decorate([
Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Number)
], IdentityState, "getUsersTotalCount", null);
IdentityState = __decorate([
State({
name: 'IdentityState',
defaults: (/** @type {?} */ ({ roles: {}, selectedRole: {}, users: {}, selectedUser: {} })),
}),
__metadata("design:paramtypes", [IdentityService])
], IdentityState);
if (false) {
/**
* @type {?}
* @private
*/
IdentityState.prototype.identityService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class RolesComponent {
/**
* @param {?} confirmationService
* @param {?} fb
* @param {?} store
*/
constructor(confirmationService, fb, store) {
this.confirmationService = confirmationService;
this.fb = fb;
this.store = store;
this.visiblePermissions = false;
this.pageQuery = {
sorting: 'name',
};
this.loading = false;
this.modalBusy = false;
}
/**
* @param {?} value
* @return {?}
*/
onSearch(value) {
this.pageQuery.filter = value;
this.get();
}
/**
* @return {?}
*/
createForm() {
this.form = this.fb.group({
name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [
Validators.required,
Validators.maxLength(256),
]),
isDefault: [this.selected.isDefault || false],
isPublic: [this.selected.isPublic || false],
});
}
/**
* @return {?}
*/
openModal() {
this.createForm();
this.isModalVisible = true;
}
/**
* @return {?}
*/
onAdd() {
this.selected = (/** @type {?} */ ({}));
this.openModal();
}
/**
* @param {?} id
* @return {?}
*/
onEdit(id) {
this.store
.dispatch(new GetRoleById(id))
.pipe(pluck('IdentityState', 'selectedRole'))
.subscribe((/**
* @param {?} selectedRole
* @return {?}
*/
selectedRole => {
this.selected = selectedRole;
this.openModal();
}));
}
/**
* @return {?}
*/
save() {
if (!this.form.valid)
return;
this.modalBusy = true;
this.store
.dispatch(this.selected.id
? new UpdateRole(Object.assign({}, this.form.value, { id: this.selected.id }))
: new CreateRole(this.form.value))
.subscribe((/**
* @return {?}
*/
() => {
this.modalBusy = false;
this.isModalVisible = false;
}));
}
/**
* @param {?} id
* @param {?} name
* @return {?}
*/
delete(id, name) {
this.confirmationService
.warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {
messageLocalizationParams: [name],
})
.subscribe((/**
* @param {?} status
* @return {?}
*/
(status) => {
if (status === "confirm" /* confirm */) {
this.store.dispatch(new DeleteRole(id));
}
}));
}
/**
* @param {?} data
* @return {?}
*/
onPageChange(data) {
this.pageQuery.skipCount = data.first;
this.pageQuery.maxResultCount = data.rows;
this.get();
}
/**
* @return {?}
*/
get() {
this.loading = true;
this.store
.dispatch(new GetRoles(this.pageQuery))
.pipe(finalize((/**
* @return {?}
*/
() => (this.loading = false))))
.subscribe();
}
}
RolesComponent.decorators = [
{ type: Component, args: [{
selector: 'abp-roles',
template: "<div id=\"identity-roles-wrapper\" class=\"card\">\n <div class=\"card-header\">\n <div class=\"row\">\n <div class=\"col col-md-6\">\n <h5 class=\"card-title\">{{ 'AbpIdentity::Roles' | abpLocalization }}</h5>\n </div>\n <div class=\"text-right col col-md-6\">\n <button id=\"create-role\" class=\"btn btn-primary\" type=\"button\" (click)=\"onAdd()\">\n <i class=\"fa fa-plus mr-1\"></i> <span>{{ 'AbpIdentity::NewRole' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body\">\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\n <label\n ><input\n type=\"search\"\n class=\"form-control form-control-sm\"\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\n (input.debounce)=\"onSearch($event.target.value)\"\n /></label>\n </div>\n <p-table\n [value]=\"data$ | async\"\n [lazy]=\"true\"\n [lazyLoadOnInit]=\"false\"\n [paginator]=\"true\"\n [rows]=\"10\"\n [totalRecords]=\"totalCount$ | async\"\n [loading]=\"loading\"\n (onLazyLoad)=\"onPageChange($event)\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{ 'AbpIdentity::Actions' | abpLocalization }}</th>\n <th>{{ 'AbpIdentity::RoleName' | abpLocalization }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>\n <div ngbDropdown class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i class=\"fa fa-cog mr-1\"></i>{{ 'AbpIdentity::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"onEdit(data.id)\">{{ 'AbpIdentity::Edit' | abpLocalization }}</button>\n <button ngbDropdownItem (click)=\"providerKey = data.name; visiblePermissions = true\">\n {{ 'AbpIdentity::Permissions' | abpLocalization }}\n </button>\n <button ngbDropdownItem (click)=\"delete(data.id, data.name)\">\n {{ 'AbpIdentity::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </td>\n <td>{{ data.name }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n</div>\n\n<abp-modal size=\"md\" [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\n <ng-template #abpHeader>\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"form-group\">\n <label for=\"role-name\">{{ 'AbpIdentity::RoleName' | abpLocalization }}</label\n ><span> * </span>\n <input autofocus type=\"text\" id=\"role-name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"custom-checkbox custom-control mb-2\">\n <input type=\"checkbox\" id=\"role-is-default\" class=\"custom-control-input\" formControlName=\"isDefault\" />\n <label class=\"custom-control-label\" for=\"role-is-default\">{{\n 'AbpIdentity::DisplayName:IsDefault' | abpLocalization\n }}</label>\n </div>\n\n <div class=\"custom-checkbox custom-control mb-2\">\n <input type=\"checkbox\" id=\"role-is-public\" class=\"custom-control-input\" formControlName=\"isPublic\" />\n <label class=\"custom-control-label\" for=\"role-is-public\">{{\n 'AbpIdentity::DisplayName:IsPublic' | abpLocalization\n }}</label>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" #abpClose>\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\">{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-permission-management\n [(visible)]=\"visiblePermissions\"\n providerName=\"Role\"\n [providerKey]=\"providerKey\"\n></abp-permission-management>\n"
}] }
];
/** @nocollapse */
RolesComponent.ctorParameters = () => [
{ type: ConfirmationService },
{ type: FormBuilder },
{ type: Store }
];
RolesComponent.propDecorators = {
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }]
};
__decorate([
Select(IdentityState.getRoles),
__metadata("design:type", Observable)
], RolesComponent.prototype, "data$", void 0);
__decorate([
Select(IdentityState.getRolesTotalCount),
__metadata("design:type", Observable)
], RolesComponent.prototype, "totalCount$", void 0);
if (false) {
/** @type {?} */
RolesComponent.prototype.data$;
/** @type {?} */
RolesComponent.prototype.totalCount$;
/** @type {?} */
RolesComponent.prototype.form;
/** @type {?} */
RolesComponent.prototype.selected;
/** @type {?} */
RolesComponent.prototype.isModalVisible;
/** @type {?} */
RolesComponent.prototype.visiblePermissions;
/** @type {?} */
RolesComponent.prototype.providerKey;
/** @type {?} */
RolesComponent.prototype.pageQuery;
/** @type {?} */
RolesComponent.prototype.loading;
/** @type {?} */
RolesComponent.prototype.modalBusy;
/** @type {?} */
RolesComponent.prototype.modalContent;
/**
* @type {?}
* @private
*/
RolesComponent.prototype.confirmationService;
/**
* @type {?}
* @private
*/
RolesComponent.prototype.fb;
/**
* @type {?}
* @private
*/
RolesComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class RoleResolver {
/**
* @param {?} store
*/
constructor(store) {
this.store = store;
}
/**
* @return {?}
*/
resolve() {
/** @type {?} */
const roles = this.store.selectSnapshot(IdentityState.getRoles);
return roles && roles.length ? null : this.store.dispatch(new GetRoles());
}
}
RoleResolver.decorators = [
{ type: Injectable }
];
/** @nocollapse */
RoleResolver.ctorParameters = () => [
{ type: Store }
];
if (false) {
/**
* @type {?}
* @private
*/
RoleResolver.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class UsersComponent {
/**
* @param {?} confirmationService
* @param {?} fb
* @param {?} store
*/
constructor(confirmationService, fb, store) {
this.confirmationService = confirmationService;
this.fb = fb;
this.store = store;
this.visiblePermissions = false;
this.pageQuery = {
sorting: 'userName',
};
this.loading = false;
this.modalBusy = false;
this.trackByFn = (/**
* @param {?} index
* @param {?} item
* @return {?}
*/
(index, item) => Object.keys(item)[0] || index);
}
/**
* @return {?}
*/
get roleGroups() {
return snq((/**
* @return {?}
*/
() => (/** @type {?} */ (((/** @type {?} */ (this.form.get('roleNames')))).controls))), []);
}
/**
* @param {?} value
* @return {?}
*/
onSearch(value) {
this.pageQuery.filter = value;
this.get();
}
/**
* @return {?}
*/
buildForm() {
this.roles = this.store.selectSnapshot(IdentityState.getRoles);
this.form = this.fb.group({
userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],
email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],
name: [this.selected.name || '', [Validators.maxLength(64)]],
surname: [this.selected.surname || '', [Validators.maxLength(64)]],
phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],
lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],
twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],
roleNames: this.fb.array(this.roles.map((/**
* @param {?} role
* @return {?}
*/
role => this.fb.group({
[role.name]: [!!snq((/**
* @return {?}
*/
() => this.selectedUserRoles.find((/**
* @param {?} userRole
* @return {?}
*/
userRole => userRole.id === role.id))))],
})))),
});
if (!this.selected.userName) {
this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));
}
}
/**
* @return {?}
*/
openModal() {
this.buildForm();
this.isModalVisible = true;
}
/**
* @return {?}
*/
onAdd() {
this.selected = (/** @type {?} */ ({}));
this.selectedUserRoles = (/** @type {?} */ ([]));
this.openModal();
}
/**
* @param {?} id
* @return {?}
*/
onEdit(id) {
this.store
.dispatch(new GetUserById(id))
.pipe(switchMap((/**
* @return {?}
*/
() => this.store.dispatch(new GetUserRoles(id)))), pluck('IdentityState'), take(1))
.subscribe((/**
* @param {?} state
* @return {?}
*/
(state) => {
this.selected = state.selectedUser;
this.selectedUserRoles = state.selectedUserRoles;
this.openModal();
}));
}
/**
* @return {?}
*/
save() {
if (!this.form.valid)
return;
this.modalBusy = true;
const { roleNames } = this.form.value;
/** @type {?} */
const mappedRoleNames = snq((/**
* @return {?}
*/
() => roleNames.filter((/**
* @param {?} role
* @return {?}
*/
role => !!role[Object.keys(role)[0]])).map((/**
* @param {?} role
* @return {?}
*/
role => Object.keys(role)[0]))), []);
this.store
.dispatch(this.selected.id
? new UpdateUser(Object.assign({}, this.form.value, { id: this.selected.id, roleNames: mappedRoleNames }))
: new CreateUser(Object.assign({}, this.form.value, { roleNames: mappedRoleNames })))
.subscribe((/**
* @return {?}
*/
() => {
this.modalBusy = false;
this.isModalVisible = false;
}));
}
/**
* @param {?} id
* @param {?} userName
* @return {?}
*/
delete(id, userName) {
this.confirmationService
.warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {
messageLocalizationParams: [userName],
})
.subscribe((/**
* @param {?} status
* @return {?}
*/
(status) => {
if (status === "confirm" /* confirm */) {
this.store.dispatch(new DeleteUser(id));
}
}));
}
/**
* @param {?} data
* @return {?}
*/
onPageChange(data) {
this.pageQuery.skipCount = data.first;
this.pageQuery.maxResultCount = data.rows;
this.get();
}
/**
* @return {?}
*/
get() {
this.loading = true;
this.store
.dispatch(new GetUsers(this.pageQuery))
.pipe(finalize((/**
* @return {?}
*/
() => (this.loading = false))))
.subscribe();
}
}
UsersComponent.decorators = [
{ type: Component, args: [{
selector: 'abp-users',
template: "<div id=\"identity-roles-wrapper\" class=\"card\">\n <div class=\"card-header\">\n <div class=\"row\">\n <div class=\"col col-md-6\">\n <h5 class=\"card-title\">{{ 'AbpIdentity::Users' | abpLocalization }}</h5>\n </div>\n <div class=\"text-right col col-md-6\">\n <button\n [abpPermission]=\"'AbpIdentity.Users.Create'\"\n id=\"create-role\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"onAdd()\"\n >\n <i class=\"fa fa-plus mr-1\"></i> <span>{{ 'AbpIdentity::NewUser' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body\">\n <div id=\"data-tables-table-filter\" class=\"data-tables-filter\">\n <label\n ><input\n type=\"search\"\n class=\"form-control form-control-sm\"\n [placeholder]=\"'AbpUi::PagerSearch' | abpLocalization\"\n (input.debounce)=\"onSearch($event.target.value)\"\n /></label>\n </div>\n <p-table\n [value]=\"data$ | async\"\n [lazy]=\"true\"\n [lazyLoadOnInit]=\"false\"\n [paginator]=\"true\"\n [rows]=\"10\"\n [totalRecords]=\"totalCount$ | async\"\n [loading]=\"loading\"\n (onLazyLoad)=\"onPageChange($event)\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{ 'AbpIdentity::Actions' | abpLocalization }}</th>\n <th>{{ 'AbpIdentity::UserName' | abpLocalization }}</th>\n <th>{{ 'AbpIdentity::EmailAddress' | abpLocalization }}</th>\n <th>{{ 'AbpIdentity::PhoneNumber' | abpLocalization }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-data>\n <tr>\n <td>\n <div ngbDropdown class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i class=\"fa fa-cog mr-1\"></i>{{ 'AbpIdentity::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"onEdit(data.id)\">{{ 'AbpIdentity::Edit' | abpLocalization }}</button>\n <button ngbDropdownItem (click)=\"providerKey = data.id; visiblePermissions = true\">\n {{ 'AbpIdentity::Permissions' | abpLocalization }}\n </button>\n <button ngbDropdownItem (click)=\"delete(data.id, data.userName)\">\n {{ 'AbpIdentity::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </td>\n <td>{{ data.userName }}</td>\n <td>{{ data.email }}</td>\n <td>{{ data.phoneNumber }}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\n <ng-template #abpHeader>\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <perfect-scrollbar class=\"ps-show-always\" style=\"max-height: 70vh;\">\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <ngb-tabset>\n <ngb-tab [title]=\"'AbpIdentity::UserInformations' | abpLocalization\">\n <ng-template ngbTabContent>\n <div class=\"mt-2 fade-in-top\">\n <div class=\"form-group\">\n <label for=\"user-name\">{{ 'AbpIdentity::UserName' | abpLocalization }}</label\n ><span> * </span>\n <input type=\"text\" id=\"user-name\" class=\"form-control\" formControlName=\"userName\" autofocus />\n </div>\n\n <div class=\"form-group\">\n <label for=\"name\">{{ 'AbpIdentity::DisplayName:Name' | abpLocalization }}</label>\n <input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"form-group\">\n <label for=\"surname\">{{ 'AbpIdentity::DisplayName:Surname' | abpLocalization }}</label>\n <input type=\"text\" id=\"surname\" class=\"form-control\" formControlName=\"surname\" />\n </div>\n\n <div *ngIf=\"!selected.userName\" class=\"form-group\">\n <label for=\"password\">{{ 'AbpIdentity::Password' | abpLocalization }}</label\n ><span> * </span>\n <input\n type=\"password\"\n id=\"password\"\n autocomplete=\"new-password\"\n class=\"form-control\"\n formControlName=\"password\"\n />\n </div>\n\n <div class=\"form-group\">\n <label for=\"email\">{{ 'AbpIdentity::EmailAddress' | abpLocalization }}</label\n ><span> * </span>\n <input type=\"text\" id=\"email\" class=\"form-control\" formControlName=\"email\" />\n </div>\n\n <div class=\"form-group\">\n <label for=\"phone-number\">{{ 'AbpIdentity::PhoneNumber' | abpLocalization }}</label>\n <input type=\"text\" id=\"phone-number\" class=\"form-control\" formControlName=\"phoneNumber\" />\n </div>\n\n <div class=\"custom-checkbox custom-control mb-2\">\n <input\n type=\"checkbox\"\n id=\"lockout-checkbox\"\n class=\"custom-control-input\"\n formControlName=\"lockoutEnabled\"\n />\n <label class=\"custom-control-label\" for=\"lockout-checkbox\">{{\n 'AbpIdentity::DisplayName:LockoutEnabled' | abpLocalization\n }}</label>\n </div>\n\n <div class=\"custom-checkbox custom-control mb-2\">\n <input\n type=\"checkbox\"\n id=\"two-factor-checkbox\"\n class=\"custom-control-input\"\n formControlName=\"twoFactorEnabled\"\n />\n <label class=\"custom-control-label\" for=\"two-factor-checkbox\">{{\n 'AbpIdentity::DisplayName:TwoFactorEnabled' | abpLocalization\n }}</label>\n </div>\n </div>\n </ng-template>\n </ngb-tab>\n <ngb-tab [title]=\"'AbpIdentity::Roles' | abpLocalization\">\n <ng-template ngbTabContent>\n <div class=\"mt-2 fade-in-top\">\n <div\n *ngFor=\"let roleGroup of roleGroups; let i = index; trackBy: trackByFn\"\n class=\"custom-checkbox custom-control mb-2\"\n >\n <input\n type=\"checkbox\"\n name=\"Roles[0].IsAssigned\"\n value=\"true\"\n class=\"custom-control-input\"\n [attr.id]=\"'roles-' + i\"\n [formControl]=\"roleGroup.controls[roles[i].name]\"\n />\n <label class=\"custom-control-label\" [attr.for]=\"'roles-' + i\">{{ roles[i].name }}</label>\n </div>\n </div>\n </ng-template>\n </ngb-tab>\n </ngb-tabset>\n </form>\n </perfect-scrollbar>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" #abpClose>\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\" [disabled]=\"form.invalid\">{{\n 'AbpIdentity::Save' | abpLocalization\n }}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-permission-management\n [(visible)]=\"visiblePermissions\"\n providerName=\"User\"\n [providerKey]=\"providerKey\"\n></abp-permission-management>\n"
}] }
];
/** @nocollapse */
UsersComponent.ctorParameters = () => [
{ type: ConfirmationService },
{ type: FormBuilder },
{ type: Store }
];
UsersComponent.propDecorators = {
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }]
};
__decorate([
Select(IdentityState.getUsers),
__metadata("design:type", Observable)
], UsersComponent.prototype, "data$", void 0);
__decorate([
Select(IdentityState.getUsersTotalCount),
__metadata("design:type", Observable)
], UsersComponent.prototype, "totalCount$", void 0);
if (false) {
/** @type {?} */
UsersComponent.prototype.data$;
/** @type {?} */
UsersComponent.prototype.totalCount$;
/** @type {?} */
UsersComponent.prototype.modalContent;
/** @type {?} */
UsersComponent.prototype.form;
/** @type {?} */
UsersComponent.prototype.selected;
/** @type {?} */
UsersComponent.prototype.selectedUserRoles;
/** @type {?} */
UsersComponent.prototype.roles;
/** @type {?} */
UsersComponent.prototype.visiblePermissions;
/** @type {?} */
UsersComponent.prototype.providerKey;
/** @type {?} */
UsersComponent.prototype.pageQuery;
/** @type {?} */
UsersComponent.prototype.isModalVisible;
/** @type {?} */
UsersComponent.prototype.loading;
/** @type {?} */
UsersComponent.prototype.modalBusy;
/** @type {?} */
UsersComponent.prototype.trackByFn;
/**
* @type {?}
* @private
*/
UsersComponent.prototype.confirmationService;
/**
* @type {?}
* @private
*/
UsersComponent.prototype.fb;
/**
* @type {?}
* @private
*/
UsersComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class UserResolver {
/**
* @param {?} store
*/
constructor(store) {
this.store = store;
}
/**
* @return {?}
*/
resolve() {
/** @type {?} */
const users = this.store.selectSnapshot(IdentityState.getUsers);
return users && users.length ? null : this.store.dispatch(new GetUsers());
}
}
UserResolver.decorators = [
{ type: Injectable }
];
/** @nocollapse */
UserResolver.ctorParameters = () => [
{ type: Store }
];
if (false) {
/**
* @type {?}
* @private
*/
UserResolver.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
const ɵ0 = { requiredPolicy: 'AbpIdentity.Roles' }, ɵ1 = { requiredPolicy: 'AbpIdentity.Users' };
/** @type {?} */
const routes = [
{ path: '', redirectTo: 'roles', pathMatch: 'full' },
{
path: 'roles',
component: DynamicLayoutComponent,
canActivate: [AuthGuard, PermissionGuard],
data: ɵ0,
children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],
},
{
path: 'users',
component: DynamicLayoutComponent,
canActivate: [AuthGuard, PermissionGuard],
data: ɵ1,
children: [
{
path: '',
component: UsersComponent,
resolve: [RoleResolver, UserResolver],
},
],
},
];
class IdentityRoutingModule {
}
IdentityRoutingModule.decorators = [
{ type: NgModule, args: [{
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
providers: [RoleResolver, UserResolver],
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class IdentityModule {
}
IdentityModule.decorators = [
{ type: NgModule, args: [{
declarations: [RolesComponent, UsersComponent],
imports: [
NgxsModule.forFeature([IdentityState]),
CoreModule,
IdentityRoutingModule,
NgbTabsetModule,
ThemeSharedModule,
TableModule,
NgbDropdownModule,
PermissionManagementModule,
NgxValidateCoreModule,
PerfectScrollbarModule,
],
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const IDENTITY_ROUTES = (/** @type {?} */ ([
{
name: 'AbpUiNavigation::Menu:Administration',
path: '',
order: 1,
wrapper: true,
},
{
name: 'AbpIdentity::Menu:IdentityManagement',
path: 'identity',
order: 1,
parentName: 'AbpUiNavigation::Menu:Administration',
layout: "application" /* application */,
iconClass: 'fa fa-id-card-o',
children: [
{ path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },
{ path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },
],
},
]));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var Identity;
(function (Identity) {
/**
* @record
*/
function State() { }
Identity.State = State;
if (false) {
/** @type {?} */
State.prototype.roles;
/** @type {?} */
State.prototype.users;
/** @type {?} */
State.prototype.selectedRole;
/** @type {?} */
State.prototype.selectedUser;
/** @type {?} */
State.prototype.selectedUserRoles;
}
/**
* @record
*/
function RoleSaveRequest() { }
Identity.RoleSaveRequest = RoleSaveRequest;
if (false) {
/** @type {?} */
RoleSaveRequest.prototype.name;
/** @type {?} */
RoleSaveRequest.prototype.isDefault;
/** @type {?} */
RoleSaveRequest.prototype.isPublic;
}
/**
* @record
*/
function RoleItem() { }
Identity.RoleItem = RoleItem;
if (false) {
/** @type {?} */
RoleItem.prototype.isStatic;
/** @type {?} */
RoleItem.prototype.concurrencyStamp;
/** @type {?} */
RoleItem.prototype.id;
}
/**
* @record
*/
function UserItem() { }
Identity.UserItem = UserItem;
if (false) {
/** @type {?} */
UserItem.prototype.tenantId;
/** @type {?} */
UserItem.prototype.emailConfirmed;
/** @type {?} */
UserItem.prototype.phoneNumberConfirmed;
/** @type {?} */
UserItem.prototype.isLockedOut;
/** @type {?} */
UserItem.prototype.concurrencyStamp;
/** @type {?} */
UserItem.prototype.id;
}
/**
* @record
*/
function User() { }
Identity.User = User;
if (false) {
/** @type {?} */
User.prototype.userName;
/** @type {?} */
User.prototype.name;
/** @type {?} */
User.prototype.surname;
/** @type {?} */
User.prototype.email;
/** @type {?} */
User.prototype.phoneNumber;
/** @type {?} */
User.prototype.twoFactorEnabled;
/** @type {?} */
User.prototype.lockoutEnabled;
}
/**
* @record
*/
function UserSaveRequest() { }
Identity.UserSaveRequest = UserSaveRequest;
if (false) {
/** @type {?} */
UserSaveRequest.prototype.password;
/** @type {?} */
UserSaveRequest.prototype.roleNames;
}
})(Identity || (Identity = {}));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { CreateRole, CreateUser, DeleteRole, DeleteUser, GetRoleById, GetRoles, GetUserById, GetUserRoles, GetUsers, IDENTITY_ROUTES, IdentityModule, IdentityService, IdentityState, RoleResolver, RolesComponent, UpdateRole, UpdateUser, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd };
//# sourceMappingURL=abp-ng.identity.js.map