diff --git a/src/frontend/app/administration/administration.component.html b/src/frontend/app/administration/administration.component.html
index b77776d3dd7e977460613a741514de52cdba826c..568deb84765bea909430c36ff28e10336b996144 100644
--- a/src/frontend/app/administration/administration.component.html
+++ b/src/frontend/app/administration/administration.component.html
@@ -1,7 +1,7 @@
 <mat-sidenav-container autosize>
   <mat-sidenav #snav [disableClose]="!signaturesService.mobileMode" [mode]="signaturesService.mobileMode ? 'over': 'side'" fixedInViewport="true"
   [opened]="!signaturesService.mobileMode" [style.width.px]="350">
-  <app-sidebar [snavLeftComponent]="this.snav" [snavRightComponent]="this.snavRight"></app-sidebar>
+  <app-admin-sidebar [snavLeftComponent]="this.snav" [snavRightComponent]="this.snavRight"></app-admin-sidebar>
   </mat-sidenav>
   <mat-sidenav-content class="mainView">
     <header class="header">
diff --git a/src/frontend/app/administration/administration.component.ts b/src/frontend/app/administration/administration.component.ts
index d4b9d11538e0391dd8e9ca1988f08d1e04b14f65..25fe701b779c866c61c7f57d79bdf201a238403e 100644
--- a/src/frontend/app/administration/administration.component.ts
+++ b/src/frontend/app/administration/administration.component.ts
@@ -5,8 +5,7 @@ import { HttpClient } from '@angular/common/http';
 import { map, tap, finalize } from 'rxjs/operators';
 
 export interface Privilege {
-    title: string;
-    description: string;
+    id: string;
     icon: string;
     route: string;
 }
diff --git a/src/frontend/app/administration/user/user.component.html b/src/frontend/app/administration/user/user.component.html
index e2e579db0add7237ef4427abba7df85e3fdc9e46..3211a3fbd991aa81b499305392a9c333556153b0 100644
--- a/src/frontend/app/administration/user/user.component.html
+++ b/src/frontend/app/administration/user/user.component.html
@@ -1,7 +1,7 @@
 <mat-sidenav-container autosize>
   <mat-sidenav #snav [disableClose]="!signaturesService.mobileMode" [mode]="signaturesService.mobileMode ? 'over': 'side'" fixedInViewport="true"
     [opened]="!signaturesService.mobileMode" [style.width.px]="350">
-    <app-sidebar [snavLeftComponent]="this.snav" [snavRightComponent]="this.snavRight"></app-sidebar>
+    <app-admin-sidebar [snavLeftComponent]="this.snav" [snavRightComponent]="this.snavRight"></app-admin-sidebar>
   </mat-sidenav>
   <mat-sidenav-content class="mainView">
     <header class="header">
diff --git a/src/frontend/app/administration/user/user.component.ts b/src/frontend/app/administration/user/user.component.ts
index 622527fd6603d8af8d1efd5d95931543194d46ce..a7f3bd7882f4a57ad182db7f4d6f96fcc3adf8cc 100644
--- a/src/frontend/app/administration/user/user.component.ts
+++ b/src/frontend/app/administration/user/user.component.ts
@@ -42,7 +42,6 @@ export class UserComponent implements OnInit {
                 this.http.get('../rest/users/' + params['id'])
                 .pipe(
                     map((data: any) => data.user),
-                    tap(() => this.loading = true),
                     finalize(() => this.loading = false)
                 )
                 .subscribe({
@@ -65,9 +64,9 @@ export class UserComponent implements OnInit {
     }
 
     onSubmit() {
+        this.loading = true;
         this.http.put('../rest/users/' + this.user.id, this.user)
         .pipe(
-            tap(() => this.loading = true),
             finalize(() => this.loading = false)
         )
         .subscribe({
@@ -87,7 +86,6 @@ export class UserComponent implements OnInit {
                 this.loading = true;
                 this.http.delete('../rest/users/' + this.user.id)
                     .pipe(
-                        tap(() => this.loading = true),
                         finalize(() => this.loading = false)
                     )
                     .subscribe({
diff --git a/src/frontend/app/administration/user/users-list.component.html b/src/frontend/app/administration/user/users-list.component.html
index 1f8367ab9243768eb4cfd70e85ed79b0bd819d43..582ae6aed0a49f972e83906408c744a98a856096 100644
--- a/src/frontend/app/administration/user/users-list.component.html
+++ b/src/frontend/app/administration/user/users-list.component.html
@@ -1,7 +1,7 @@
 <mat-sidenav-container autosize>
   <mat-sidenav #snav [disableClose]="!signaturesService.mobileMode" [mode]="signaturesService.mobileMode ? 'over': 'side'" fixedInViewport="true"
     [opened]="!signaturesService.mobileMode" [style.width.px]="350">
-    <app-sidebar [snavLeftComponent]="this.snav" [snavRightComponent]="this.snavRight"></app-sidebar>
+    <app-admin-sidebar [snavLeftComponent]="this.snav" [snavRightComponent]="this.snavRight"></app-admin-sidebar>
   </mat-sidenav>
   <mat-sidenav-content class="mainView">
     <header class="header">
diff --git a/src/frontend/app/administration/user/users-list.component.ts b/src/frontend/app/administration/user/users-list.component.ts
index 600a6bbf7321e0adf37cf014df70f94ef90733d2..5a789ea8e0e71fdac59b049ddbe44cc1415f62d2 100644
--- a/src/frontend/app/administration/user/users-list.component.ts
+++ b/src/frontend/app/administration/user/users-list.component.ts
@@ -74,7 +74,6 @@ export class UsersListComponent implements OnInit {
         this.http.get('../rest/users')
             .pipe(
                 map((data: any) => data.users),
-                tap(() => this.loading = true),
                 finalize(() => this.loading = false)
             )
             .subscribe({
@@ -95,7 +94,6 @@ export class UsersListComponent implements OnInit {
                 this.loading = true;
                 this.http.delete('../rest/users/' + userToDelete.id)
                     .pipe(
-                        tap(() => this.loading = true),
                         finalize(() => this.loading = false)
                     )
                     .subscribe({
diff --git a/src/frontend/app/app.module.ts b/src/frontend/app/app.module.ts
index 9406f407c995b34f8aaf645ec5a14480b9740642..eb2838be879832b4d5ff112992041412ca7d6aac 100755
--- a/src/frontend/app/app.module.ts
+++ b/src/frontend/app/app.module.ts
@@ -50,6 +50,8 @@ import { MainDocumentDetailComponent } from './document/main-document-detail/mai
 import { UpdatePasswordComponent } from './login/updatePassword/updatePassword.component';
 
 // ADMINISTRATION
+import { AdminSidebarComponent } from './sidebar/administration/admin-sidebar.component';
+
 import { AdministrationComponent } from './administration/administration.component';
 import { UsersListComponent } from './administration/user/users-list.component';
 import { UserComponent } from './administration/user/user.component';
@@ -93,7 +95,8 @@ import { ConfirmComponent } from './plugins/confirm.component';
     AdministrationComponent,
     UsersListComponent,
     UserComponent,
-    ConfirmComponent
+    ConfirmComponent,
+    AdminSidebarComponent
   ],
   imports: [
     FormsModule,
diff --git a/src/frontend/app/sidebar/administration/admin-sidebar.component.html b/src/frontend/app/sidebar/administration/admin-sidebar.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..480344e0fe894b2a3a427893b0165b09da0ff00b
--- /dev/null
+++ b/src/frontend/app/sidebar/administration/admin-sidebar.component.html
@@ -0,0 +1,37 @@
+<nav class="sidebar" *ngIf="snavLeftComponent.opened">
+  <div class="main-header">
+    <header class="profile-header">
+      <button class="logout-button" mat-icon-button (click)="logout()">
+        <mat-icon fontSet="fas" fontIcon="fa-power-off"></mat-icon>
+      </button>
+      <button class="home-button" mat-icon-button (click)="openHome()">
+        <mat-icon fontSet="fas" fontIcon="fa-home"></mat-icon>
+      </button>
+      <button *ngIf="checkClose()" class="closePanel" mat-icon-button type="button" (tap)="snavLeftComponent.close();">
+        <mat-icon fontSet="fas" fontIcon="fa-arrow-left fa-2x"></mat-icon>
+      </button>
+      <div class="user" style="color: #F99830">
+        {{signaturesService.userLogged.firstname}} {{signaturesService.userLogged.lastname}}
+      </div>
+      <div *ngIf="signaturesService.userLogged.picture" class="avatar"
+        [ngStyle]="{'background': 'url(' + signaturesService.userLogged.picture + ') no-repeat scroll center center / cover'}"
+        (click)="openProfile()">
+      </div>
+    </header>
+    <header class="sidebar-header">
+      <div routerLink="/administration"  style="cursor: pointer;">
+        {{'lang.administration' | translate}}
+      </div>
+    </header>
+  </div>
+  <mat-nav-list class="admin-list">
+    <mat-list-item *ngFor="let privilege of privileges" [routerLink]="privilege.route" [class.item-active]="('/' + route.routeConfig.path).indexOf(privilege.route) !== -1">
+      <mat-icon matListIcon [class]="privilege.icon" color="primary"></mat-icon>
+      <p matLine>
+        {{'lang.' + privilege.id | translate}}
+      </p>
+      <mat-divider></mat-divider>
+    </mat-list-item>
+
+  </mat-nav-list>
+</nav>
\ No newline at end of file
diff --git a/src/frontend/app/sidebar/administration/admin-sidebar.component.scss b/src/frontend/app/sidebar/administration/admin-sidebar.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..0b6dcbd2ac9e4b3d6f9a95fa4545e7ab5193bc55
--- /dev/null
+++ b/src/frontend/app/sidebar/administration/admin-sidebar.component.scss
@@ -0,0 +1,97 @@
+@import '../../../css/vars.scss';
+
+.sidebar {
+  position: relative;
+  height: 100%;
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
+
+  &-header {
+    background: #F1F4F4;
+    height: 50px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    font-size: 14px;
+    font-weight: 600;
+    padding-top: 10px;
+  }
+  .nav {
+    flex: 1;
+    overflow-y: scroll;
+    margin-top: 0px;
+    overflow-x: hidden;
+    margin-bottom: 0px;
+    padding: 0px;
+  }
+}
+
+.profile-header {
+  background: $primary;
+  height: 95px;
+  display: flex;
+  justify-content: center;
+  position: relative;
+}
+
+.avatar {
+  cursor: pointer;
+  position: absolute;
+  width: 65px;
+  height: 65px;
+  border-radius: 40px;
+  bottom: -20px;
+  border: solid 3px #F99830;
+  background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center;
+  transition: all 0.2s;
+}
+
+.avatar:hover {
+  box-shadow: 0px 0px 5px 0px #656565;
+}
+
+.user {
+  color: white;
+  padding-top: 10px;
+  font-weight: bold;
+  font-size: 20px;
+}
+
+.logout-button {
+  font-size: 24px;
+  color: white;
+  position: absolute;
+  left: 10px;
+}
+
+.home-button {
+  font-size: 24px;
+  color: white;
+  position: absolute;
+  left: 50px;
+}
+
+.closePanel {
+  color: white;
+  position: absolute;
+  right: 10px;
+  font-size: 24px;
+}
+
+.admin-list {
+    padding-top: 0;
+    flex: 1;
+    overflow-y: auto;
+    overflow-x: hidden;
+    color: #666;
+}
+
+.item-active {
+    border-left: solid 5px $primary;
+    background: rgba($primary, 0.14);
+    color: $primary;
+    font-weight: bold;
+}
\ No newline at end of file
diff --git a/src/frontend/app/sidebar/administration/admin-sidebar.component.ts b/src/frontend/app/sidebar/administration/admin-sidebar.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9314cc6f3ffbd9528df12c9df75083886e579713
--- /dev/null
+++ b/src/frontend/app/sidebar/administration/admin-sidebar.component.ts
@@ -0,0 +1,83 @@
+import { Component, OnInit, Input } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Router, ActivatedRoute } from '@angular/router';
+import { MatSidenav } from '@angular/material';
+import { SignaturesContentService } from '../../service/signatures.service';
+import { NotificationService } from '../../service/notification.service';
+import { TranslateService } from '@ngx-translate/core';
+import { tap, map, finalize } from 'rxjs/operators';
+
+export interface Privilege {
+    id: string;
+    icon: string;
+    route: string;
+}
+
+@Component({
+  selector: 'app-admin-sidebar',
+  templateUrl: 'admin-sidebar.component.html',
+  styleUrls: ['admin-sidebar.component.scss']
+})
+export class AdminSidebarComponent implements OnInit {
+
+    // tslint:disable-next-line:no-input-rename
+    @Input('snavRightComponent') snavRightComponent: MatSidenav;
+    // tslint:disable-next-line:no-input-rename
+    @Input('snavLeftComponent') snavLeftComponent: MatSidenav;
+
+    loading: boolean = true;
+    privileges: Privilege[] = [];
+
+    constructor(private translate: TranslateService, public http: HttpClient, public signaturesService: SignaturesContentService, private sidenav: MatSidenav, private route: ActivatedRoute, private router: Router, public notificationService: NotificationService) {
+    }
+
+    ngOnInit() {
+        $('.avatar').css({'background': 'url(data:image/png;base64,' + this.signaturesService.userLogged.picture + ') no-repeat #135F7F'}).css({'background-size': 'cover'}).css({'background-position': 'center'});
+        this.http.get('../rest/administrativePrivileges')
+        .pipe(
+            map((data: any) => data.privileges),
+            tap(() => this.loading = true),
+            finalize(() => this.loading = false)
+        )
+        .subscribe({
+            next: data => this.privileges = data,
+            error: err => this.notificationService.handleErrors(err)
+        });
+    }
+
+    openProfile() {
+        this.signaturesService.sideNavRigtDatas = {
+            mode : 'profile',
+            width : '650px',
+            locked : true,
+        };
+        if (this.signaturesService.mobileMode) {
+            this.snavLeftComponent.close();
+            this.snavRightComponent.open();
+        }
+    }
+
+    openHome() {
+        this.router.navigate(['/documents/']);
+        if (this.signaturesService.mobileMode) {
+            this.snavLeftComponent.close();
+        }
+    }
+
+    logout() {
+        this.http.get('../rest/logout')
+            .subscribe(() => {
+                this.router.navigate(['/login']);
+            }, (err: any) => {
+                this.notificationService.handleErrors(err);
+            });
+    }
+
+    checkClose() {
+        if ((this.route.routeConfig.path.indexOf('administration') !== -1 || this.signaturesService.mainDocumentId > 0) && this.signaturesService.mobileMode) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}