diff --git a/.gitignore b/.gitignore
index 7e0f7ddce8a874e078e33f00a15f656ff3a38925..af0c0521d4a483674255fe586735b372ed705619 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
 # compiled output
 /dist/
 /tmp/
+.idea/
 
 # dependencies
 /bower_components/
diff --git a/app/components/button/link.hbs b/app/components/button/link.hbs
index 58934ff0099f53c6c42f5ccef87c1299d5d6597a..fb69410d0c2cb241cb5f64eaaae866d9590006cd 100644
--- a/app/components/button/link.hbs
+++ b/app/components/button/link.hbs
@@ -1,3 +1,5 @@
-<button class="btn btn-link">
+<button
+    class="btn btn-link"
+    {{on "click" @onClick}}>
 {{@text}}
 </button>
\ No newline at end of file
diff --git a/app/components/group/table_row.hbs b/app/components/group/table_row.hbs
index 2f95e366e6776691a83e0147a9a0ea31fbc4d391..dc26c7792c2d559b342d3210ecf7bd65fd13beb1 100644
--- a/app/components/group/table_row.hbs
+++ b/app/components/group/table_row.hbs
@@ -21,7 +21,11 @@
     {{@group.name}}
   </td>
   <td>
-    <Button::Link @text="Edit" {{on "click" (fn this.onEdit @group)}} />
-    <Button::Link @text="Remove" {{on "click" (fn this.onRemove @group)}} />
+    <Button::Link
+      @text="Edit"
+      @onClick={{(fn this.onEdit @group)}} />
+    <Button::Link
+      @text="Remove"
+      @onClick={{(fn this.onRemove @group)}} />
   </td>
 {{/if}}
\ No newline at end of file
diff --git a/app/components/nav/sidebar.hbs b/app/components/nav/sidebar.hbs
index 29f5f00ab64517d8e2eed9a44c371b0d63ab87a4..495962690bede6294f9f0c64c050a014c1ea48c0 100644
--- a/app/components/nav/sidebar.hbs
+++ b/app/components/nav/sidebar.hbs
@@ -30,5 +30,15 @@
           <i class="fas fa-users me-2"></i>Groups
         </LinkTo>
       </li>
+      <li>
+        <LinkTo @route="users" class="nav-link text-white">
+          <i class="fas fa-user-friends me-2"></i>Users
+        </LinkTo>
+      </li>
+      <li>
+        <LinkTo @route="roles" class="nav-link text-white">
+          <i class="fas fa-user me-2"></i>Roles
+        </LinkTo>
+      </li>
     </ul>
 </div>
\ No newline at end of file
diff --git a/app/router.js b/app/router.js
index 616b055e43401768c7010576eb785934b866327a..0434fa72c8bb0eae1eb8ffef0d07908cf1e05c57 100644
--- a/app/router.js
+++ b/app/router.js
@@ -17,6 +17,18 @@ Router.map(function () {
 
   this.route('tags');
 
+  this.route('users', function() {
+    this.route('add');
+    this.route('edit', { path: '/:user_id/edit' });
+    this.route('index', { path: '/' });
+  });
+
+  this.route('roles', function() {
+    this.route('add');
+    this.route('edit', { path: '/:role_id/edit' });
+    this.route('index', { path: '/' });
+  });
+
   this.route('groups', function() {
     this.route('index', { path: '/' });
   });
diff --git a/app/templates/roles/index.hbs b/app/templates/roles/index.hbs
new file mode 100644
index 0000000000000000000000000000000000000000..9f7e2b1f33e764cedc830450b7462ac2a6a32a43
--- /dev/null
+++ b/app/templates/roles/index.hbs
@@ -0,0 +1 @@
+<h1>Roles</h1>
\ No newline at end of file
diff --git a/app/templates/users/index.hbs b/app/templates/users/index.hbs
new file mode 100644
index 0000000000000000000000000000000000000000..5a31ddcdf5919260c8467988e39291af9c6b8210
--- /dev/null
+++ b/app/templates/users/index.hbs
@@ -0,0 +1 @@
+<h1>Users</h1>
\ No newline at end of file