Project

General

Profile

« Previous | Next » 

Revision 61385

Finished the multiuser access functionality

View differences:

modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/pages/join/join.component.ts
41 41
  }
42 42

  
43 43
  getReposOfUser(): void {
44
    this.repositoryService.getRepositoriesOfUser()
44
    this.repositoryService.getRepositoriesSnippetsOfUser()
45 45
      .subscribe(
46 46
        repos => {
47 47
          this.repositoriesOfUser = repos;
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/pages/repository/update/update-repo-admins.component.html
1
<div class="uk-margin-small-top">
2
  <div>Update the users who can access the dashboard to manage the datasource.</div>
3

  
4
  <div *ngIf="errorMessage" class="uk-alert uk-alert-danger">{{errorMessage}}</div>
5
  <div *ngIf="loadingMessage" class="loading-medium">
6
    <div class="loader-small" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">
7
      {{ loadingMessage }}
8
    </div>
9
    <div class="whiteFilm"></div>
10
  </div>
11

  
12
  <div *ngIf="!loadingMessage" >
13

  
14
    <div class="uk-margin-top">
15
      <div class="uk-flex uk-flex-right@m uk-flex-right@l">
16
        <a class="uk-button uk-button-primary action uk-flex uk-flex-middle" (click)="showAddRepoAdminModal()">
17
          <!--<i class="md-icon material-icons">clear</i>-->
18
          <span class="uk-margin-small-left">Invite admin</span>
19
        </a>
20
      </div>
21
    </div>
22

  
23
    <div class="uk-margin-medium-top">
24
      <div *ngFor="let repoAdmin of repoAdmins" class="uk-grid uk-grid-divider uk-flex uk-flex-middle" uk-grid="">
25
        <div class="uk-width-3-4@l uk-width-1-2@m uk-first-column">
26
          <div class="">
27
            <span class="uk-text-muted">Email: </span>
28
            <span class="uk-text-bold">{{repoAdmin.email}}</span>
29
          </div>
30
        </div>
31
        <div class="uk-width-expand">
32
          <div class="uk-flex uk-flex-center">
33
            <a class="uk-button uk-button-default action uk-flex uk-flex-middle" (click)="showDeletionModal(repoAdmin)">
34
              <i class="md-icon material-icons">clear</i>
35
              <span class="uk-margin-small-left">Remove</span>
36
            </a>
37
          </div>
38
        </div>
39
      </div>
40
    </div>
41

  
42
  </div>
43

  
44
</div>
45

  
46
<confirmation-dialog #deleteRepositoryAdminModal [title]="'Remove datasource admin'" [isModalShown]="isDeleteModalShown"
47
                     [confirmButNotCloseButton]="'Remove'" (emitObject)="deleteRepoAdmin($event)">
48

  
49
  <div *ngIf="modalErrorMessage" class="uk-alert uk-alert-danger">{{modalErrorMessage}}</div>
50

  
51
  <div *ngIf="modalLoadingMessage" class="loading-small">
52
    <div class="loader-small" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">
53
      {{ modalLoadingMessage }}
54
    </div>
55
    <div class="whiteFilm"></div>
56
  </div>
57

  
58
  <!--<div *ngIf="!modalLoadingMessage && !modalErrorMessage">-->
59

  
60
    <!--<div *ngIf="selectedAdminForDelete">-->
61
      <!--<h6>Are you sure you want to delete {{ selectedAdminForDelete.email }} from the list of repository admins?</h6>-->
62
    <!--</div>-->
63
  <!--</div>-->
64
  <div *ngIf="selectedAdminForDelete">
65
    <h6>Are you sure you want to remove this user admin?</h6>
66
    <pre>
67
      <ng-container *ngIf="selectedAdminForDelete.firstName || selectedAdminForDelete.lastName">
68
        {{selectedAdminForDelete.firstName}} {{selectedAdminForDelete.lastName}}
69
      </ng-container>
70
      {{ selectedAdminForDelete.email }}
71
    </pre>
72
  </div>
73

  
74
</confirmation-dialog>
75

  
76

  
77
<confirmation-dialog #addRepositoryAdminModal [title]="'Add new datasource admin'" [isModalShown]="isAddModalShown"
78
                     [confirmButNotCloseButton]="'Submit'" (emitObject)="addRepositoryAdmin($event)">
79

  
80
  <div *ngIf="modalErrorMessage" class="uk-alert uk-alert-danger">{{modalErrorMessage}}</div>
81

  
82
  <div *ngIf="modalLoadingMessage" class="loading-small">
83
    <div class="loader-small" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">
84
      {{ modalLoadingMessage }}
85
    </div>
86
    <div class="whiteFilm"></div>
87
  </div>
88

  
89
  <h6>Add the email address of the new user admin. Make sure the user already has an OpenAIRE account with this email address.</h6>
90
  <form>
91
    <div class="uk-margin">
92
      <input class="uk-input" placeholder="Enter email..." [formControl]="emailControl">
93
    </div>
94
  </form>
95
</confirmation-dialog>
96

  
97

  
98

  
99
<!--<div id="addAdminModal" uk-modal>-->
100
  <!--<div class="uk-modal-dialog" style="top: 95.5px;">-->
101
    <!--<div class="uk-modal-header">-->
102
      <!--<h3 class="uk-modal-title">Adding a new repository admin for this repository</h3>-->
103
    <!--</div>-->
104
    <!--<div class="uk-modal-body">-->
105
      <!--<p>Lorem ipsum.....</p>-->
106
    <!--</div>-->
107
    <!--<div class="uk-modal-footer uk-text-right">-->
108
      <!--<button type="button" class="md-btn md-btn-flat uk-modal-close">Cancel</button>-->
109
      <!--<button (click)="addRepositoryAdmin()" type="button" class="md-btn md-btn-flat md-btn-flat-primary">Add admin</button>-->
110
    <!--</div>-->
111
  <!--</div>-->
112

  
113

  
114

  
115
  <!--&lt;!&ndash;<div *ngIf="!loadingMessage" class="uk-modal-dialog uk-modal-body">&ndash;&gt;-->
116
    <!--&lt;!&ndash;<div *ngIf="selectedAdminForDelete">&ndash;&gt;-->
117
      <!--&lt;!&ndash;<h6>Are you sure you want to delete {{ selectedAdminForDelete.email }} from the list of repository admins?</h6>&ndash;&gt;-->
118
      <!--&lt;!&ndash;&lt;!&ndash;<p>Deleting a {{serviceORresource}} is an irreversible action.</p>&ndash;&gt;&ndash;&gt;-->
119
    <!--&lt;!&ndash;</div>&ndash;&gt;-->
120
    <!--&lt;!&ndash;<button class="uk-button uk-button-danger uk-modal-close" type="button" (click)="deleteRepoAdmin(selectedAdminForDelete.email)">Delete</button>&ndash;&gt;-->
121
    <!--&lt;!&ndash;<button class="uk-button uk-button-primary uk-modal-close" type="button" (click)="closeDeletionModal()">Cancel</button>&ndash;&gt;-->
122
  <!--&lt;!&ndash;</div>&ndash;&gt;-->
123
  <!--&lt;!&ndash;<div *ngIf="loadingMessage">&ndash;&gt;-->
124
    <!--&lt;!&ndash;<div class="loader-small" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">&ndash;&gt;-->
125
      <!--&lt;!&ndash;{{ loadingMessage }}&ndash;&gt;-->
126
    <!--&lt;!&ndash;</div>&ndash;&gt;-->
127
    <!--&lt;!&ndash;&lt;!&ndash;    <div class="whiteFilm"></div>&ndash;&gt;&ndash;&gt;-->
128
  <!--&lt;!&ndash;</div>&ndash;&gt;-->
129
<!--</div>-->
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/pages/repository/update/update-repo-admins.component.ts
1
import {Component, Input, OnChanges, SimpleChanges, ViewChild} from '@angular/core';
2
import { Repository, User } from '../../../domain/typeScriptClasses';
3
import { RepositoryService } from '../../../services/repository.service';
4
import {loadingRepoMessage} from '../../../domain/shared-messages';
5
import {ConfirmationDialogComponent} from '../../../shared/reusablecomponents/confirmation-dialog.component';
6
import {FormControl} from '@angular/forms';
7

  
8
declare var UIkit: any;
9

  
10
@Component ({
11
  selector: 'app-update-repo-admins',
12
  templateUrl: 'update-repo-admins.component.html',
13
})
14

  
15
export class UpdateRepoAdminsComponent implements OnChanges {
16

  
17
  @Input() repo: Repository;
18

  
19
  loadingMessage: string;
20
  errorMessage: string;
21

  
22
  repoAdmins: User[];
23

  
24
  selectedAdminForDelete: User;
25

  
26
  isDeleteModalShown: boolean;
27
  @ViewChild('deleteRepositoryAdminModal')
28
  public deleteRepositoryAdminModal: ConfirmationDialogComponent;
29

  
30
  isAddModalShown: boolean;
31
  @ViewChild('addRepositoryAdminModal')
32
  public addRepositoryAdminModal: ConfirmationDialogComponent;
33

  
34
  modalErrorMessage: string;
35
  modalLoadingMessage: string;
36

  
37
  emailControl = new FormControl();
38

  
39
  constructor (private repoService: RepositoryService) { }
40

  
41
  ngOnChanges(changes: SimpleChanges): void {
42
    this.getRepositoryAdmins();
43
  }
44

  
45
  getRepositoryAdmins() {
46

  
47
    this.loadingMessage = 'Retrieving repository\'s admins...';
48

  
49
    this.repoService.getRepositoryAdmins(this.repo.id).subscribe(
50
      users => {
51
        this.repoAdmins = users;
52
      },
53
      error => {
54
        console.log(error);
55
        this.loadingMessage = '';
56
        this.errorMessage = 'Error retrieving the repository\'s admins';
57
      },
58
      () => {
59
        this.loadingMessage = '';
60
      }
61
    );
62
  }
63

  
64
  showDeletionModal(repoAdmin: User) {
65

  
66
    this.errorMessage = '';
67
    this.loadingMessage = '';
68

  
69
    this.selectedAdminForDelete = repoAdmin;
70
    if (this.selectedAdminForDelete) {
71
      this.deleteRepositoryAdminModal.showModal();
72
      // UIkit.modal('#deletionModal').show();
73
    }
74
  }
75

  
76
  closeDeletionModal() {
77
    this.selectedAdminForDelete = null;
78
    this.deleteRepositoryAdminModal.hideModal();
79
    // UIkit.modal('#deletionModal').hide();
80
  }
81

  
82
  deleteRepoAdmin(event: any) {
83
    console.log('deleting: ', this.selectedAdminForDelete.email);
84

  
85
    // this.deleteRepositoryAdminModal.hideModal();
86
    this.modalLoadingMessage = 'Deleting admin...';
87

  
88
    this.repoService.deleteRepositoryAdmin(this.repo.id, this.selectedAdminForDelete.email).subscribe(
89
      res => {
90
        this.selectedAdminForDelete = null;
91
        this.deleteRepositoryAdminModal.hideModal();
92
        this.getRepositoryAdmins();
93
      },
94
      error => {
95
        console.log('Error deleting repository\'s admins', error);
96
        this.modalLoadingMessage = '';
97
        this.modalErrorMessage = 'Error deleting admin';
98
      },
99
      () => {
100
        this.modalLoadingMessage = '';
101
        // this.deleteRepositoryAdminModal.hideModal();
102
      }
103
    );
104

  
105
  }
106

  
107
  showAddRepoAdminModal() {
108

  
109
    this.emailControl.reset();
110

  
111
    this.modalErrorMessage = '';
112
    this.modalLoadingMessage = '';
113

  
114
    this.addRepositoryAdminModal.showModal();
115
    // UIkit.modal('#addAdminModal').show();
116
  }
117

  
118
  addRepositoryAdmin() {
119

  
120
    this.modalLoadingMessage = 'Adding repository admin';
121

  
122
    console.log('Adding repository admin..', this.emailControl.value);
123

  
124
    this.repoService.addRepositoryAdmin(this.repo.id, this.emailControl.value).subscribe(
125
      res => {
126
        this.addRepositoryAdminModal.hideModal();
127
        this.getRepositoryAdmins();
128
      }, error => {
129
        console.log('Error adding repository admin', error);
130
        this.modalLoadingMessage = '';
131
        if(error.status === 404) {
132
          this.modalErrorMessage = 'This email address is not associated with an OpenAIRE user account.\n' +
133
            'Please make sure the user has an OpenAIRE account and then try again.';
134
        } else {
135
          this.modalErrorMessage = 'Error deleting the user admin, please try again. If the error persists, ' +
136
            'please contact helpdesk@openaire.eu';
137
        }
138
      },
139
      () => {
140
        this.modalLoadingMessage = '';
141
      }
142
    );
143

  
144
    // UIkit.modal('#addAdminModal').hide();
145
  }
146

  
147
}
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/pages/repository/update/sources-update-repo.component.html
84 84
                  </div>
85 85
                </li>
86 86
                <li>
87
                  <div class="uk-margin-small-top">
88
                    <div>This is a mock representation of the update admins functionality coming soon..</div>
89
                    <div class="uk-margin-top">
90
                      <div class="uk-flex uk-flex-right@m uk-flex-right@l">
91
                        <a class="uk-button uk-button-primary action uk-flex uk-flex-middle">
92
                          <!--<i class="md-icon material-icons">clear</i>-->
93
                          <span class="uk-margin-small-left">Invite admin</span>
94
                        </a>
95
                      </div>
96
                    </div>
97
                    <div class="uk-margin-medium-top">
98
                      <div class="uk-grid uk-grid-divider uk-flex uk-flex-middle" uk-grid="">
99
                        <div class="uk-width-3-4@l uk-width-1-2@m uk-first-column">
100
                          <div class="">
101
                            <span class="uk-text-muted">Email: </span>
102
                            <span class="uk-text-bold">admin1@gmail.com</span>
103
                          </div>
104
                        </div>
105
                        <div class="uk-width-expand">
106
                          <div class="uk-flex uk-flex-center">
107
                            <a class="uk-button uk-button-default action uk-flex uk-flex-middle">
108
                              <i class="md-icon material-icons">clear</i>
109
                              <span class="uk-margin-small-left">Remove</span>
110
                            </a>
111
                          </div>
112
                        </div>
113
                      </div>
114
                      <div class="uk-grid uk-grid-divider uk-flex uk-flex-middle" uk-grid="">
115
                        <div class="uk-width-3-4@l uk-width-1-2@m uk-first-column">
116
                          <div class="">
117
                            <span class="uk-text-muted">Email: </span>
118
                            <span class="uk-text-bold">admin2@gmail.com</span>
119
                          </div>
120
                        </div>
121
                        <div class="uk-width-expand">
122
                          <div class="uk-flex uk-flex-center">
123
                            <a class="uk-button uk-button-default action uk-flex uk-flex-middle">
124
                              <i class="md-icon material-icons">clear</i>
125
                              <span class="uk-margin-small-left">Remove</span>
126
                            </a>
127
                          </div>
128
                        </div>
129
                      </div>
130
                    </div>
131
                  </div>
87
                  <app-update-repo-admins [repo]="repo"></app-update-repo-admins>
132 88
                </li>
133 89
                <li class="el-item">
134 90
                  <div>
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/pages/repository/update/sources-update-repo.component.ts
8 8
import { ConfirmationDialogComponent } from '../../../shared/reusablecomponents/confirmation-dialog.component';
9 9
import { AuthenticationService } from '../../../services/authentication.service';
10 10
import { DatasourceNewInterfaceFormComponent } from '../../../shared/reusablecomponents/sources-forms/datasource-new-interface-form.component';
11
import {SharedService} from "../../../services/shared.service";
11
import { SharedService } from '../../../services/shared.service';
12 12

  
13 13
@Component ({
14 14
  selector: 'sources-update-repo',
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/pages/repository/repository.module.ts
3 3
import { TabsModule } from 'ngx-bootstrap';
4 4
import { ReusableComponentsModule } from '../../shared/reusablecomponents/reusable-components.module';
5 5
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
import { RepositoryComponent } from "./repository.component";
7
import { RepositoryRoutingModule } from "./repository-routing.module";
8
import { DashboardComponent } from "./dashboard/dashboard.component";
9
import {AuthenticationInterceptor} from "../../services/authentication-interceptor";
10
import {UsagestatsService} from "../../services/usagestats.service";
11
import {RepositoryService} from "../../services/repository.service";
12
import {AuthGuardService} from "../../services/auth-guard.service";
13
import {ValidatorService} from "../../services/validator.service";
14
import {AuthenticationService} from "../../services/authentication.service";
15
import {MonitorService} from "../../services/monitor.service";
16
import {PiwikService} from "../../services/piwik.service";
17
import {StatisticsService} from "../../services/statistics.service";
18
import {BrokerService} from "../../services/broker.service";
19
import {DashboardService} from "../../services/dashboard.service";
20
import { SharedService } from "../../services/shared.service";
21
import { SourcesUpdateRepoComponent } from "./update/sources-update-repo.component";
22
import {SourcesModule} from '../sources/sources.module';
6
import { RepositoryComponent } from './repository.component';
7
import { RepositoryRoutingModule } from './repository-routing.module';
8
import { DashboardComponent } from './dashboard/dashboard.component';
9
import {AuthenticationInterceptor} from '../../services/authentication-interceptor';
10
import {UsagestatsService} from '../../services/usagestats.service';
11
import {RepositoryService} from '../../services/repository.service';
12
import {AuthGuardService} from '../../services/auth-guard.service';
13
import {ValidatorService} from '../../services/validator.service';
14
import {AuthenticationService} from '../../services/authentication.service';
15
import {MonitorService} from '../../services/monitor.service';
16
import {PiwikService} from '../../services/piwik.service';
17
import {StatisticsService} from '../../services/statistics.service';
18
import {BrokerService} from '../../services/broker.service';
19
import {DashboardService} from '../../services/dashboard.service';
20
import { SharedService } from '../../services/shared.service';
21
import { SourcesUpdateRepoComponent } from './update/sources-update-repo.component';
22
import { SourcesModule } from '../sources/sources.module';
23
import { UpdateRepoAdminsComponent } from './update/update-repo-admins.component';
23 24

  
24 25
@NgModule ({
25 26
    imports: [
......
36 37
    RepositoryComponent,
37 38
    DashboardComponent,
38 39
    SourcesUpdateRepoComponent,
40
    UpdateRepoAdminsComponent
39 41
    // SourcesComponent,
40 42
    // SourcesRegisterComponent,
41 43
    // SourcesUpdateComponent,
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/services/repository.service.ts
12 12
  RepositoryInterface,
13 13
  RepositorySnippet, RepositorySummaryInfo,
14 14
  Timezone,
15
  Typology
15
  Typology, User
16 16
} from '../domain/typeScriptClasses';
17 17
import { Observable, of } from 'rxjs';
18 18
import { timezones } from '../domain/timezones';
......
28 28

  
29 29
@Injectable ()
30 30
export class RepositoryService {
31
  private apiUrl = environment.API_ENDPOINT + '/repository/';
31
  private apiUrl = environment.API_ENDPOINT + '/repositories/';
32 32
  private dashboardAPIUrl = environment.API_ENDPOINT + '/dashboard/';
33 33

  
34 34
  constructor(private httpClient: HttpClient) { }
......
91 91
    return this.httpClient.get<RepositorySnippet[]>(url, headerOptions);
92 92
  }
93 93

  
94
  getRepositoriesOfUser(): Observable<RepositorySnippet[]> {
95
    const url = `${this.apiUrl}getRepositoriesOfUser/0/100`;
94
  getRepositoriesSnippetsOfUser(): Observable<RepositorySnippet[]> {
95
    const url = `${this.apiUrl}snippets/user`;
96 96
    console.log(`knocking on: ${url}`);
97 97
    return this.httpClient.get<RepositorySnippet[]>(url, headerOptions);
98 98
  }
99 99

  
100 100

  
101 101
  getRepositoryById(id: string): Observable<Repository> {
102
    const url = `${this.apiUrl}getRepositoryById/${id}`;
102
    const   url = `${this.apiUrl}getRepositoryById/${id}`;
103 103
    console.log(`knocking on: ${url}`);
104 104
    return this.httpClient.get<Repository>(url, headerOptions);
105 105
  }
......
144 144
  }
145 145

  
146 146
  getCountries(): Observable<Country[]> {
147
    const url = `${this.apiUrl}getCountries`;
147
    const url = `${this.apiUrl}countries`;
148 148
    console.log(`knocking on: ${url}`);
149 149
    return this.httpClient.get<Country[]>(url, headerOptions);
150 150
  }
......
193 193
    console.log(`knocking on: ${url}`);
194 194
    return this.httpClient.get<RepositorySummaryInfo[]>(url, headerOptions);
195 195
  }
196

  
197
  getRepositoryAdmins(repoId: string): Observable<User[]> {
198
    const url = `${this.apiUrl}${repoId}/admins`;
199
    console.log(`knocking on: ${url}`);
200
    return this.httpClient.get<User[]>(url, headerOptions);
201
  }
202

  
203
  deleteRepositoryAdmin(repoId: string, repoAdminEmail: string) {
204
    const url = `${this.apiUrl}${repoId}/admins/${repoAdminEmail}`;
205
    console.log(`knocking on: ${url}`);
206

  
207
    return this.httpClient.delete(url, headerOptions);
208
  }
209

  
210
  addRepositoryAdmin(repoId: string, repoAdminEmail: string) {
211
    const url = `${this.apiUrl}${repoId}/admins`;
212
    return this.httpClient.post<string>(url, repoAdminEmail, headerOptions);
213
  }
196 214
}
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/app.component.ts
72 72
  }
73 73

  
74 74
  getReposOfUser(): void {
75
    this.repositoryService.getRepositoriesOfUser()
75
    this.repositoryService.getRepositoriesSnippetsOfUser()
76 76
      .subscribe(
77 77
        repos => { this.reposOfUser = repos; },
78 78
        error => { console.log(error); },
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/shared/reusablecomponents/repository-tiles.component.ts
30 30

  
31 31
  getReposOfUser(): void {
32 32
    this.loadingMessage = loadingReposMessage;
33
    this.repoService.getRepositoriesOfUser()
33
    this.repoService.getRepositoriesSnippetsOfUser()
34 34
      .subscribe(
35 35
        repos => this.reposOfUser = repos.sort( function(a, b) {
36 36
          if (a.officialname < b.officialname) {
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/shared/reusablecomponents/confirmation-dialog.component.html
31 31
    <div class="uk-modal-footer uk-text-right">
32 32
      <button (click)="hideModal()" type="button" class="md-btn md-btn-flat uk-modal-close">{{ hideModalButton }}</button>
33 33
      <button *ngIf="confirmActionButton" (click)="confirmedAction()" type="button" class="md-btn md-btn-flat md-btn-flat-primary">{{confirmActionButton}}</button>
34
      <button *ngIf="confirmButNotCloseButton" (click)="confirmedButNotCloseAction()" type="button" class="md-btn md-btn-flat md-btn-flat-primary">{{confirmButNotCloseButton}}</button>
34 35
    </div>
35 36
  </div>
36 37
</div>
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/shared/reusablecomponents/confirmation-dialog.component.ts
19 19
  @Input() public title: string;
20 20

  
21 21
  @Input() public confirmActionButton: string;
22
  @Input() public confirmButNotCloseButton: string;
22 23

  
23 24
  @Input() public hideModalButton: string = 'Cancel';
24 25

  
......
50 51
      // this.hideModal();
51 52
    }
52 53
  }
54

  
55
  public confirmedButNotCloseAction() {
56
    this.emitObject.emit(this._ids);
57
  }
53 58
}
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/shared/sidemenu/sidemenu.component.ts
154 154
  }
155 155

  
156 156
  getReposOfUser(): void {
157
    this.repositoryService.getRepositoriesOfUser()
157
    this.repositoryService.getRepositoriesSnippetsOfUser()
158 158
      .subscribe(
159 159
        repos => {
160 160
            this.reposOfUser = repos;
modules/uoa-repository-dashboard-gui/branches/multiuser-access/src/app/domain/typeScriptClasses.ts
716 716
  aggregationDetails: AggregationDetails[];
717 717
  lastIndexedVersion: AggregationDetails;
718 718
}
719

  
720
export class User {
721
  sub: string;
722
  firstName: string;
723
  lastName: string;
724
  email: string;
725
}
modules/uoa-repository-dashboard-gui/branches/multiuser-access/package-lock.json
4516 4516
      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
4517 4517
      "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
4518 4518
      "dev": true,
4519
      "hasInstallScript": true,
4519 4520
      "optional": true,
4520 4521
      "os": [
4521 4522
        "darwin"

Also available in: Unified diff