Added Eperson and group models

This commit is contained in:
Giuseppe Digilio
2018-02-02 14:33:48 +01:00
parent 2309c1be3b
commit 55c55dc682
5 changed files with 87 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import { autoserialize, inheritSerialization } from 'cerialize';
import { CacheableObject } from '../../cache/object-cache.reducer';
import { ListableObject } from '../../../shared/object-collection/shared/listable-object.model';
import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-object.model';
import { Eperson } from './eperson.model';
import { mapsTo, relationship } from '../../cache/builders/build-decorators';
import { ResourceType } from '../../shared/resource-type';
@mapsTo(Eperson)
@inheritSerialization(NormalizedDSpaceObject)
export class NormalizedEpersonModel extends NormalizedDSpaceObject implements CacheableObject, ListableObject {
@autoserialize
public handle: string;
@autoserialize
@relationship(ResourceType.Group, true)
groups: string[];
@autoserialize
public netid: string;
@autoserialize
public lastActive: string;
@autoserialize
public canLogIn: boolean;
@autoserialize
public email: string;
@autoserialize
public requireCertificate: boolean;
@autoserialize
public selfRegistered: boolean;
}

View File

@@ -0,0 +1,18 @@
import { autoserialize, inheritSerialization } from 'cerialize';
import { CacheableObject } from '../../cache/object-cache.reducer';
import { ListableObject } from '../../../shared/object-collection/shared/listable-object.model';
import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-object.model';
import { Eperson } from './eperson.model';
import { mapsTo } from '../../cache/builders/build-decorators';
import { Group } from './group.model';
@mapsTo(Group)
@inheritSerialization(NormalizedDSpaceObject)
export class NormalizedGroupModel extends NormalizedDSpaceObject implements CacheableObject, ListableObject {
@autoserialize
public handle: string;
@autoserialize
public permanent: boolean;
}

View File

@@ -0,0 +1,22 @@
import { DSpaceObject } from '../../shared/dspace-object.model';
import { Group } from './group.model';
export class Eperson extends DSpaceObject {
public handle: string;
public groups: Group[];
public netid: string;
public lastActive: string;
public canLogIn: boolean;
public email: string;
public requireCertificate: boolean;
public selfRegistered: boolean;
}

View File

@@ -0,0 +1,8 @@
import { DSpaceObject } from '../../shared/dspace-object.model';
export class Group extends DSpaceObject {
public handle: string;
public permanent: boolean;
}

View File

@@ -9,4 +9,6 @@ export enum ResourceType {
Item = 'item',
Collection = 'collection',
Community = 'community',
Eperson = 'eperson',
Group = 'group',
}