`, and ``.
-@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
-@font-family-base: @font-family-sans-serif;
-
-@font-size-base: 14px;
-@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
-@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
-
-@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
-@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
-@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
-@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
-@font-size-h5: @font-size-base;
-@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-@line-height-base: 1.428571429; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
-
-//** By default, this inherits from the ``.
-@headings-font-family: inherit;
-@headings-font-weight: 500;
-@headings-line-height: 1.1;
-@headings-color: inherit;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-@icon-font-path: "../fonts/";
-//** File name for all font files.
-@icon-font-name: "glyphicons-halflings-regular";
-//** Element ID within SVG icon file.
-@icon-font-svg-id: "glyphicons_halflingsregular";
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-@padding-base-vertical: 6px;
-@padding-base-horizontal: 12px;
-
-@padding-large-vertical: 10px;
-@padding-large-horizontal: 16px;
-
-@padding-small-vertical: 5px;
-@padding-small-horizontal: 10px;
-
-@padding-xs-vertical: 1px;
-@padding-xs-horizontal: 5px;
-
-@line-height-large: 1.33;
-@line-height-small: 1.5;
-
-@border-radius-base: 4px;
-@border-radius-large: 6px;
-@border-radius-small: 3px;
-
-//** Global color for active items (e.g., navs or dropdowns).
-@component-active-color: #fff;
-//** Global background color for active items (e.g., navs or dropdowns).
-@component-active-bg: @brand-primary;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-@caret-width-base: 4px;
-//** Carets increase slightly in size for larger components.
-@caret-width-large: 5px;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for ``s and ` | `s.
-@table-cell-padding: 8px;
-//** Padding for cells in `.table-condensed`.
-@table-condensed-cell-padding: 5px;
-
-//** Default background color used for all tables.
-@table-bg: transparent;
-//** Background color used for `.table-striped`.
-@table-bg-accent: #f9f9f9;
-//** Background color used for `.table-hover`.
-@table-bg-hover: #f5f5f5;
-@table-bg-active: @table-bg-hover;
-
-//** Border color for table and cell borders.
-@table-border-color: #ddd;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-@btn-font-weight: normal;
-
-@btn-default-color: #333;
-@btn-default-bg: #fff;
-@btn-default-border: #ccc;
-
-@btn-primary-color: #fff;
-@btn-primary-bg: @brand-primary;
-@btn-primary-border: darken(@btn-primary-bg, 5%);
-
-@btn-success-color: #fff;
-@btn-success-bg: @brand-success;
-@btn-success-border: darken(@btn-success-bg, 5%);
-
-@btn-info-color: #fff;
-@btn-info-bg: @brand-info;
-@btn-info-border: darken(@btn-info-bg, 5%);
-
-@btn-warning-color: #fff;
-@btn-warning-bg: @brand-warning;
-@btn-warning-border: darken(@btn-warning-bg, 5%);
-
-@btn-danger-color: #fff;
-@btn-danger-bg: @brand-danger;
-@btn-danger-border: darken(@btn-danger-bg, 5%);
-
-@btn-link-disabled-color: @gray-light;
-
-
-//== Forms
-//
-//##
-
-//** `` background color
-@input-bg: #fff;
-//** `` background color
-@input-bg-disabled: @gray-lighter;
-
-//** Text color for ``s
-@input-color: @gray;
-//** `` border color
-@input-border: #ccc;
-
-// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
-//** Default `.form-control` border radius
-@input-border-radius: @border-radius-base;
-//** Large `.form-control` border radius
-@input-border-radius-large: @border-radius-large;
-//** Small `.form-control` border radius
-@input-border-radius-small: @border-radius-small;
-
-//** Border color for inputs on focus
-@input-border-focus: #66afe9;
-
-//** Placeholder text color
-@input-color-placeholder: #999;
-
-//** Default `.form-control` height
-@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
-//** Large `.form-control` height
-@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
-//** Small `.form-control` height
-@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
-
-@legend-color: @gray-dark;
-@legend-border-color: #e5e5e5;
-
-//** Background color for textual input addons
-@input-group-addon-bg: @gray-lighter;
-//** Border color for textual input addons
-@input-group-addon-border-color: @input-border;
-
-//** Disabled cursor for form controls and buttons.
-@cursor-disabled: not-allowed;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-@dropdown-bg: #fff;
-//** Dropdown menu `border-color`.
-@dropdown-border: rgba(0,0,0,.15);
-//** Dropdown menu `border-color` **for IE8**.
-@dropdown-fallback-border: #ccc;
-//** Divider color for between dropdown items.
-@dropdown-divider-bg: #e5e5e5;
-
-//** Dropdown link text color.
-@dropdown-link-color: @gray-dark;
-//** Hover color for dropdown links.
-@dropdown-link-hover-color: darken(@gray-dark, 5%);
-//** Hover background for dropdown links.
-@dropdown-link-hover-bg: #f5f5f5;
-
-//** Active dropdown menu item text color.
-@dropdown-link-active-color: @component-active-color;
-//** Active dropdown menu item background color.
-@dropdown-link-active-bg: @component-active-bg;
-
-//** Disabled dropdown menu item background color.
-@dropdown-link-disabled-color: @gray-light;
-
-//** Text color for headers within dropdown menus.
-@dropdown-header-color: @gray-light;
-
-//** Deprecated `@dropdown-caret-color` as of v3.1.0
-@dropdown-caret-color: #000;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-@zindex-navbar: 1000;
-@zindex-dropdown: 1000;
-@zindex-popover: 1060;
-@zindex-tooltip: 1070;
-@zindex-navbar-fixed: 1030;
-@zindex-modal: 1040;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `@screen-xs` as of v3.0.1
-@screen-xs: 480px;
-//** Deprecated `@screen-xs-min` as of v3.2.0
-@screen-xs-min: @screen-xs;
-//** Deprecated `@screen-phone` as of v3.0.1
-@screen-phone: @screen-xs-min;
-
-// Small screen / tablet
-//** Deprecated `@screen-sm` as of v3.0.1
-@screen-sm: 768px;
-@screen-sm-min: @screen-sm;
-//** Deprecated `@screen-tablet` as of v3.0.1
-@screen-tablet: @screen-sm-min;
-
-// Medium screen / desktop
-//** Deprecated `@screen-md` as of v3.0.1
-@screen-md: 992px;
-@screen-md-min: @screen-md;
-//** Deprecated `@screen-desktop` as of v3.0.1
-@screen-desktop: @screen-md-min;
-
-// Large screen / wide desktop
-//** Deprecated `@screen-lg` as of v3.0.1
-@screen-lg: 1200px;
-@screen-lg-min: @screen-lg;
-//** Deprecated `@screen-lg-desktop` as of v3.0.1
-@screen-lg-desktop: @screen-lg-min;
-
-// So media queries don't overlap when required, provide a maximum
-@screen-xs-max: (@screen-sm-min - 1);
-@screen-sm-max: (@screen-md-min - 1);
-@screen-md-max: (@screen-lg-min - 1);
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-@grid-columns: 12;
-//** Padding between columns. Gets divided in half for the left and right.
-@grid-gutter-width: 30px;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-@grid-float-breakpoint: @screen-sm-min;
-//** Point at which the navbar begins collapsing.
-@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-@container-tablet: (720px + @grid-gutter-width);
-//** For `@screen-sm-min` and up.
-@container-sm: @container-tablet;
-
-// Medium screen / desktop
-@container-desktop: (940px + @grid-gutter-width);
-//** For `@screen-md-min` and up.
-@container-md: @container-desktop;
-
-// Large screen / wide desktop
-@container-large-desktop: (1140px + @grid-gutter-width);
-//** For `@screen-lg-min` and up.
-@container-lg: @container-large-desktop;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-@navbar-height: 50px;
-@navbar-margin-bottom: @line-height-computed;
-@navbar-border-radius: @border-radius-base;
-@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
-@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
-@navbar-collapse-max-height: 340px;
-
-@navbar-default-color: #777;
-@navbar-default-bg: #f8f8f8;
-@navbar-default-border: darken(@navbar-default-bg, 6.5%);
-
-// Navbar links
-@navbar-default-link-color: #777;
-@navbar-default-link-hover-color: #333;
-@navbar-default-link-hover-bg: transparent;
-@navbar-default-link-active-color: #555;
-@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);
-@navbar-default-link-disabled-color: #ccc;
-@navbar-default-link-disabled-bg: transparent;
-
-// Navbar brand label
-@navbar-default-brand-color: @navbar-default-link-color;
-@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);
-@navbar-default-brand-hover-bg: transparent;
-
-// Navbar toggle
-@navbar-default-toggle-hover-bg: #ddd;
-@navbar-default-toggle-icon-bar-bg: #888;
-@navbar-default-toggle-border-color: #ddd;
-
-
-// Inverted navbar
-// Reset inverted navbar basics
-@navbar-inverse-color: lighten(@gray-light, 15%);
-@navbar-inverse-bg: #222;
-@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
-
-// Inverted navbar links
-@navbar-inverse-link-color: lighten(@gray-light, 15%);
-@navbar-inverse-link-hover-color: #fff;
-@navbar-inverse-link-hover-bg: transparent;
-@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
-@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);
-@navbar-inverse-link-disabled-color: #444;
-@navbar-inverse-link-disabled-bg: transparent;
-
-// Inverted navbar brand label
-@navbar-inverse-brand-color: @navbar-inverse-link-color;
-@navbar-inverse-brand-hover-color: #fff;
-@navbar-inverse-brand-hover-bg: transparent;
-
-// Inverted navbar toggle
-@navbar-inverse-toggle-hover-bg: #333;
-@navbar-inverse-toggle-icon-bar-bg: #fff;
-@navbar-inverse-toggle-border-color: #333;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-@nav-link-padding: 10px 15px;
-@nav-link-hover-bg: @gray-lighter;
-
-@nav-disabled-link-color: @gray-light;
-@nav-disabled-link-hover-color: @gray-light;
-
-//== Tabs
-@nav-tabs-border-color: #ddd;
-
-@nav-tabs-link-hover-border-color: @gray-lighter;
-
-@nav-tabs-active-link-hover-bg: @body-bg;
-@nav-tabs-active-link-hover-color: @gray;
-@nav-tabs-active-link-hover-border-color: #ddd;
-
-@nav-tabs-justified-link-border-color: #ddd;
-@nav-tabs-justified-active-link-border-color: @body-bg;
-
-//== Pills
-@nav-pills-border-radius: @border-radius-base;
-@nav-pills-active-link-hover-bg: @component-active-bg;
-@nav-pills-active-link-hover-color: @component-active-color;
-
-
-//== Pagination
-//
-//##
-
-@pagination-color: @link-color;
-@pagination-bg: #fff;
-@pagination-border: #ddd;
-
-@pagination-hover-color: @link-hover-color;
-@pagination-hover-bg: @gray-lighter;
-@pagination-hover-border: #ddd;
-
-@pagination-active-color: #fff;
-@pagination-active-bg: @brand-primary;
-@pagination-active-border: @brand-primary;
-
-@pagination-disabled-color: @gray-light;
-@pagination-disabled-bg: #fff;
-@pagination-disabled-border: #ddd;
-
-
-//== Pager
-//
-//##
-
-@pager-bg: @pagination-bg;
-@pager-border: @pagination-border;
-@pager-border-radius: 15px;
-
-@pager-hover-bg: @pagination-hover-bg;
-
-@pager-active-bg: @pagination-active-bg;
-@pager-active-color: @pagination-active-color;
-
-@pager-disabled-color: @pagination-disabled-color;
-
-
-//== Jumbotron
-//
-//##
-
-@jumbotron-padding: 30px;
-@jumbotron-color: inherit;
-@jumbotron-bg: @gray-lighter;
-@jumbotron-heading-color: inherit;
-@jumbotron-font-size: ceil((@font-size-base * 1.5));
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-@state-success-text: #3c763d;
-@state-success-bg: #dff0d8;
-@state-success-border: darken(spin(@state-success-bg, -10), 5%);
-
-@state-info-text: #31708f;
-@state-info-bg: #d9edf7;
-@state-info-border: darken(spin(@state-info-bg, -10), 7%);
-
-@state-warning-text: #8a6d3b;
-@state-warning-bg: #fcf8e3;
-@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
-
-@state-danger-text: #a94442;
-@state-danger-bg: #f2dede;
-@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-@tooltip-max-width: 200px;
-//** Tooltip text color
-@tooltip-color: #fff;
-//** Tooltip background color
-@tooltip-bg: #000;
-@tooltip-opacity: .9;
-
-//** Tooltip arrow width
-@tooltip-arrow-width: 5px;
-//** Tooltip arrow color
-@tooltip-arrow-color: @tooltip-bg;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-@popover-bg: #fff;
-//** Popover maximum width
-@popover-max-width: 276px;
-//** Popover border color
-@popover-border-color: rgba(0,0,0,.2);
-//** Popover fallback border color
-@popover-fallback-border-color: #ccc;
-
-//** Popover title background color
-@popover-title-bg: darken(@popover-bg, 3%);
-
-//** Popover arrow width
-@popover-arrow-width: 10px;
-//** Popover arrow color
-@popover-arrow-color: @popover-bg;
-
-//** Popover outer arrow width
-@popover-arrow-outer-width: (@popover-arrow-width + 1);
-//** Popover outer arrow color
-@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
-//** Popover outer arrow fallback color
-@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-@label-default-bg: @gray-light;
-//** Primary label background color
-@label-primary-bg: @brand-primary;
-//** Success label background color
-@label-success-bg: @brand-success;
-//** Info label background color
-@label-info-bg: @brand-info;
-//** Warning label background color
-@label-warning-bg: @brand-warning;
-//** Danger label background color
-@label-danger-bg: @brand-danger;
-
-//** Default label text color
-@label-color: #fff;
-//** Default text color of a linked label
-@label-link-hover-color: #fff;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-@modal-inner-padding: 15px;
-
-//** Padding applied to the modal title
-@modal-title-padding: 15px;
-//** Modal title line-height
-@modal-title-line-height: @line-height-base;
-
-//** Background color of modal content area
-@modal-content-bg: #fff;
-//** Modal content border color
-@modal-content-border-color: rgba(0,0,0,.2);
-//** Modal content border color **for IE8**
-@modal-content-fallback-border-color: #999;
-
-//** Modal backdrop background color
-@modal-backdrop-bg: #000;
-//** Modal backdrop opacity
-@modal-backdrop-opacity: .5;
-//** Modal header border color
-@modal-header-border-color: #e5e5e5;
-//** Modal footer border color
-@modal-footer-border-color: @modal-header-border-color;
-
-@modal-lg: 900px;
-@modal-md: 600px;
-@modal-sm: 300px;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-@alert-padding: 15px;
-@alert-border-radius: @border-radius-base;
-@alert-link-font-weight: bold;
-
-@alert-success-bg: @state-success-bg;
-@alert-success-text: @state-success-text;
-@alert-success-border: @state-success-border;
-
-@alert-info-bg: @state-info-bg;
-@alert-info-text: @state-info-text;
-@alert-info-border: @state-info-border;
-
-@alert-warning-bg: @state-warning-bg;
-@alert-warning-text: @state-warning-text;
-@alert-warning-border: @state-warning-border;
-
-@alert-danger-bg: @state-danger-bg;
-@alert-danger-text: @state-danger-text;
-@alert-danger-border: @state-danger-border;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-@progress-bg: #f5f5f5;
-//** Progress bar text color
-@progress-bar-color: #fff;
-//** Variable for setting rounded corners on progress bar.
-@progress-border-radius: @border-radius-base;
-
-//** Default progress bar color
-@progress-bar-bg: @brand-primary;
-//** Success progress bar color
-@progress-bar-success-bg: @brand-success;
-//** Warning progress bar color
-@progress-bar-warning-bg: @brand-warning;
-//** Danger progress bar color
-@progress-bar-danger-bg: @brand-danger;
-//** Info progress bar color
-@progress-bar-info-bg: @brand-info;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-@list-group-bg: #fff;
-//** `.list-group-item` border color
-@list-group-border: #ddd;
-//** List group border radius
-@list-group-border-radius: @border-radius-base;
-
-//** Background color of single list items on hover
-@list-group-hover-bg: #f5f5f5;
-//** Text color of active list items
-@list-group-active-color: @component-active-color;
-//** Background color of active list items
-@list-group-active-bg: @component-active-bg;
-//** Border color of active list elements
-@list-group-active-border: @list-group-active-bg;
-//** Text color for content within active list items
-@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
-
-//** Text color of disabled list items
-@list-group-disabled-color: @gray-light;
-//** Background color of disabled list items
-@list-group-disabled-bg: @gray-lighter;
-//** Text color for content within disabled list items
-@list-group-disabled-text-color: @list-group-disabled-color;
-
-@list-group-link-color: #555;
-@list-group-link-hover-color: @list-group-link-color;
-@list-group-link-heading-color: #333;
-
-
-//== Panels
-//
-//##
-
-@panel-bg: #fff;
-@panel-body-padding: 15px;
-@panel-heading-padding: 10px 15px;
-@panel-footer-padding: @panel-heading-padding;
-@panel-border-radius: @border-radius-base;
-
-//** Border color for elements within panels
-@panel-inner-border: #ddd;
-@panel-footer-bg: #f5f5f5;
-
-@panel-default-text: @gray-dark;
-@panel-default-border: #ddd;
-@panel-default-heading-bg: #f5f5f5;
-
-@panel-primary-text: #fff;
-@panel-primary-border: @brand-primary;
-@panel-primary-heading-bg: @brand-primary;
-
-@panel-success-text: @state-success-text;
-@panel-success-border: @state-success-border;
-@panel-success-heading-bg: @state-success-bg;
-
-@panel-info-text: @state-info-text;
-@panel-info-border: @state-info-border;
-@panel-info-heading-bg: @state-info-bg;
-
-@panel-warning-text: @state-warning-text;
-@panel-warning-border: @state-warning-border;
-@panel-warning-heading-bg: @state-warning-bg;
-
-@panel-danger-text: @state-danger-text;
-@panel-danger-border: @state-danger-border;
-@panel-danger-heading-bg: @state-danger-bg;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-@thumbnail-padding: 4px;
-//** Thumbnail background color
-@thumbnail-bg: @body-bg;
-//** Thumbnail border color
-@thumbnail-border: #ddd;
-//** Thumbnail border radius
-@thumbnail-border-radius: @border-radius-base;
-
-//** Custom text color for thumbnail captions
-@thumbnail-caption-color: @text-color;
-//** Padding around the thumbnail caption
-@thumbnail-caption-padding: 9px;
-
-
-//== Wells
-//
-//##
-
-@well-bg: #f5f5f5;
-@well-border: darken(@well-bg, 7%);
-
-
-//== Badges
-//
-//##
-
-@badge-color: #fff;
-//** Linked badge text color on hover
-@badge-link-hover-color: #fff;
-@badge-bg: @gray-light;
-
-//** Badge text color in active nav link
-@badge-active-color: @link-color;
-//** Badge background color in active nav link
-@badge-active-bg: #fff;
-
-@badge-font-weight: bold;
-@badge-line-height: 1;
-@badge-border-radius: 10px;
-
-
-//== Breadcrumbs
-//
-//##
-
-@breadcrumb-padding-vertical: 8px;
-@breadcrumb-padding-horizontal: 15px;
-//** Breadcrumb background color
-@breadcrumb-bg: #f5f5f5;
-//** Breadcrumb text color
-@breadcrumb-color: #ccc;
-//** Text color of current page in the breadcrumb
-@breadcrumb-active-color: @gray-light;
-//** Textual separator for between breadcrumb elements
-@breadcrumb-separator: "/";
-
-
-//== Carousel
-//
-//##
-
-@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
-
-@carousel-control-color: #fff;
-@carousel-control-width: 15%;
-@carousel-control-opacity: .5;
-@carousel-control-font-size: 20px;
-
-@carousel-indicator-active-bg: #fff;
-@carousel-indicator-border-color: #fff;
-
-@carousel-caption-color: #fff;
-
-
-//== Close
-//
-//##
-
-@close-font-weight: bold;
-@close-color: #000;
-@close-text-shadow: 0 1px 0 #fff;
-
-
-//== Code
-//
-//##
-
-@code-color: #c7254e;
-@code-bg: #f9f2f4;
-
-@kbd-color: #fff;
-@kbd-bg: #333;
-
-@pre-bg: #f5f5f5;
-@pre-color: @gray-dark;
-@pre-border-color: #ccc;
-@pre-scrollable-max-height: 340px;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-@component-offset-horizontal: 180px;
-//** Text muted color
-@text-muted: @gray-light;
-//** Abbreviations and acronyms border color
-@abbr-border-color: @gray-light;
-//** Headings small color
-@headings-small-color: @gray-light;
-//** Blockquote small color
-@blockquote-small-color: @gray-light;
-//** Blockquote font size
-@blockquote-font-size: (@font-size-base * 1.25);
-//** Blockquote border color
-@blockquote-border-color: @gray-lighter;
-//** Page header border color
-@page-header-border-color: @gray-lighter;
-//** Width of horizontal description list titles
-@dl-horizontal-offset: @component-offset-horizontal;
-//** Horizontal line color.
-@hr-border: @gray-lighter;
diff --git a/resources/assets/less/bootstrap/wells.less b/resources/assets/less/bootstrap/wells.less
deleted file mode 100755
index 15d072b..0000000
--- a/resources/assets/less/bootstrap/wells.less
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// Wells
-// --------------------------------------------------
-
-
-// Base class
-.well {
- min-height: 20px;
- padding: 19px;
- margin-bottom: 20px;
- background-color: @well-bg;
- border: 1px solid @well-border;
- border-radius: @border-radius-base;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
- blockquote {
- border-color: #ddd;
- border-color: rgba(0,0,0,.15);
- }
-}
-
-// Sizes
-.well-lg {
- padding: 24px;
- border-radius: @border-radius-large;
-}
-.well-sm {
- padding: 9px;
- border-radius: @border-radius-small;
-}
diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php
deleted file mode 100755
index 13b4dcb..0000000
--- a/resources/lang/en/pagination.php
+++ /dev/null
@@ -1,19 +0,0 @@
- '« Previous',
- 'next' => 'Next »',
-
-];
diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php
deleted file mode 100755
index 1fc0e1e..0000000
--- a/resources/lang/en/passwords.php
+++ /dev/null
@@ -1,22 +0,0 @@
- "Passwords must be at least six characters and match the confirmation.",
- "user" => "We can't find a user with that e-mail address.",
- "token" => "This password reset token is invalid.",
- "sent" => "We have e-mailed your password reset link!",
- "reset" => "Your password has been reset!",
-
-];
diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php
deleted file mode 100755
index 764f056..0000000
--- a/resources/lang/en/validation.php
+++ /dev/null
@@ -1,107 +0,0 @@
- "The :attribute must be accepted.",
- "active_url" => "The :attribute is not a valid URL.",
- "after" => "The :attribute must be a date after :date.",
- "alpha" => "The :attribute may only contain letters.",
- "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.",
- "alpha_num" => "The :attribute may only contain letters and numbers.",
- "array" => "The :attribute must be an array.",
- "before" => "The :attribute must be a date before :date.",
- "between" => [
- "numeric" => "The :attribute must be between :min and :max.",
- "file" => "The :attribute must be between :min and :max kilobytes.",
- "string" => "The :attribute must be between :min and :max characters.",
- "array" => "The :attribute must have between :min and :max items.",
- ],
- "boolean" => "The :attribute field must be true or false.",
- "confirmed" => "The :attribute confirmation does not match.",
- "date" => "The :attribute is not a valid date.",
- "date_format" => "The :attribute does not match the format :format.",
- "different" => "The :attribute and :other must be different.",
- "digits" => "The :attribute must be :digits digits.",
- "digits_between" => "The :attribute must be between :min and :max digits.",
- "email" => "The :attribute must be a valid email address.",
- "filled" => "The :attribute field is required.",
- "exists" => "The selected :attribute is invalid.",
- "image" => "The :attribute must be an image.",
- "in" => "The selected :attribute is invalid.",
- "integer" => "The :attribute must be an integer.",
- "ip" => "The :attribute must be a valid IP address.",
- "max" => [
- "numeric" => "The :attribute may not be greater than :max.",
- "file" => "The :attribute may not be greater than :max kilobytes.",
- "string" => "The :attribute may not be greater than :max characters.",
- "array" => "The :attribute may not have more than :max items.",
- ],
- "mimes" => "The :attribute must be a file of type: :values.",
- "min" => [
- "numeric" => "The :attribute must be at least :min.",
- "file" => "The :attribute must be at least :min kilobytes.",
- "string" => "The :attribute must be at least :min characters.",
- "array" => "The :attribute must have at least :min items.",
- ],
- "not_in" => "The selected :attribute is invalid.",
- "numeric" => "The :attribute must be a number.",
- "regex" => "The :attribute format is invalid.",
- "required" => "The :attribute field is required.",
- "required_if" => "The :attribute field is required when :other is :value.",
- "required_with" => "The :attribute field is required when :values is present.",
- "required_with_all" => "The :attribute field is required when :values is present.",
- "required_without" => "The :attribute field is required when :values is not present.",
- "required_without_all" => "The :attribute field is required when none of :values are present.",
- "same" => "The :attribute and :other must match.",
- "size" => [
- "numeric" => "The :attribute must be :size.",
- "file" => "The :attribute must be :size kilobytes.",
- "string" => "The :attribute must be :size characters.",
- "array" => "The :attribute must contain :size items.",
- ],
- "unique" => "The :attribute has already been taken.",
- "url" => "The :attribute format is invalid.",
- "timezone" => "The :attribute must be a valid zone.",
-
- /*
- |--------------------------------------------------------------------------
- | Custom Validation Language Lines
- |--------------------------------------------------------------------------
- |
- | Here you may specify custom validation messages for attributes using the
- | convention "attribute.rule" to name the lines. This makes it quick to
- | specify a specific custom language line for a given attribute rule.
- |
- */
-
- 'custom' => [
- 'attribute-name' => [
- 'rule-name' => 'custom-message',
- ],
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Custom Validation Attributes
- |--------------------------------------------------------------------------
- |
- | The following language lines are used to swap attribute place-holders
- | with something more reader friendly such as E-Mail Address instead
- | of "email". This simply helps us make messages a little cleaner.
- |
- */
-
- 'attributes' => [],
-
-];
diff --git a/resources/views/admin/group/search.blade.php b/resources/views/admin/group/search.blade.php
deleted file mode 100755
index 4afc2f2..0000000
--- a/resources/views/admin/group/search.blade.php
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- Group search
-
-
- {!! Form::open(['route' => 'groups.list','method' => 'get']) !!}
-
-
- {!! Form::label('name','Name:') !!}
- {!! Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'group name']) !!}
-
- {!! $errors->first('name') !!}
- {!! Form::submit('Search', ["class" => "btn btn-info pull-right"]) !!}
- {!! Form::close() !!}
-
-
\ No newline at end of file
diff --git a/resources/views/admin/layouts/partials/avatar.blade.php b/resources/views/admin/layouts/partials/avatar.blade.php
deleted file mode 100755
index c930655..0000000
--- a/resources/views/admin/layouts/partials/avatar.blade.php
+++ /dev/null
@@ -1,5 +0,0 @@
-@if(isset($logged_user) && $logged_user->user_profile()->count())
-
-@else
-
-@endif
\ No newline at end of file
diff --git a/resources/views/admin/layouts/sidebar.blade.php b/resources/views/admin/layouts/sidebar.blade.php
deleted file mode 100755
index 21b9371..0000000
--- a/resources/views/admin/layouts/sidebar.blade.php
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/resources/views/admin/mail/registration-activated-client.blade.php b/resources/views/admin/mail/registration-activated-client.blade.php
deleted file mode 100755
index 6f97aa4..0000000
--- a/resources/views/admin/mail/registration-activated-client.blade.php
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') !!}
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') !!}
-
-
-Welcome to {!! Config::get('acl_base.app_name')!!}
-
- Dear: {!! $body['email'] !!}
- Your email has been confirmed successfully.
- You can now login to the website using the
- Following link.
-
-
-
diff --git a/resources/views/admin/mail/registration-confirmed-client.blade.php b/resources/views/admin/mail/registration-confirmed-client.blade.php
deleted file mode 100755
index ca7cda8..0000000
--- a/resources/views/admin/mail/registration-confirmed-client.blade.php
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') !!}
-
-
-Welcome to: {!! Config::get('acl_base.app_name') !!}
-
- Dear: {!! $body['first_name'] !!}
- You account has been created. You can now login to the website using the
- Following link.
-
- Please find your account details below:
-
- - Username: {!! $body['email']!!}
- - Password: {!! $body['password']!!}
-
-
-
-
\ No newline at end of file
diff --git a/resources/views/admin/mail/registration-waiting-client.blade.php b/resources/views/admin/mail/registration-waiting-client.blade.php
deleted file mode 100755
index 99b8c3f..0000000
--- a/resources/views/admin/mail/registration-waiting-client.blade.php
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') !!}
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') !!}
-
-
- Registration request on: {!!Config::get('acl_base.app_name')!!}
-
- Dear: {!!$body['first_name']!!}
- You account has been created. However, before you can use it you need to confirm your email address first by clicking the
- Following link
-
- Please find your account details below:
-
- - Username: {!!$body['email']!!}
- - Password: {!!$body['password']!!}
-
-
-
-
\ No newline at end of file
diff --git a/resources/views/admin/mail/reminder.blade.php b/resources/views/admin/mail/reminder.blade.php
deleted file mode 100755
index 64c59f9..0000000
--- a/resources/views/admin/mail/reminder.blade.php
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') !!}
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') !!}
-
-
- Password recovery for {!! Config::get('acl_base.app_name') !!}
-
- We received a request to change your password, if you authorize it {!! $body !!}
- Otherwise ignore this email.
-
-
-
\ No newline at end of file
diff --git a/resources/views/admin/permission/edit.blade.php b/resources/views/admin/permission/edit.blade.php
deleted file mode 100755
index 0ff706b..0000000
--- a/resources/views/admin/permission/edit.blade.php
+++ /dev/null
@@ -1,59 +0,0 @@
-@extends('laravel-authentication-acl::admin.layouts.base-2cols')
-
-@section('title')
-Admin area: edit permission
-@stop
-
-@section('content')
-
-
-
- {{-- model general errors from the form --}}
- @if($errors->has('model') )
- {{$errors->first('model')}}
- @endif
-
- {{-- successful message --}}
-
- @if( isset($message) )
- {{$message}}
- @endif
-
-
- {!! isset($permission->id) ? ' Edit' : ' Create' !!} permission
-
-
- {!! Form::model($permission, [ 'url' => [URL::route('permission.edit'), $permission->id], 'method' => 'post'] ) !!}
-
-
- {!! Form::label('description','Description: *') !!}
- {!! Form::text('description', null, ['class' => 'form-control', 'placeholder' => 'permission description', 'id' => 'slugme']) !!}
-
- {!! $errors->first('description') !!}
-
-
- {!! Form::label('permission','Permission: *') !!}
- {!! Form::text('permission', null, ['class' => 'form-control', 'placeholder' => 'permission description', 'id' => 'slug']) !!}
-
- {!! $errors->first('permission') !!}
- {!! Form::hidden('id') !!}
- Delete
- {!! Form::submit('Save', array("class"=>"btn btn-info pull-right ")) !!}
- {!! Form::close() !!}
-
-
-
-
-@stop
-
-@section('footer_scripts')
-{!! HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/slugit.js') !!}
-
-@stop
\ No newline at end of file
diff --git a/resources/views/admin/user/edit.blade.php b/resources/views/admin/user/edit.blade.php
deleted file mode 100755
index 676ecaa..0000000
--- a/resources/views/admin/user/edit.blade.php
+++ /dev/null
@@ -1,91 +0,0 @@
-@extends('laravel-authentication-acl::admin.layouts.base-2cols')
-
-@section('title')
-Admin area: edit user
-@stop
-
-@section('content')
-
-
-
- {{-- successful message --}}
-
- @if( isset($message) )
- {!! $message !!}
- @endif
- @if($errors->has('model') )
- {!! $errors->first('model') !!}
- @endif
-
-
-
-
- {!! isset($user->id) ? ' Edit' : ' Create' !!} user
-
-
-
-
-
-
- Login data
- {!! Form::model($user, [ 'url' => URL::route('users.edit')] ) !!}
- {{-- Field hidden to fix chrome and safari autocomplete bug --}}
- {!! Form::password('__to_hide_password_autocomplete', ['class' => 'hidden']) !!}
-
-
- {!! Form::label('email','Email: *') !!}
- {!! Form::text('email', null, ['class' => 'form-control', 'placeholder' => 'user email', 'autocomplete' => 'off']) !!}
-
- {!! $errors->first('email') !!}
-
-
- {!! Form::label('password',isset($user->id) ? "Change password: " : "Password: ") !!}
- {!! Form::password('password', ['class' => 'form-control', 'autocomplete' => 'off', 'placeholder' => '']) !!}
-
- {!! $errors->first('password') !!}
-
-
- {!! Form::label('password_confirmation',isset($user->id) ? "Confirm change password: " : "Confirm password: ") !!}
- {!! Form::password('password_confirmation', ['class' => 'form-control', 'placeholder' => '','autocomplete' => 'off']) !!}
-
- {!! $errors->first('password_confirmation') !!}
-
- {!! Form::label("activated","User active: ") !!}
- {!! Form::select('activated', ["1" => "Yes", "0" => "No"], (isset($user->activated) && $user->activated) ? $user->activated : "0", ["class"=> "form-control"] ) !!}
-
-
- {!! Form::label("banned","Banned: ") !!}
- {!! Form::select('banned', ["1" => "Yes", "0" => "No"], (isset($user->banned) && $user->banned) ? $user->banned : "0", ["class"=> "form-control"] ) !!}
-
- {!! Form::hidden('id') !!}
- {!! Form::hidden('form_name','user') !!}
- Delete user
- {!! Form::submit('Save', array("class"=>"btn btn-info pull-right ")) !!}
- {!! Form::close() !!}
-
-
- Groups
- @include('laravel-authentication-acl::admin.user.groups')
-
- {{-- group permission form --}}
- Permission
- {{-- permissions --}}
- @include('laravel-authentication-acl::admin.user.perm')
-
-
-
-
-
-@stop
-
-@section('footer_scripts')
-
-@stop
\ No newline at end of file
diff --git a/resources/views/admin/user/partials/avatar_upload.blade.php b/resources/views/admin/user/partials/avatar_upload.blade.php
deleted file mode 100755
index de4d85c..0000000
--- a/resources/views/admin/user/partials/avatar_upload.blade.php
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- Avatar
-
- ->avatar !!})
-
-
-
- {!! Form::open(['route' => 'users.profile.changeavatar', 'method' => 'POST', 'files' => true]) !!}
- {!! Form::label('avatar',$user_profile->avatar ? 'Change avatar: ' : 'Upload avatar: ') !!}
-
- {!! Form::file('avatar', ['class' => 'form-control']) !!}
- {!! $errors->first('avatar') !!}
-
- {!! Form::hidden('user_id', $user_profile->user_id) !!}
- {!! Form::hidden('user_profile_id', $user_profile->id) !!}
-
- {!! Form::submit('Update avatar', ['class' => 'btn btn-info']) !!}
-
- {!! Form::close() !!}
-
-
\ No newline at end of file
diff --git a/resources/views/admin/user/partials/sorting.blade.php b/resources/views/admin/user/partials/sorting.blade.php
deleted file mode 100755
index 826c5d3..0000000
--- a/resources/views/admin/user/partials/sorting.blade.php
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-@section('footer_scripts')
-@parent
-{!! HTML::script('packages/jacopo/laravel-authentication-acl/js/custom-ordering.js') !!}
-@stop
\ No newline at end of file
diff --git a/resources/views/admin/user/profile.blade.php b/resources/views/admin/user/profile.blade.php
deleted file mode 100755
index 2cb516e..0000000
--- a/resources/views/admin/user/profile.blade.php
+++ /dev/null
@@ -1,126 +0,0 @@
-@extends('laravel-authentication-acl::admin.layouts.base-2cols')
-
-@section('title')
-Admin area: Edit user profile
-@stop
-
-@section('content')
-
-
-
- {{-- success message --}}
-
- @if( isset($message) )
- {!! $message !!}
- @endif
- @if( $errors->has('model') )
- {!! $errors->first('model') !!}
- @endif
-
-
-
-
-
-
- @if(! $use_gravatar)
- @include('laravel-authentication-acl::admin.user.partials.avatar_upload')
- @else
- @include('laravel-authentication-acl::admin.user.partials.show_gravatar')
- @endif
- User data
- {!! Form::model($user_profile,['route'=>'users.profile.edit', 'method' => 'post']) !!}
-
-
- {!! Form::label('code','User code:') !!}
- {!! Form::text('code', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('code') !!}
-
-
- {!! Form::label('first_name','First name:') !!}
- {!! Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('first_name') !!}
-
-
- {!! Form::label('last_name','Last name: ') !!}
- {!! Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('last_name') !!}
-
-
- {!! Form::label('phone','Phone: ') !!}
- {!! Form::text('phone', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('phone') !!}
-
-
- {!! Form::label('state','State: ') !!}
- {!! Form::text('state', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('state') !!}
-
-
- {!! Form::label('var','Vat: ') !!}
- {!! Form::text('var', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('vat') !!}
-
-
- {!! Form::label('city','City: ') !!}
- {!! Form::text('city', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('city') !!}
-
-
- {!! Form::label('country','Country: ') !!}
- {!! Form::text('country', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('country') !!}
-
-
- {!! Form::label('zip','Zip: ') !!}
- {!! Form::text('zip', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('zip') !!}
-
-
- {!! Form::label('address','Address: ') !!}
- {!! Form::text('address', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('address') !!}
- {{-- custom profile fields --}}
- @foreach($custom_profile->getAllTypesWithValues() as $profile_data)
-
- {!! Form::label($profile_data->description) !!}
- {!! Form::text("custom_profile_{$profile_data->id}", $profile_data->value, ["class" => "form-control"]) !!}
- {{-- delete field --}}
-
- @endforeach
-
- {!! Form::hidden('user_id', $user_profile->user_id) !!}
- {!! Form::hidden('id', $user_profile->id) !!}
- {!! Form::submit('Save',['class' =>'btn btn-info pull-right margin-bottom-30']) !!}
- {!! Form::close() !!}
-
-
- @if($can_add_fields)
- @include('laravel-authentication-acl::admin.user.custom-profile')
- @endif
-
-
-
-
-
-
-@stop
diff --git a/resources/views/admin/user/search.blade.php b/resources/views/admin/user/search.blade.php
deleted file mode 100755
index be9c8dc..0000000
--- a/resources/views/admin/user/search.blade.php
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
- User search
-
-
- {!! Form::open(['route' => 'users.list','method' => 'get']) !!}
-
-
- {!! Form::label('email','Email: ') !!}
- {!! Form::text('email', null, ['class' => 'form-control', 'placeholder' => 'user email']) !!}
-
- {!! $errors->first('email') !!}
-
-
- {!! Form::label('first_name','First name: ') !!}
- {!! Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => 'first name']) !!}
-
- {!! $errors->first('first_name') !!}
-
-
- {!! Form::label('last_name','Last name:') !!}
- {!! Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => 'last name']) !!}
-
- {!! $errors->first('last_name') !!}
-
-
- {!! Form::label('zip','Zip:') !!}
- {!! Form::text('zip', null, ['class' => 'form-control', 'placeholder' => 'zip']) !!}
-
- {!! $errors->first('zip') !!}
-
-
- {!! Form::label('code','User code:') !!}
- {!! Form::text('code', null, ['class' => 'form-control', 'placeholder' => 'user code']) !!}
-
- {!! $errors->first('code') !!}
-
- {!! Form::label('activated', 'Active: ') !!}
- {!! Form::select('activated', ['' => 'Any', 1 => 'Yes', 0 => 'No'], $request->get('activated',''), ["class" => "form-control"]) !!}
-
-
- {!! Form::label('banned', 'Banned: ') !!}
- {!! Form::select('banned', ['' => 'Any', 1 => 'Yes', 0 => 'No'], $request->get('banned',''), ["class" => "form-control"]) !!}
-
-
- {!! Form::label('group_id', 'Group: ') !!}
-
- {!! Form::select('group_id', $group_values, $request->get('group_id',''), ["class" => "form-control"]) !!}
-
- @include('laravel-authentication-acl::admin.user.partials.sorting')
-
- {!! Form::close() !!}
-
-
\ No newline at end of file
diff --git a/resources/views/admin/user/self-profile.blade.php b/resources/views/admin/user/self-profile.blade.php
deleted file mode 100755
index baae087..0000000
--- a/resources/views/admin/user/self-profile.blade.php
+++ /dev/null
@@ -1,134 +0,0 @@
-@extends('laravel-authentication-acl::admin.layouts.base-2cols')
-
-@section('title')
-Admin area: Edit user profile
-@stop
-
-@section('content')
-
-
-
- {{-- success message --}}
-
- @if( isset($message) )
- {!! $message !!}
- @endif
- @if( $errors->has('model') )
- {!! $errors->first('model') !!}
- @endif
-
-
-
-
-
- @if(! $use_gravatar)
- @include('laravel-authentication-acl::admin.user.partials.avatar_upload')
- @else
- @include('laravel-authentication-acl::admin.user.partials.show_gravatar')
- @endif
- User data
- {!! Form::model($user_profile,['route'=>'users.profile.edit', 'method' => 'post']) !!}
-
-
- {!! Form::label('password','new password:') !!}
- {!! Form::password('password', ['class' => 'form-control']) !!}
-
- {!! $errors->first('password') !!}
-
-
- {!! Form::label('password_confirmation','confirm password:') !!}
- {!! Form::password('password_confirmation', ['class' => 'form-control']) !!}
-
-
-
- {!! Form::label('code','User code:') !!}
- {!! Form::text('code', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('code') !!}
-
-
- {!! Form::label('first_name','First name:') !!}
- {!! Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('first_name') !!}
-
-
- {!! Form::label('last_name','Last name: ') !!}
- {!! Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('last_name') !!}
-
-
- {!! Form::label('phone','Phone: ') !!}
- {!! Form::text('phone', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('phone') !!}
-
-
- {!! Form::label('state','State: ') !!}
- {!! Form::text('state', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('state') !!}
-
-
- {!! Form::label('var','Vat: ') !!}
- {!! Form::text('var', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('vat') !!}
-
-
- {!! Form::label('city','City: ') !!}
- {!! Form::text('city', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('city') !!}
-
-
- {!! Form::label('country','Country: ') !!}
- {!! Form::text('country', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('country') !!}
-
-
- {!! Form::label('zip','Zip: ') !!}
- {!! Form::text('zip', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('zip') !!}
-
-
- {!! Form::label('address','Address: ') !!}
- {!! Form::text('address', null, ['class' => 'form-control', 'placeholder' => '']) !!}
-
- {!! $errors->first('address') !!}
- {{-- custom profile fields --}}
- @foreach($custom_profile->getAllTypesWithValues() as $profile_data)
-
- {!! Form::label($profile_data->description) !!}
- {!! Form::text("custom_profile_{$profile_data->id}", $profile_data->value, ["class" => "form-control"]) !!}
- {{-- delete field --}}
-
- @endforeach
-
- {!! Form::hidden('user_id', $user_profile->user_id) !!}
- {!! Form::hidden('id', $user_profile->id) !!}
- {!! Form::submit('Save',['class' =>'btn btn-info pull-right margin-bottom-30']) !!}
- {!! Form::close() !!}
-
-
-
- @if($can_add_fields)
- @include('laravel-authentication-acl::admin.user.custom-profile')
- @endif
-
-
-
-
-
-
-
-@stop
diff --git a/resources/views/client/auth/captcha-image.blade.php b/resources/views/client/auth/captcha-image.blade.php
deleted file mode 100755
index 9ce9383..0000000
--- a/resources/views/client/auth/captcha-image.blade.php
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/server.php b/server.php
deleted file mode 100755
index 8f37587..0000000
--- a/server.php
+++ /dev/null
@@ -1,21 +0,0 @@
-
- */
-
-$uri = urldecode(
- parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
-);
-
-// This file allows us to emulate Apache's "mod_rewrite" functionality from the
-// built-in PHP web server. This provides a convenient way to test a Laravel
-// application without having installed a "real" web server software here.
-if ($uri !== '/' and file_exists(__DIR__.'/public'.$uri))
-{
- return false;
-}
-
-require_once __DIR__.'/public/index.php';
diff --git a/src/Jacopo/Authentication/AuthenticationServiceProvider.php b/src/Jacopo/Authentication/AuthenticationServiceProvider.php
new file mode 100755
index 0000000..53f6f77
--- /dev/null
+++ b/src/Jacopo/Authentication/AuthenticationServiceProvider.php
@@ -0,0 +1,220 @@
+loadOtherProviders();
+ $this->registerAliases();
+ }
+
+ /**
+ * @override
+ */
+ public function boot()
+ {
+ $this->package('jacopo/laravel-authentication-acl');
+
+ $this->bindClasses();
+
+ // include filters
+ require __DIR__ . "/../../filters.php";
+ // include routes.php
+ require __DIR__ . "/../../routes.php";
+ // include view composers
+ require __DIR__ . "/../../composers.php";
+ // include event subscribers
+ require __DIR__ . "/../../subscribers.php";
+ // include custom validators
+ require __DIR__ . "/../../validators.php";
+
+ $this->overwriteSentryConfig();
+
+ $this->setupConnection();
+
+ $this->registerCommands();
+
+ $this->setupAcceptanceTestingParams();
+ }
+
+ protected function overwriteSentryConfig()
+ {
+ $this->app['config']->getLoader()->addNamespace('cartalyst/sentry',
+ __DIR__ . '/../../config/sentry');
+ }
+
+ protected function bindClasses()
+ {
+ $this->app->bind('authenticator', function ()
+ {
+ return new SentryAuthenticator;
+ });
+
+ $this->app->bind('Jacopo\Authentication\Interfaces\AuthenticateInterface', function ()
+ {
+ return $this->app['authenticator'];
+ });
+
+ $this->app->bind('authentication_helper', function ()
+ {
+ return new SentryAuthenticationHelper;
+ });
+
+ $this->app->bind('user_repository', function ($app, $config = null)
+ {
+ return new SentryUserRepository($config);
+ });
+
+ $this->app->bind('group_repository', function ()
+ {
+ return new SentryGroupRepository;
+ });
+
+ $this->app->bind('permission_repository', function ()
+ {
+ return new EloquentPermissionRepository;
+ });
+
+ $this->app->bind('profile_repository', function ()
+ {
+ return new EloquentUserProfileRepository;
+ });
+
+ $this->app->bind('register_service', function ()
+ {
+ return new UserRegisterService;
+ });
+
+ $this->app->bind('custom_profile_repository', function ($app, $profile_id = null)
+ {
+ return new CustomProfileRepository($profile_id);
+ });
+
+ $this->app->bind('captcha_validator', function ($app)
+ {
+ return new GregWarCaptchaValidator();
+ });
+ }
+
+ protected function loadOtherProviders()
+ {
+ $this->app->register('Jacopo\Library\LibraryServiceProvider');
+ $this->app->register('Cartalyst\Sentry\SentryServiceProvider');
+ $this->app->register('Intervention\Image\ImageServiceProvider');
+ }
+
+ protected function registerAliases()
+ {
+ AliasLoader::getInstance()->alias("Sentry", 'Cartalyst\Sentry\Facades\Laravel\Sentry');
+ AliasLoader::getInstance()->alias("Image", 'Intervention\Image\Facades\Image');
+ }
+
+ protected function setupConnection()
+ {
+ $connection = Config::get('laravel-authentication-acl::database.default');
+
+ if($connection !== 'default')
+ {
+ $authenticator_conn = Config::get('laravel-authentication-acl::database.connections.' . $connection);
+ } else
+ {
+ $connection = Config::get('database.default');
+ $authenticator_conn = Config::get('database.connections.' . $connection);
+ }
+
+ Config::set('database.connections.authentication', $authenticator_conn);
+
+ $this->setupPresenceVerifierConnection();
+ }
+
+ protected function setupPresenceVerifierConnection()
+ {
+ $this->app['validation.presence']->setConnection('authentication');
+ }
+
+ /**
+ * Get the services provided by the provider.
+ *
+ * @return array
+ * @override
+ */
+ public function provides()
+ {
+ return array();
+ }
+
+ private function registerInstallCommand()
+ {
+ $this->app['authentication.install'] = $this->app->share(function ($app)
+ {
+ return new InstallCommand;
+ });
+
+ $this->commands('authentication.install');
+ }
+
+ private function registerPrepareCommand()
+ {
+ $this->app['authentication.prepare'] = $this->app->share(function ($app)
+ {
+ return new PrepareCommand;
+ });
+
+ $this->commands('authentication.prepare');
+ }
+
+ private function registerCommands()
+ {
+ $this->registerInstallCommand();
+ $this->registerPrepareCommand();
+ }
+
+ protected function setupAcceptanceTestingParams()
+ {
+ if(App::environment() == 'testing-acceptance')
+ {
+ $this->useMiddlewareCustomConfig();
+ }
+ }
+
+ protected function useMiddlewareCustomConfig()
+ {
+ App::instance('config', new ConfigMiddleware());
+
+ Config::swap(new ConfigMiddleware());
+ }
+}
\ No newline at end of file
diff --git a/app/Authentication/Classes/Captcha/CaptchaValidator.php b/src/Jacopo/Authentication/Classes/Captcha/CaptchaValidator.php
old mode 100755
new mode 100644
similarity index 90%
rename from app/Authentication/Classes/Captcha/CaptchaValidator.php
rename to src/Jacopo/Authentication/Classes/Captcha/CaptchaValidator.php
index 980d72d..9abd1ea
--- a/app/Authentication/Classes/Captcha/CaptchaValidator.php
+++ b/src/Jacopo/Authentication/Classes/Captcha/CaptchaValidator.php
@@ -1,4 +1,4 @@
-listen('customprofile.creating', 'LaravelAcl\Authentication\Classes\CustomProfile\Events\ProfilePermissionSubscriber@checkProfileTypePermission');
- $events->listen('customprofile.deleting', 'LaravelAcl\Authentication\Classes\CustomProfile\Events\ProfilePermissionSubscriber@checkProfileTypePermission');
+ $events->listen('customprofile.creating', 'Jacopo\Authentication\Classes\CustomProfile\Events\ProfilePermissionSubscriber@checkProfileTypePermission');
+ $events->listen('customprofile.deleting', 'Jacopo\Authentication\Classes\CustomProfile\Events\ProfilePermissionSubscriber@checkProfileTypePermission');
}
-}
+}
\ No newline at end of file
diff --git a/app/Authentication/Classes/CustomProfile/Repository/CustomProfileRepository.php b/src/Jacopo/Authentication/Classes/CustomProfile/Repository/CustomProfileRepository.php
old mode 100755
new mode 100644
similarity index 91%
rename from app/Authentication/Classes/CustomProfile/Repository/CustomProfileRepository.php
rename to src/Jacopo/Authentication/Classes/CustomProfile/Repository/CustomProfileRepository.php
index fc469ac..39a8bbc
--- a/app/Authentication/Classes/CustomProfile/Repository/CustomProfileRepository.php
+++ b/src/Jacopo/Authentication/Classes/CustomProfile/Repository/CustomProfileRepository.php
@@ -1,10 +1,10 @@
-profile_id = is_array($profile_id) ? array_shift($profile_id) : $profile_id;
+ $this->profile_id = $profile_id;
}
public static function getAllTypes()
@@ -27,7 +27,6 @@ public static function getAllTypes()
public static function addNewType($description)
{
- // firing event for permission handling
Event::fire('customprofile.creating');
$profile_field_type = ProfileFieldType::create(["description" => $description]);
@@ -36,7 +35,6 @@ public static function addNewType($description)
public static function deleteType($id)
{
- // firing event for permission handling
Event::fire('customprofile.deleting');
$success = ProfileFieldType::findOrFail($id)->delete();
@@ -144,4 +142,4 @@ protected function fetchProfileValueAssociated($profile_type)
return $profile_type->profile_field()->whereProfileId($this->profile_id)->first()->value;
}
-}
+}
\ No newline at end of file
diff --git a/app/Authentication/Classes/CustomProfile/customProfileFormHelper.php b/src/Jacopo/Authentication/Classes/CustomProfile/customProfileFormHelper.php
old mode 100755
new mode 100644
similarity index 84%
rename from app/Authentication/Classes/CustomProfile/customProfileFormHelper.php
rename to src/Jacopo/Authentication/Classes/CustomProfile/customProfileFormHelper.php
index dcdb260..3a7fbc4
--- a/app/Authentication/Classes/CustomProfile/customProfileFormHelper.php
+++ b/src/Jacopo/Authentication/Classes/CustomProfile/customProfileFormHelper.php
@@ -1,4 +1,4 @@
-listen('repository.deleting', 'LaravelAcl\Authentication\Events\EditableSubscriber@isEditable',10);
- $events->listen('repository.updating', 'LaravelAcl\Authentication\Events\EditableSubscriber@isEditable',10);
+ $events->listen('repository.deleting', 'Jacopo\Authentication\Events\EditableSubscriber@isEditable',10);
+ $events->listen('repository.updating', 'Jacopo\Authentication\Events\EditableSubscriber@isEditable',10);
}
}
\ No newline at end of file
diff --git a/app/Authentication/Exceptions/AuthenticationErrorException.php b/src/Jacopo/Authentication/Exceptions/AuthenticationErrorException.php
similarity index 64%
rename from app/Authentication/Exceptions/AuthenticationErrorException.php
rename to src/Jacopo/Authentication/Exceptions/AuthenticationErrorException.php
index fe05859..5cf5b97 100755
--- a/app/Authentication/Exceptions/AuthenticationErrorException.php
+++ b/src/Jacopo/Authentication/Exceptions/AuthenticationErrorException.php
@@ -1,4 +1,4 @@
-currentUser();
+ $sentry = App::make('sentry');
+ $current_user = $sentry->getUser();
if(! $current_user) return false;
if($permissions && (! $current_user->hasAnyAccess($permissions)) ) return false;
@@ -34,12 +35,12 @@ public function hasPermission(array $permissions)
*/
public function checkProfileEditPermission($user_id)
{
- $current_user_id = $this->currentUser()->id;
+ $current_user_id = App::make('sentry')->getUser()->id;
// edit his profile
if($user_id == $current_user_id) return true;
// has special permission to edit other user profiles
- $edit_perm = Config::get('acl_permissions.edit_profile');
+ $edit_perm = Config::get('laravel-authentication-acl::permissions.edit_profile');
if($this->hasPermission($edit_perm) ) return true;
return false;
@@ -52,8 +53,7 @@ public function checkProfileEditPermission($user_id)
*/
public function checkCustomProfileEditPermission()
{
- $edit_perm = Config::get('acl_permissions.edit_custom_profile');
-
+ $edit_perm = Config::get('laravel-authentication-acl::permissions.edit_custom_profile');
return $this->hasPermission($edit_perm) ? true : false;
}
@@ -64,20 +64,11 @@ public function checkCustomProfileEditPermission()
*/
public function getNotificationRegistrationUsersEmail()
{
- $group_name = Config::get('acl_permissions.profile_notification_group');
+ $group_name = Config::get('laravel-authentication-acl::permissions.profile_notification_group');
$user_r = App::make('user_repository');
$users = $user_r->findFromGroupName($group_name)->lists('email');
return $users;
}
- /**
- * @return mixed
- */
- protected function currentUser()
- {
- $sentry = App::make('sentry');
- $current_user = $sentry->getUser();
- return $current_user;
- }
}
\ No newline at end of file
diff --git a/app/Authentication/Interfaces/AuthenticateInterface.php b/src/Jacopo/Authentication/Interfaces/AuthenticateInterface.php
similarity index 89%
rename from app/Authentication/Interfaces/AuthenticateInterface.php
rename to src/Jacopo/Authentication/Interfaces/AuthenticateInterface.php
index 83035c0..40c9d42 100755
--- a/app/Authentication/Interfaces/AuthenticateInterface.php
+++ b/src/Jacopo/Authentication/Interfaces/AuthenticateInterface.php
@@ -1,4 +1,4 @@
-model = $model ?: new ConfigModel();
+ }
+
+ public function setOption($key, $value)
+ {
+ try
+ {
+ $model = $this->model->whereKey($key)->firstOrFail();
+ } catch(ModelNotFoundException $e)
+ {
+ $model = new ConfigModel();
+ }
+
+ $model->fill([
+ "key" => $key,
+ "value" => $value
+ ])
+ ->save();
+
+ return $this;
+ }
+
+ public function getOption($key)
+ {
+ try
+ {
+ $model = $this->model->where('key', '=', $key)->firstOrFail();
+ } catch(ModelNotFoundException $e)
+ {
+ return null;
+ }
+
+ return $model->value;
+ }
+}
\ No newline at end of file
diff --git a/app/Authentication/Models/BaseModel.php b/src/Jacopo/Authentication/Models/BaseModel.php
similarity index 53%
rename from app/Authentication/Models/BaseModel.php
rename to src/Jacopo/Authentication/Models/BaseModel.php
index fcac9af..16cc121 100755
--- a/app/Authentication/Models/BaseModel.php
+++ b/src/Jacopo/Authentication/Models/BaseModel.php
@@ -1,11 +1,13 @@
-belongsTo('LaravelAcl\Authentication\Models\ProfileFieldType','profile_field_type_id');
+ return $this->belongsTo('Jacopo\Authentication\Models\ProfileFieldType','profile_field_type_id');
}
public function user_profile()
{
- return $this->belongsTo('LaravelAcl\Authentication\Models\UserProfile','user_profile_id');
+ return $this->belongsTo('Jacopo\Authentication\Models\UserProfile','user_profile_id');
}
}
\ No newline at end of file
diff --git a/app/Authentication/Models/ProfileFieldType.php b/src/Jacopo/Authentication/Models/ProfileFieldType.php
old mode 100755
new mode 100644
similarity index 67%
rename from app/Authentication/Models/ProfileFieldType.php
rename to src/Jacopo/Authentication/Models/ProfileFieldType.php
index 5e1a9c3..917c4c5
--- a/app/Authentication/Models/ProfileFieldType.php
+++ b/src/Jacopo/Authentication/Models/ProfileFieldType.php
@@ -1,4 +1,4 @@
-hasMany('LaravelAcl\Authentication\Models\ProfileField');
+ return $this->hasMany('Jacopo\Authentication\Models\ProfileField');
}
}
\ No newline at end of file
diff --git a/app/Authentication/Models/User.php b/src/Jacopo/Authentication/Models/User.php
similarity index 86%
rename from app/Authentication/Models/User.php
rename to src/Jacopo/Authentication/Models/User.php
index ad02000..0f7dad0 100755
--- a/app/Authentication/Models/User.php
+++ b/src/Jacopo/Authentication/Models/User.php
@@ -1,15 +1,18 @@
-hasMany('LaravelAcl\Authentication\Models\UserProfile');
+ return $this->hasMany('Jacopo\Authentication\Models\UserProfile');
}
}
\ No newline at end of file
diff --git a/app/Authentication/Models/UserProfile.php b/src/Jacopo/Authentication/Models/UserProfile.php
similarity index 73%
rename from app/Authentication/Models/UserProfile.php
rename to src/Jacopo/Authentication/Models/UserProfile.php
index 0c6de54..7bd3659 100755
--- a/app/Authentication/Models/UserProfile.php
+++ b/src/Jacopo/Authentication/Models/UserProfile.php
@@ -1,6 +1,6 @@
-belongsTo('LaravelAcl\Authentication\Models\User', "user_id");
+ return $this->belongsTo('Jacopo\Authentication\Models\User', "user_id");
}
public function profile_field()
{
- return $this->hasMany('LaravelAcl\Authentication\Models\ProfileField');
+ return $this->hasMany('Jacopo\Authentication\Models\ProfileField');
}
public function getAvatarAttribute()
diff --git a/src/Jacopo/Authentication/Presenters/GroupPresenter.php b/src/Jacopo/Authentication/Presenters/GroupPresenter.php
new file mode 100755
index 0000000..e832915
--- /dev/null
+++ b/src/Jacopo/Authentication/Presenters/GroupPresenter.php
@@ -0,0 +1,13 @@
+default_avatar = Config::get('acl_base.default_avatar_path');
+ $this->default_avatar = Config::get('laravel-authentication-acl::config.default_avatar_path');
return parent::__construct($resource);
}
@@ -42,7 +42,7 @@ public function gravatar($size = 30)
public function avatar($size = 30)
{
- $use_gravatar = Config::get('acl_base.use_gravatar');
+ $use_gravatar = Config::get('laravel-authentication-acl::config.use_gravatar');
return $use_gravatar ? $this->gravatar($size) : $this->custom_avatar();
}
diff --git a/app/Authentication/Repository/EloquentPermissionRepository.php b/src/Jacopo/Authentication/Repository/EloquentPermissionRepository.php
similarity index 75%
rename from app/Authentication/Repository/EloquentPermissionRepository.php
rename to src/Jacopo/Authentication/Repository/EloquentPermissionRepository.php
index 48fd08c..b918303 100755
--- a/app/Authentication/Repository/EloquentPermissionRepository.php
+++ b/src/Jacopo/Authentication/Repository/EloquentPermissionRepository.php
@@ -1,12 +1,12 @@
-group_repo = App::make('group_repository');
$this->user_repo = App::make('user_repository');
- Event::listen(['repository.deleting','repository.updating'], '\LaravelAcl\Authentication\Repository\EloquentPermissionRepository@checkIsNotAssociatedToAnyUser');
- Event::listen(['repository.deleting','repository.updating'], '\LaravelAcl\Authentication\Repository\EloquentPermissionRepository@checkIsNotAssociatedToAnyGroup');
+ Event::listen(['repository.deleting','repository.updating'], '\Jacopo\Authentication\Repository\EloquentPermissionRepository@checkIsNotAssociatedToAnyUser');
+ Event::listen(['repository.deleting','repository.updating'], '\Jacopo\Authentication\Repository\EloquentPermissionRepository@checkIsNotAssociatedToAnyGroup');
return parent::__construct(new Permission);
}
/**
* @param $obj
- * @throws \LaravelAcl\Authentication\Exceptions\PermissionException
+ * @throws \Jacopo\Authentication\Exceptions\PermissionException
*/
public function checkIsNotAssociatedToAnyGroup($permission_obj)
{
@@ -37,7 +37,7 @@ public function checkIsNotAssociatedToAnyGroup($permission_obj)
/**
* @param $permission_obj
- * @throws \LaravelAcl\Authentication\Exceptions\PermissionException
+ * @throws \Jacopo\Authentication\Exceptions\PermissionException
*/
public function checkIsNotAssociatedToAnyUser($permission_obj)
{
@@ -48,7 +48,7 @@ public function checkIsNotAssociatedToAnyUser($permission_obj)
/**
* @param $permission
* @param $collection
- * @throws \LaravelAcl\Authentication\Exceptions\PermissionException
+ * @throws \Jacopo\Authentication\Exceptions\PermissionException
*/
private function validateIfPermissionIsInCollection($permission, $collection)
{
diff --git a/app/Authentication/Repository/EloquentUserProfileRepository.php b/src/Jacopo/Authentication/Repository/EloquentUserProfileRepository.php
similarity index 73%
rename from app/Authentication/Repository/EloquentUserProfileRepository.php
rename to src/Jacopo/Authentication/Repository/EloquentUserProfileRepository.php
index 17ee94a..b36980e 100755
--- a/app/Authentication/Repository/EloquentUserProfileRepository.php
+++ b/src/Jacopo/Authentication/Repository/EloquentUserProfileRepository.php
@@ -1,14 +1,14 @@
-applySearchFilters($search_filters, $q);
- $results_per_page = $this->config_reader->get('acl_base.groups_per_page');
+ $results_per_page = $this->config_reader->get('laravel-authentication-acl::groups_per_page');
return $q->paginate($results_per_page);
}
diff --git a/app/Authentication/Repository/SentryUserRepository.php b/src/Jacopo/Authentication/Repository/SentryUserRepository.php
similarity index 81%
rename from app/Authentication/Repository/SentryUserRepository.php
rename to src/Jacopo/Authentication/Repository/SentryUserRepository.php
index 8e937b2..6ec63bd 100755
--- a/app/Authentication/Repository/SentryUserRepository.php
+++ b/src/Jacopo/Authentication/Repository/SentryUserRepository.php
@@ -1,5 +1,5 @@
all($input_filter);
}
@@ -104,7 +104,7 @@ protected function ClearEmptyPassword(array &$data)
* Add a group to the user
*
* @param $id group id
- * @throws \LaravelAcl\Authentication\Exceptions\UserNotFoundException
+ * @throws \Jacopo\Authentication\Exceptions\UserNotFoundException
*/
public function addGroup($user_id, $group_id)
{
@@ -123,7 +123,7 @@ public function addGroup($user_id, $group_id)
* Remove a group to the user
*
* @param $id group id
- * @throws \LaravelAcl\Authentication\Exceptions\UserNotFoundException
+ * @throws \Jacopo\Authentication\Exceptions\UserNotFoundException
*/
public function removeGroup($user_id, $group_id)
{
@@ -143,7 +143,7 @@ public function removeGroup($user_id, $group_id)
*
* @param string login_name
* @return mixed
- * @throws \LaravelAcl\Library\Exceptions\NotFoundException
+ * @throws \Jacopo\Library\Exceptions\NotFoundException
*/
public function activate($login_name)
{
@@ -157,7 +157,7 @@ public function activate($login_name)
/**
* @param $login_name
- * @throws \LaravelAcl\Authentication\Exceptions\UserNotFoundException
+ * @throws \Jacopo\Authentication\Exceptions\UserNotFoundException
*/
public function findByLogin($login_name)
{
@@ -176,7 +176,7 @@ public function findByLogin($login_name)
* Obtain a list of user from a given group
*
* @param String $group_name
- * @throws \LaravelAcl\Authentication\Exceptions\UserNotFoundException
+ * @throws \Jacopo\Authentication\Exceptions\UserNotFoundException
* @return mixed
*/
public function findFromGroupName($group_name)
diff --git a/app/Authentication/Repository/UserRepositorySearchFilter.php b/src/Jacopo/Authentication/Repository/UserRepositorySearchFilter.php
similarity index 95%
rename from app/Authentication/Repository/UserRepositorySearchFilter.php
rename to src/Jacopo/Authentication/Repository/UserRepositorySearchFilter.php
index ed9dcfd..d4fcb05 100755
--- a/app/Authentication/Repository/UserRepositorySearchFilter.php
+++ b/src/Jacopo/Authentication/Repository/UserRepositorySearchFilter.php
@@ -1,4 +1,4 @@
-createAllSelect($q);
- $users = $q->get()->all();
+ $users = $q->get();
$user_emails = array_flip(array_map((function ($element)
{
@@ -48,7 +49,7 @@ public function all(array $input_filter = [])
$users_emails_unique = array_unique($user_emails);
$results = array_only($users, array_values($users_emails_unique));
- return new Paginator($results, $this->per_page);
+ return App::make('paginator')->make($results, count($results), $this->per_page);
}
/**
@@ -56,7 +57,7 @@ public function all(array $input_filter = [])
*/
private function createTableJoins()
{
- $q = DB::connection();
+ $q = DB::connection($this->getConnectionName());
$q = $q->table($this->user_table_name)
->leftJoin($this->profile_table_name, $this->user_table_name . '.id', '=', $this->profile_table_name . '.user_id')
->leftJoin($this->user_groups_table_name, $this->user_table_name . '.id', '=', $this->user_groups_table_name . '.user_id')
diff --git a/app/Authentication/Services/ReminderService.php b/src/Jacopo/Authentication/Services/ReminderService.php
similarity index 71%
rename from app/Authentication/Services/ReminderService.php
rename to src/Jacopo/Authentication/Services/ReminderService.php
index ea4cec4..bce7b01 100755
--- a/app/Authentication/Services/ReminderService.php
+++ b/src/Jacopo/Authentication/Services/ReminderService.php
@@ -1,14 +1,14 @@
-auth = App::make('authenticator');
$this->mailer = App::make('jmailer');
$this->errors = new MessageBag();
- $this->subject = Config::get('acl_messages.email.user_password_recovery_subject');
+ $this->subject = Config::get('laravel-authentication-acl::messages.email.user_password_recovery_subject');
}
public function send($to)
@@ -78,7 +78,7 @@ public function send($to)
$this->prepareResetPasswordLink($token, $to);
// send email with change password link
- $success = $this->mailer->sendTo($to, $this->body->toHtml(), $this->subject, $this->template);
+ $success = $this->mailer->sendTo($to, $this->body, $this->subject, $this->template);
if(! $success)
{
@@ -89,8 +89,8 @@ public function send($to)
private function prepareResetPasswordLink($token, $to)
{
- $this->body = link_to_route("user.change-password",
- Config::get('acl_messages.links.change_password'),
+ $this->body = link_to_action("Jacopo\\Authentication\\Controllers\\AuthController@getChangePassword",
+ Config::get('laravel-authentication-acl::messages.links.change_password'),
["email"=> $to, "token"=> $token] );
}
@@ -112,13 +112,13 @@ public function reset($email, $token, $password)
// Attempt to reset the user password
if (! $user->attemptResetPassword($token, $password))
{
- $this->errors->add('user', Config::get('acl_messages.flash.error.reset_password_error') );
+ $this->errors->add('user', Config::get('laravel-authentication-acl::messages.flash.error.reset_password_error') );
throw new InvalidException();
}
}
else
{
- $this->errors->add('user', Config::get('acl_messages.flash.error.captcha_error') );
+ $this->errors->add('user', Config::get('laravel-authentication-acl::messages.flash.error.captcha_error') );
throw new InvalidException();
}
}
@@ -144,9 +144,4 @@ public function getTemplate()
return $this->template;
}
- public function getMailer()
- {
- return $this->mailer;
- }
-
-}
+}
\ No newline at end of file
diff --git a/app/Authentication/Services/UserProfileService.php b/src/Jacopo/Authentication/Services/UserProfileService.php
similarity index 85%
rename from app/Authentication/Services/UserProfileService.php
rename to src/Jacopo/Authentication/Services/UserProfileService.php
index 3b5cc5d..6067bde 100755
--- a/app/Authentication/Services/UserProfileService.php
+++ b/src/Jacopo/Authentication/Services/UserProfileService.php
@@ -1,4 +1,4 @@
-id]);
+ $custom_profile_repository = App::make('custom_profile_repository', $user_profile->id);
foreach($input as $input_key => $value)
{
if(($profile_field_type_id_position = $this->isCustomFieldKey($input_key)) !== false)
@@ -156,7 +157,7 @@ protected function extractCustomFieldId($input_key, $profile_field_type_id_posit
/**
* @param $input
* @return mixed
- * @throws \LaravelAcl\Library\Exceptions\InvalidException
+ * @throws \Jacopo\Library\Exceptions\InvalidException
*/
private function updateUserBaseData($input)
{
diff --git a/app/Authentication/Services/UserRegisterService.php b/src/Jacopo/Authentication/Services/UserRegisterService.php
similarity index 78%
rename from app/Authentication/Services/UserRegisterService.php
rename to src/Jacopo/Authentication/Services/UserRegisterService.php
index c216b67..41116ad 100755
--- a/app/Authentication/Services/UserRegisterService.php
+++ b/src/Jacopo/Authentication/Services/UserRegisterService.php
@@ -1,16 +1,16 @@
-user_repository = App::make('user_repository');
$this->profile_repository = App::make('profile_repository');
$this->user_signup_validator = $v ? $v : new UserSignupValidator;
- $this->activation_enabled = Config::get('acl_base.email_confirmation');
+ $this->activation_enabled = Config::get('laravel-authentication-acl::email_confirmation');
Event::listen('service.activated',
- 'LaravelAcl\Authentication\Services\UserRegisterService@sendActivationEmailToClient');
+ 'Jacopo\Authentication\Services\UserRegisterService@sendActivationEmailToClient');
}
@@ -74,7 +74,7 @@ public function register(array $input)
/**
* @param array $input
- * @throws \LaravelAcl\Library\Exceptions\ValidationException
+ * @throws \Jacopo\Library\Exceptions\ValidationException
*/
protected function validateInput(array $input)
{
@@ -109,7 +109,7 @@ protected function saveDbData(array $input)
protected function getDefaultActivatedState()
{
- return Config::get('acl_base.email_confirmation') ? false : true;
+ return Config::get('laravel-authentication-acl::email_confirmation') ? false : true;
}
/**
@@ -129,7 +129,7 @@ public function sendRegistrationMailToClient($input)
"first_name" => $input["first_name"],
"token" => $this->activation_enabled ? App::make('authenticator')->getActivationToken($input["email"]) : ''
],
- Config::get('acl_messages.email.user_registration_request_subject'),
+ Config::get('laravel-authentication-acl::messages.email.user_registration_request_subject'),
$view_file);
}
@@ -144,15 +144,15 @@ public function sendActivationEmailToClient($user)
$mailer = App::make('jmailer');
// if i activate a deactivated user
$mailer->sendTo($user->email, ["email" => $user->email],
- Config::get('acl_messages.email.user_registraction_activation_subject'),
+ Config::get('laravel-authentication-acl::messages.email.user_registraction_activation_subject'),
"laravel-authentication-acl::admin.mail.registration-activated-client");
}
/**
* @param $email
* @param $token
- * @throws \LaravelAcl\Authentication\Exceptions\UserNotFoundException
- * @throws \LaravelAcl\Authentication\Exceptions\TokenMismatchException
+ * @throws \Jacopo\Authentication\Exceptions\UserNotFoundException
+ * @throws \Jacopo\Authentication\Exceptions\TokenMismatchException
*/
public function checkUserActivationCode($email, $token)
{
diff --git a/app/Authentication/Validators/GroupValidator.php b/src/Jacopo/Authentication/Validators/GroupValidator.php
similarity index 63%
rename from app/Authentication/Validators/GroupValidator.php
rename to src/Jacopo/Authentication/Validators/GroupValidator.php
index 0bc71e9..86115af 100755
--- a/app/Authentication/Validators/GroupValidator.php
+++ b/src/Jacopo/Authentication/Validators/GroupValidator.php
@@ -1,9 +1,9 @@
- ["required"],
diff --git a/app/Authentication/Validators/PermissionValidator.php b/src/Jacopo/Authentication/Validators/PermissionValidator.php
similarity index 68%
rename from app/Authentication/Validators/PermissionValidator.php
rename to src/Jacopo/Authentication/Validators/PermissionValidator.php
index 9f782ad..2e1c212 100755
--- a/app/Authentication/Validators/PermissionValidator.php
+++ b/src/Jacopo/Authentication/Validators/PermissionValidator.php
@@ -1,9 +1,9 @@
- ["required", "max:255"],
diff --git a/src/Jacopo/Authentication/Validators/ReminderValidator.php b/src/Jacopo/Authentication/Validators/ReminderValidator.php
new file mode 100755
index 0000000..bd5e1ba
--- /dev/null
+++ b/src/Jacopo/Authentication/Validators/ReminderValidator.php
@@ -0,0 +1,10 @@
+ ["required", "min:6"],
+ );
+}
\ No newline at end of file
diff --git a/app/Authentication/Validators/UserProfileAvatarValidator.php b/src/Jacopo/Authentication/Validators/UserProfileAvatarValidator.php
old mode 100755
new mode 100644
similarity index 70%
rename from app/Authentication/Validators/UserProfileAvatarValidator.php
rename to src/Jacopo/Authentication/Validators/UserProfileAvatarValidator.php
index 909bc79..5347466
--- a/app/Authentication/Validators/UserProfileAvatarValidator.php
+++ b/src/Jacopo/Authentication/Validators/UserProfileAvatarValidator.php
@@ -1,6 +1,6 @@
- ["confirmed", "min:6"],
);
diff --git a/app/Authentication/Validators/UserProfileValidator.php b/src/Jacopo/Authentication/Validators/UserProfileValidator.php
similarity index 65%
rename from app/Authentication/Validators/UserProfileValidator.php
rename to src/Jacopo/Authentication/Validators/UserProfileValidator.php
index 5ff0a0c..63b80ca 100755
--- a/app/Authentication/Validators/UserProfileValidator.php
+++ b/src/Jacopo/Authentication/Validators/UserProfileValidator.php
@@ -1,20 +1,20 @@
- "max:50",
- "last_name" => "max:50",
- "code" => "max:25",
- "phone" => "max:20",
- "vat" => "max:20",
- "state" => "max:20",
- "city" => "max:50",
- "country" => "max:50",
- "zip" => "max:20",
- "address" => "max:100",
- );
+ "max:50",
+ "last_name" => "max:50",
+ "code" => "max:25",
+ "phone" => "max:20",
+ "vat" => "max:20",
+ "state" => "max:20",
+ "city" => "max:50",
+ "country" => "max:50",
+ "zip" => "max:20",
+ "address" => "max:100",
+ );
}
\ No newline at end of file
diff --git a/app/Authentication/Validators/UserSignupEmailValidator.php b/src/Jacopo/Authentication/Validators/UserSignupEmailValidator.php
similarity index 66%
rename from app/Authentication/Validators/UserSignupEmailValidator.php
rename to src/Jacopo/Authentication/Validators/UserSignupEmailValidator.php
index 62c2fb9..dfb3708 100755
--- a/app/Authentication/Validators/UserSignupEmailValidator.php
+++ b/src/Jacopo/Authentication/Validators/UserSignupEmailValidator.php
@@ -1,15 +1,16 @@
-activated)
{
return false;
}
// if email confirmation is disabled we dont send email again
- if(! Config::get('acl_base.email_confirmation') ) return false;
+ if(! Config::get('laravel-authentication-acl::email_confirmation') ) return false;
// send email
-
- $this->resendConfirmationEmail();
+ $this->resendConfirmationEmail($value);
// set session message
Session::flash('message', "We sent you again the mail confirmation. Please check your inbox.");
return false;
@@ -44,7 +43,7 @@ public function validateEmailUnique($attribute, $value, $parameters)
*/
protected function resendConfirmationEmail()
{
- $data = Request::all();
+ $data = Input::all();
$data['password'] = 'Cannot decipher password, please use password recovery after if it\'s needed.';
App::make('register_service')->sendRegistrationMailToClient($data);
diff --git a/app/Authentication/Validators/UserSignupValidator.php b/src/Jacopo/Authentication/Validators/UserSignupValidator.php
similarity index 65%
rename from app/Authentication/Validators/UserSignupValidator.php
rename to src/Jacopo/Authentication/Validators/UserSignupValidator.php
index 76006b5..dd9e41e 100755
--- a/app/Authentication/Validators/UserSignupValidator.php
+++ b/src/Jacopo/Authentication/Validators/UserSignupValidator.php
@@ -1,29 +1,29 @@
- "an user with that email already exists."
- ];
-
- protected static $rules = [
- "email" => ["required", "email", "mail_signup"],
- "password" => ["required", "min:6", "confirmed"],
- "first_name" => "max:255",
- "last_name" => "max:255",
- ];
-
- public function __construct()
- {
- $enable_captcha = Config::get('acl_base.captcha_signup');
- if($enable_captcha) $this->addCaptchaRule();
- }
-
- protected function addCaptchaRule()
- {
- static::$rules["captcha_text"] = "captcha";
- }
+ "an user with that email already exists."
+ ];
+
+ protected static $rules = [
+ "email" => ["required", "email", "mail_signup"],
+ "password" => ["required", "min:6", "confirmed"],
+ "first_name" => "max:255",
+ "last_name" => "max:255",
+ ];
+
+ public function __construct()
+ {
+ $enable_captcha = Config::get('laravel-authentication-acl::captcha_signup');
+ if($enable_captcha) $this->addCaptchaRule();
+ }
+
+ protected function addCaptchaRule()
+ {
+ static::$rules["captcha_text"] = "captcha";
+ }
}
\ No newline at end of file
diff --git a/app/Authentication/Validators/UserValidator.php b/src/Jacopo/Authentication/Validators/UserValidator.php
similarity index 87%
rename from app/Authentication/Validators/UserValidator.php
rename to src/Jacopo/Authentication/Validators/UserValidator.php
index b55aacf..6f828e4 100755
--- a/app/Authentication/Validators/UserValidator.php
+++ b/src/Jacopo/Authentication/Validators/UserValidator.php
@@ -1,9 +1,10 @@
- ["required", "email"],
diff --git a/src/commands/CallWrapper.php b/src/commands/CallWrapper.php
new file mode 100755
index 0000000..0fc3e94
--- /dev/null
+++ b/src/commands/CallWrapper.php
@@ -0,0 +1,17 @@
+wrapped_obj = $wrapped_obj;
+ }
+
+ public function __call($name, $params)
+ {
+ return call_user_func_array([$this->wrapped_obj, $name], $params);
+ }
+
+}
diff --git a/app/Authentication/Commands/InstallCommand.php b/src/commands/InstallCommand.php
similarity index 68%
rename from app/Authentication/Commands/InstallCommand.php
rename to src/commands/InstallCommand.php
index 2bd70aa..6a86188 100755
--- a/app/Authentication/Commands/InstallCommand.php
+++ b/src/commands/InstallCommand.php
@@ -1,7 +1,9 @@
-call_wrapper = $call_wrapper ? $call_wrapper : new CallWrapper($this);
- $this->db_seeder = $db_seeder ? $db_seeder : new DatabaseSeeder();
+
+ $this->db_seeder = $db_seeder ? $db_seeder : new DbSeeder();
+
parent::__construct();
}
@@ -40,11 +44,13 @@ public function __construct($call_wrapper = null, $db_seeder = null)
*/
public function fire()
{
- $this->call_wrapper->call('vendor:publish', ['force']);
+ $this->call_wrapper->call('migrate', ['--package' => 'jacopo/laravel-authentication-acl', '--database' => "authentication" ] );
- $this->call_wrapper->call('migrate');
$this->db_seeder->run();
+ $this->call_wrapper->call('asset:publish');
+
$this->info('## Laravel Authentication ACL Installed successfully ##');
}
+
}
diff --git a/src/commands/PrepareCommand.php b/src/commands/PrepareCommand.php
new file mode 100755
index 0000000..31fc3d4
--- /dev/null
+++ b/src/commands/PrepareCommand.php
@@ -0,0 +1,49 @@
+call_wrapper = $call_wrapper ? $call_wrapper : new CallWrapper($this);
+
+ parent::__construct();
+ }
+
+ /**
+ * Execute the console command.
+ *
+ * @return mixed
+ */
+ public function fire()
+ {
+ $this->call_wrapper->call('config:publish', ['package' => 'jacopo/laravel-authentication-acl' ] );
+
+ $this->info('## Laravel Authentication ACL prepared successfully ##');
+ }
+
+}
diff --git a/src/composers.php b/src/composers.php
new file mode 100755
index 0000000..26a105a
--- /dev/null
+++ b/src/composers.php
@@ -0,0 +1,10 @@
+with('app_name', Config::get('acl_app_name'));
+ $view->with('app_name', Config::get('laravel-authentication-acl::app_name'));
});
/**
@@ -20,5 +20,5 @@
*/
View::composer(['laravel-authentication-acl::admin.user.profile', 'laravel-authentication-acl::admin.user.self-profile'], function ($view)
{
- $view->with('use_gravatar', \Config::get('acl_config.use_gravatar'));
+ $view->with('use_gravatar', \Config::get('laravel-authentication-acl::config.use_gravatar'));
});
\ No newline at end of file
diff --git a/app/Authentication/Composers/permissions.php b/src/composers/permissions.php
old mode 100755
new mode 100644
similarity index 100%
rename from app/Authentication/Composers/permissions.php
rename to src/composers/permissions.php
diff --git a/app/Authentication/Composers/select_items.php b/src/composers/select_items.php
old mode 100755
new mode 100644
similarity index 92%
rename from app/Authentication/Composers/select_items.php
rename to src/composers/select_items.php
index bcce347..e0a5607
--- a/app/Authentication/Composers/select_items.php
+++ b/src/composers/select_items.php
@@ -1,5 +1,5 @@
"/",
- /*
- |--------------------------------------------------------------------------
- | Admin login redirection url
- |--------------------------------------------------------------------------
- |
- | The admin login redirection url
- |
- */
- "admin_login_redirect_url" => "/admin/users/dashboard",
-
/*
|--------------------------------------------------------------------------
| User per page
diff --git a/src/config/database.php b/src/config/database.php
new file mode 100755
index 0000000..e9f7a26
--- /dev/null
+++ b/src/config/database.php
@@ -0,0 +1,55 @@
+ 'default',
+
+ 'connections' => [
+
+ 'sqlite' => [
+ 'driver' => 'sqlite',
+ 'database' => ':memory:',
+ 'prefix' => '',
+ ],
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'host' => 'localhost',
+ 'database' => 'database',
+ 'username' => 'root',
+ 'password' => '',
+ 'charset' => 'utf8',
+ 'collation' => 'utf8_unicode_ci',
+ 'prefix' => '',
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'host' => 'localhost',
+ 'database' => 'database',
+ 'username' => 'root',
+ 'password' => '',
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'schema' => 'public',
+ ],
+
+ 'sqlsrv' => [
+ 'driver' => 'sqlsrv',
+ 'host' => 'localhost',
+ 'database' => 'database',
+ 'username' => 'root',
+ 'password' => '',
+ 'prefix' => '',
+ ],
+
+ ],
+];
diff --git a/config/acl_menu.php b/src/config/menu.php
similarity index 85%
rename from config/acl_menu.php
rename to src/config/menu.php
index 89c7c28..70e2976 100755
--- a/config/acl_menu.php
+++ b/src/config/menu.php
@@ -13,7 +13,7 @@
[
"name" => "Dashboard",
"route" => "dashboard",
- "link" => '/admin/users/dashboard',
+ "link" => URL::route('dashboard.default'),
"permissions" => []
],
[
@@ -32,10 +32,10 @@
/*
* the actual link associated to the menu item
*/
- "link" => '/admin/users/list',
+ "link" => URL::route('users.list'),
/*
* the list of 'permission name' associated to the menu
- * item: if the logged user has one or more of the permission
+ * item: if the logged use has one or more of the permission
* in the list he can see the menu link and access the area
* associated with that.
* Every route that you create with the 'route' as a prefix
@@ -47,18 +47,18 @@
* if there is any route that you want to skip for the permission check
* put it in this array
*/
- "skip_permissions" => ["users.selfprofile.edit", "users.profile.edit", "users.profile.addfield", "users.profile.deletefield"]
+ "skip_permissions" => ["users.selfprofile.edit", "users.profile.edit"]
],
[
"name" => "Groups",
"route" => "groups",
- "link" => '/admin/groups/list',
+ "link" => URL::route('groups.list'),
"permissions" => ["_superadmin", "_group-editor"]
],
[
"name" => "Permission",
"route" => "permission",
- "link" => '/admin/permissions/list',
+ "link" => URL::route('permission.list'),
"permissions" => ["_superadmin", "_permission-editor"]
],
[
@@ -67,7 +67,7 @@
*/
"name" => "",
"route" => "selfprofile",
- "link" => '/admin/users/profile/self',
+ "link" => URL::route('users.selfprofile.edit'),
"permissions" => []
],
diff --git a/config/acl_messages.php b/src/config/messages.php
old mode 100755
new mode 100644
similarity index 96%
rename from config/acl_messages.php
rename to src/config/messages.php
index b9703b4..016c0bb
--- a/config/acl_messages.php
+++ b/src/config/messages.php
@@ -14,11 +14,11 @@
/*
* User registration request
*/
- "user_registration_request_subject" => "Registration request to: Authenticator",
+ "user_registration_request_subject" => "Registration request to: " . Config::get('laravel-authentication-acl::app_name'),
/*
* User activation
*/
- "user_registraction_activation_subject" => "Your user is activated on: Authenticator",
+ "user_registraction_activation_subject" => "Your user is activated on: " . Config::get('laravel-authentication-acl::app_name'),
/*
* User password recovery
*/
diff --git a/config/acl_permissions.php b/src/config/permissions.php
similarity index 100%
rename from config/acl_permissions.php
rename to src/config/permissions.php
diff --git a/src/config/sentry/config.php b/src/config/sentry/config.php
new file mode 100755
index 0000000..35858a8
--- /dev/null
+++ b/src/config/sentry/config.php
@@ -0,0 +1,219 @@
+ array(
+
+ /*
+ |--------------------------------------------------------------------------
+ | Throttling
+ |--------------------------------------------------------------------------
+ |
+ | Enable throttling or not. Throttling is where users are only allowed a
+ | certain number of login attempts before they are suspended. Suspension
+ | must be removed before a new login attempt is allowed.
+ |
+ */
+
+ 'enabled' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Attempts Limit
+ |--------------------------------------------------------------------------
+ |
+ | When using the "eloquent" driver and extending the base Eloquent model,
+ | you have the option to globally set the login attempts.
+ |
+ | Supported: int
+ |
+ */
+
+ 'attempt_limit' => 5,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Suspension Time
+ |--------------------------------------------------------------------------
+ |
+ | When using the "eloquent" driver and extending the base Eloquent model,
+ | you have the option to globally set the suspension time, in minutes.
+ |
+ | Supported: int
+ |
+ */
+
+ 'suspension_time' => 15,
+
+ /*
+ |--------------------------------------------------------------------------
+ | DO NOT EDIT THE LINE BELOW
+ |--------------------------------------------------------------------------
+ */
+ 'model' => 'Cartalyst\Sentry\Throttling\Eloquent\Throttle',
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default Hasher
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to specify the default hasher used by Sentry
+ |
+ | Supported: "native", "bcrypt", "sha256", "whirlpool"
+ |
+ */
+
+ 'hasher' => 'native',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cookie
+ |--------------------------------------------------------------------------
+ |
+ | Configuration specific to the cookie component of Sentry.
+ |
+ */
+
+ 'cookie' => array(
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default Cookie Key
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to specify the default cookie key used by Sentry.
+ |
+ | Supported: string
+ |
+ */
+
+ 'key' => 'cartalyst_sentry',
+
+ ),
+
+ // *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
+ // END OF USER CONFIGURATION. DO NOT EDIT THE CODE BELOW!!!
+ // *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default Authentication Driver
+ |--------------------------------------------------------------------------
+ |
+ | This option controls the authentication driver that will be utilized.
+ | This drivers manages the retrieval and authentication of the users
+ | attempting to get access to protected areas of your application.
+ |
+ | Supported: "eloquent" (more coming soon).
+ |
+ */
+
+ 'driver' => 'Eloquent',
+
+
+ /*
+ |--------------------------------------------------------------------------
+ | Groups
+ |--------------------------------------------------------------------------
+ |
+ | Configuration specific to the group management component of Sentry.
+ |
+ */
+
+ 'groups' => array(
+
+ /*
+ |--------------------------------------------------------------------------
+ | Model
+ |--------------------------------------------------------------------------
+ |
+ | When using the "eloquent" driver, we need to know which
+ | Eloquent models should be used throughout Sentry.
+ |
+ */
+
+ 'model' => 'Jacopo\Authentication\Models\Group',
+
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Users
+ |--------------------------------------------------------------------------
+ |
+ | Configuration specific to the user management component of Sentry.
+ |
+ */
+
+ 'users' => array(
+
+ /*
+ |--------------------------------------------------------------------------
+ | Model
+ |--------------------------------------------------------------------------
+ |
+ | When using the "eloquent" driver, we need to know which
+ | Eloquent models should be used throughout Sentry.
+ |
+ */
+
+ 'model' => 'Jacopo\Authentication\Models\User',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Login Attribute
+ |--------------------------------------------------------------------------
+ |
+ | If you're using the "eloquent" driver and extending the base Eloquent
+ | model, we allow you to globally override the login attribute without
+ | even subclassing the model, simply by specifying the attribute below.
+ |
+ */
+
+ 'login_attribute' => 'email',
+
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | User Groups Pivot Table
+ |--------------------------------------------------------------------------
+ |
+ | When using the "eloquent" driver, you can specify the table name
+ | for the user groups pivot table.
+ |
+ | Default: users_groups
+ |
+ */
+
+ 'user_groups_pivot_table' => 'users_groups',
+ );
diff --git a/src/config/testing-acceptance/database.php b/src/config/testing-acceptance/database.php
new file mode 100644
index 0000000..40f6ecb
--- /dev/null
+++ b/src/config/testing-acceptance/database.php
@@ -0,0 +1,41 @@
+ 'sqlitedb',
+
+ 'connections' => [
+
+ 'sqlitedb' => array(
+ 'driver' => 'sqlite',
+ 'database' => __DIR__.'/../../database/testing-acceptance.sqlite',
+ 'prefix' => '',
+ ),
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'host' => 'localhost',
+ 'database' => 'authentication_test',
+ 'username' => 'root',
+ 'password' => 'root',
+ 'charset' => 'utf8',
+ 'collation' => 'utf8_unicode_ci',
+ 'prefix' => '',
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'host' => 'localhost',
+ 'database' => 'authentication_test',
+ 'username' => 'root',
+ 'password' => 'root',
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'schema' => 'public',
+ ],
+ ],
+];
diff --git a/src/config/testing/database.php b/src/config/testing/database.php
new file mode 100644
index 0000000..360d576
--- /dev/null
+++ b/src/config/testing/database.php
@@ -0,0 +1,41 @@
+ 'sqlite',
+
+ 'connections' => [
+
+ 'sqlite' => [
+ 'driver' => 'sqlite',
+ 'database' => ':memory:',
+ 'prefix' => '',
+ ],
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'host' => 'localhost',
+ 'database' => 'authentication_test',
+ 'username' => 'root',
+ 'password' => 'root',
+ 'charset' => 'utf8',
+ 'collation' => 'utf8_unicode_ci',
+ 'prefix' => '',
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'host' => 'localhost',
+ 'database' => 'authentication_test',
+ 'username' => 'root',
+ 'password' => 'root',
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'schema' => 'public',
+ ],
+ ],
+];
diff --git a/app/Authentication/Controllers/AuthController.php b/src/controllers/AuthController.php
similarity index 50%
rename from app/Authentication/Controllers/AuthController.php
rename to src/controllers/AuthController.php
index 829b793..836af53 100755
--- a/app/Authentication/Controllers/AuthController.php
+++ b/src/controllers/AuthController.php
@@ -1,10 +1,10 @@
-getLoginInput($request);
+ list($email, $password, $remember) = $this->getLoginInput();
try
{
@@ -43,15 +43,15 @@ public function postAdminLogin(Request $request)
catch(JacopoExceptionsInterface $e)
{
$errors = $this->authenticator->getErrors();
- return redirect()->route("user.admin.login")->withInput()->withErrors($errors);
+ return Redirect::action('Jacopo\Authentication\Controllers\AuthController@getAdminLogin')->withInput()->withErrors($errors);
}
- return Redirect::to(Config::get('acl_base.admin_login_redirect_url'));
+ return Redirect::to('/admin/users/dashboard');
}
- public function postClientLogin(Request $request)
+ public function postClientLogin()
{
- list($email, $password, $remember) = $this->getLoginInput($request);
+ list($email, $password, $remember) = $this->getLoginInput();
try
{
@@ -63,10 +63,10 @@ public function postClientLogin(Request $request)
catch(JacopoExceptionsInterface $e)
{
$errors = $this->authenticator->getErrors();
- return redirect()->route("user.login")->withInput()->withErrors($errors);
+ return Redirect::action('Jacopo\Authentication\Controllers\AuthController@getClientLogin')->withInput()->withErrors($errors);
}
- return Redirect::to(Config::get('acl_base.user_login_redirect_url'));
+ return Redirect::to(Config::get('laravel-authentication-acl::config.user_login_redirect_url'));
}
/**
@@ -78,7 +78,7 @@ public function getLogout()
{
$this->authenticator->logout();
- return redirect('/');
+ return Redirect::to('/');
}
/**
@@ -86,7 +86,7 @@ public function getLogout()
*/
public function getReminder()
{
- return view("laravel-authentication-acl::client.auth.reminder");
+ return View::make("laravel-authentication-acl::client.auth.reminder");
}
/**
@@ -94,39 +94,39 @@ public function getReminder()
*
* @return mixed
*/
- public function postReminder(Request $request)
+ public function postReminder()
{
- $email = $request->get('email');
+ $email = Input::get('email');
try
{
$this->reminder->send($email);
- return redirect()->route("user.reminder-success");
+ return Redirect::to("/user/reminder-success");
}
catch(JacopoExceptionsInterface $e)
{
$errors = $this->reminder->getErrors();
- return redirect()->route("user.recovery-password")->withErrors($errors);
+ return Redirect::action("Jacopo\\Authentication\\Controllers\\AuthController@getReminder")->withErrors($errors);
}
}
- public function getChangePassword(Request $request)
+ public function getChangePassword()
{
- $email = $request->get('email');
- $token = $request->get('token');
+ $email = Input::get('email');
+ $token = Input::get('token');
- return view("laravel-authentication-acl::client.auth.changepassword", array("email" => $email, "token" => $token) );
+ return View::make("laravel-authentication-acl::client.auth.changepassword", array("email" => $email, "token" => $token) );
}
- public function postChangePassword(Request $request)
+ public function postChangePassword()
{
- $email = $request->get('email');
- $token = $request->get('token');
- $password = $request->get('password');
+ $email = Input::get('email');
+ $token = Input::get('token');
+ $password = Input::get('password');
- if (! $this->reminder_validator->validate($request->all()) )
+ if (! $this->reminder_validator->validate(Input::all()) )
{
- return redirect()->route("user.change-password")->withErrors($this->reminder_validator->getErrors())->withInput();
+ return Redirect::action("Jacopo\\Authentication\\Controllers\\AuthController@getChangePassword")->withErrors($this->reminder_validator->getErrors())->withInput();
}
try
@@ -136,21 +136,21 @@ public function postChangePassword(Request $request)
catch(JacopoExceptionsInterface $e)
{
$errors = $this->reminder->getErrors();
- return redirect()->route("user.change-password")->withErrors($errors);
+ return Redirect::action("Jacopo\\Authentication\\Controllers\\AuthController@getChangePassword")->withErrors($errors);
}
- return redirect()->route("user.change-password-success");
+ return Redirect::to("user/change-password-success");
}
/**
* @return array
*/
- private function getLoginInput(Request $request)
+ private function getLoginInput()
{
- $email = $request->get('email');
- $password = $request->get('password');
- $remember = $request->get('remember');
+ $email = Input::get('email');
+ $password = Input::get('password');
+ $remember = Input::get('remember');
return array($email, $password, $remember);
}
diff --git a/app/Authentication/Controllers/DashboardController.php b/src/controllers/DashboardController.php
old mode 100755
new mode 100644
similarity index 67%
rename from app/Authentication/Controllers/DashboardController.php
rename to src/controllers/DashboardController.php
index 75cd557..f8c4eeb
--- a/app/Authentication/Controllers/DashboardController.php
+++ b/src/controllers/DashboardController.php
@@ -1,5 +1,6 @@
-group_repository = App::make('group_repository');
+ $this->group_validator = $v;
+ $this->f = new FormModel($this->group_validator, $this->group_repository);
+ $this->form_model = $fh;
+ }
+
+ public function getList()
+ {
+ $groups = $this->group_repository->all(Input::all());
+
+ return View::make('laravel-authentication-acl::admin.group.list')->with(["groups" => $groups]);
+ }
+
+ public function editGroup()
+ {
+ try
+ {
+ $obj = $this->group_repository->find(Input::get('id'));
+ }
+ catch(UserNotFoundException $e)
+ {
+ $obj = new Group;
+ }
+ $presenter = new GroupPresenter($obj);
+
+ return View::make('laravel-authentication-acl::admin.group.edit')->with(["group" => $obj, "presenter" => $presenter]);
+ }
+
+ public function postEditGroup()
+ {
+ $id = Input::get('id');
+
+ try
+ {
+ $obj = $this->f->process(Input::all());
+ }
+ catch(JacopoExceptionsInterface $e)
+ {
+ $errors = $this->f->getErrors();
+ // passing the id incase fails editing an already existing item
+ return Redirect::route("groups.edit", $id ? ["id" => $id]: [])->withInput()->withErrors($errors);
+ }
+ return Redirect::action('Jacopo\Authentication\Controllers\GroupController@editGroup',["id" => $obj->id])->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.group_edit_success'));
+ }
+
+ public function deleteGroup()
+ {
+ try
+ {
+ $this->f->delete(Input::all());
+ }
+ catch(JacopoExceptionsInterface $e)
+ {
+ $errors = $this->f->getErrors();
+ return Redirect::action('Jacopo\Authentication\Controllers\GroupController@getList')->withErrors($errors);
+ }
+ return Redirect::action('Jacopo\Authentication\Controllers\GroupController@getList')->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.group_delete_success'));
+ }
+
+ public function editPermission()
+ {
+ // prepare input
+ $input = Input::all();
+ $operation = Input::get('operation');
+ $this->form_model->prepareSentryPermissionInput($input, $operation);
+ $id = Input::get('id');
+
+ try
+ {
+ $obj = $this->group_repository->update($id, $input);
+ }
+ catch(JacopoExceptionsInterface $e)
+ {
+ return Redirect::route("users.groups.edit")->withInput()->withErrors(new MessageBag(["permissions" => Config::get('laravel-authentication-acl::messages.flash.error.group_permission_not_found')]));
+ }
+ return Redirect::action('Jacopo\Authentication\Controllers\GroupController@editGroup',["id" => $obj->id])->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.group_permission_edit_success'));
+ }
+}
diff --git a/src/controllers/PermissionController.php b/src/controllers/PermissionController.php
new file mode 100755
index 0000000..11e8ed5
--- /dev/null
+++ b/src/controllers/PermissionController.php
@@ -0,0 +1,84 @@
+r = App::make('permission_repository');
+ $this->v = $v;
+ $this->f = new FormModel($this->v, $this->r);
+ }
+
+ public function getList()
+ {
+ $objs = $this->r->all();
+
+ return View::make('laravel-authentication-acl::admin.permission.list')->with(["permissions" => $objs]);
+ }
+
+ public function editPermission()
+ {
+ try
+ {
+ $obj = $this->r->find(Input::get('id'));
+ }
+ catch(JacopoExceptionsInterface $e)
+ {
+ $obj = new Permission;
+ }
+
+ return View::make('laravel-authentication-acl::admin.permission.edit')->with(["permission" => $obj]);
+ }
+
+ public function postEditPermission()
+ {
+ $id = Input::get('id');
+
+ try
+ {
+ $obj = $this->f->process(Input::all());
+ }
+ catch(JacopoExceptionsInterface $e)
+ {
+ $errors = $this->f->getErrors();
+ // passing the id incase fails editing an already existing item
+ return Redirect::route("permission.edit", $id ? ["id" => $id]: [])->withInput()->withErrors($errors);
+ }
+
+ return Redirect::action('Jacopo\Authentication\Controllers\PermissionController@editPermission',["id" => $obj->id])->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.permission_permission_edit_success'));
+ }
+
+ public function deletePermission()
+ {
+ try
+ {
+ $this->f->delete(Input::all());
+ }
+ catch(JacopoExceptionsInterface $e)
+ {
+ $errors = $this->f->getErrors();
+ return Redirect::action('Jacopo\Authentication\Controllers\PermissionController@getList')->withErrors($errors);
+ }
+ return Redirect::action('Jacopo\Authentication\Controllers\PermissionController@getList')->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.permission_permission_delete_success'));
+ }
+}
\ No newline at end of file
diff --git a/app/Authentication/Controllers/UserController.php b/src/controllers/UserController.php
similarity index 50%
rename from app/Authentication/Controllers/UserController.php
rename to src/controllers/UserController.php
index eefc70c..aa38e6d 100755
--- a/app/Authentication/Controllers/UserController.php
+++ b/src/controllers/UserController.php
@@ -1,45 +1,44 @@
-user_repository = App::make('user_repository');
$this->user_validator = $v;
- //@todo use IOC correctly with a factory and passing the correct parameters
- $this->f = new FormModel($this->user_validator, $this->user_repository);
+ $this->f = App::make('form_model', [$this->user_validator, $this->user_repository]);
$this->form_helper = $fh;
$this->profile_validator = $vp;
$this->profile_repository = App::make('profile_repository');
@@ -59,18 +57,18 @@ public function __construct(UserValidator $v, FormHelper $fh, UserProfileValidat
$this->custom_profile_repository = App::make('custom_profile_repository');
}
- public function getList(Request $request)
+ public function getList()
{
- $users = $this->user_repository->all($request->except(['page']));
+ $users = $this->user_repository->all(Input::except(['page']));
- return View::make('laravel-authentication-acl::admin.user.list')->with(["users" => $users, "request" => $request]);
+ return View::make('laravel-authentication-acl::admin.user.list')->with(["users" => $users]);
}
- public function editUser(Request $request)
+ public function editUser()
{
try
{
- $user = $this->user_repository->find($request->get('id'));
+ $user = $this->user_repository->find(Input::get('id'));
} catch(JacopoExceptionsInterface $e)
{
$user = new User;
@@ -80,14 +78,14 @@ public function editUser(Request $request)
return View::make('laravel-authentication-acl::admin.user.edit')->with(["user" => $user, "presenter" => $presenter]);
}
- public function postEditUser(Request $request)
+ public function postEditUser()
{
- $id = $request->get('id');
+ $id = Input::get('id');
DbHelper::startTransaction();
try
{
- $user = $this->f->process($request->all());
+ $user = $this->f->process(Input::all());
$this->profile_repository->attachEmptyProfile($user);
} catch(JacopoExceptionsInterface $e)
{
@@ -99,65 +97,65 @@ public function postEditUser(Request $request)
DbHelper::commit();
- return Redirect::route('users.edit', ["id" => $user->id])
- ->withMessage(Config::get('acl_messages.flash.success.user_edit_success'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editUser', ["id" => $user->id])
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.user_edit_success'));
}
- public function deleteUser(Request $request)
+ public function deleteUser()
{
try
{
- $this->f->delete($request->all());
+ $this->f->delete(Input::all());
} catch(JacopoExceptionsInterface $e)
{
$errors = $this->f->getErrors();
- return Redirect::route('users.list')->withErrors($errors);
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@getList')->withErrors($errors);
}
- return Redirect::route('users.list')
- ->withMessage(Config::get('acl_messages.flash.success.user_delete_success'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@getList')
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.user_delete_success'));
}
- public function addGroup(Request $request)
+ public function addGroup()
{
- $user_id = $request->get('id');
- $group_id = $request->get('group_id');
+ $user_id = Input::get('id');
+ $group_id = Input::get('group_id');
try
{
$this->user_repository->addGroup($user_id, $group_id);
} catch(JacopoExceptionsInterface $e)
{
- return Redirect::route('users.edit', ["id" => $user_id])
- ->withErrors(new MessageBag(["name" => Config::get('acl_messages.flash.error.user_group_not_found')]));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editUser', ["id" => $user_id])
+ ->withErrors(new MessageBag(["name" => Config::get('laravel-authentication-acl::messages.flash.error.user_group_not_found')]));
}
- return Redirect::route('users.edit', ["id" => $user_id])
- ->withMessage(Config::get('acl_messages.flash.success.user_group_add_success'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editUser', ["id" => $user_id])
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.user_group_add_success'));
}
- public function deleteGroup(Request $request)
+ public function deleteGroup()
{
- $user_id = $request->get('id');
- $group_id = $request->get('group_id');
+ $user_id = Input::get('id');
+ $group_id = Input::get('group_id');
try
{
$this->user_repository->removeGroup($user_id, $group_id);
} catch(JacopoExceptionsInterface $e)
{
- return Redirect::route('users.edit', ["id" => $user_id])
- ->withErrors(new MessageBag(["name" => Config::get('acl_messages.flash.error.user_group_not_found')]));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editUser', ["id" => $user_id])
+ ->withErrors(new MessageBag(["name" => Config::get('laravel-authentication-acl::messages.flash.error.user_group_not_found')]));
}
- return Redirect::route('users.edit', ["id" => $user_id])
- ->withMessage(Config::get('acl_messages.flash.success.user_group_delete_success'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editUser', ["id" => $user_id])
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.user_group_delete_success'));
}
- public function editPermission(Request $request)
+ public function editPermission()
{
// prepare input
- $input = $request->all();
- $operation = $request->get('operation');
+ $input = Input::all();
+ $operation = Input::get('operation');
$this->form_helper->prepareSentryPermissionInput($input, $operation);
- $id = $request->get('id');
+ $id = Input::get('id');
try
{
@@ -165,28 +163,28 @@ public function editPermission(Request $request)
} catch(JacopoExceptionsInterface $e)
{
return Redirect::route("users.edit")->withInput()
- ->withErrors(new MessageBag(["permissions" => Config::get('acl_messages.flash.error.user_permission_not_found')]));
+ ->withErrors(new MessageBag(["permissions" => Config::get('laravel-authentication-acl::messages.flash.error.user_permission_not_found')]));
}
- return Redirect::route('users.edit', ["id" => $obj->id])
- ->withMessage(Config::get('acl_messages.flash.success.user_permission_add_success'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editUser', ["id" => $obj->id])
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.user_permission_add_success'));
}
- public function editProfile(Request $request)
+ public function editProfile()
{
- $user_id = $request->get('user_id');
+ $user_id = Input::get('user_id');
try
{
$user_profile = $this->profile_repository->getFromUserId($user_id);
} catch(UserNotFoundException $e)
{
- return Redirect::route('users.list')
- ->withErrors(new MessageBag(['model' => Config::get('acl_messages.flash.error.user_user_not_found')]));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@getList')
+ ->withErrors(new MessageBag(['model' => Config::get('laravel-authentication-acl::messages.flash.error.user_user_not_found')]));
} catch(ProfileNotFoundException $e)
{
$user_profile = new UserProfile(["user_id" => $user_id]);
}
- $custom_profile_repo = App::make('custom_profile_repository', [$user_profile->id]);
+ $custom_profile_repo = App::make('custom_profile_repository', $user_profile->id);
return View::make('laravel-authentication-acl::admin.user.profile')->with([
'user_profile' => $user_profile,
@@ -194,9 +192,9 @@ public function editProfile(Request $request)
]);
}
- public function postEditProfile(Request $request)
+ public function postEditProfile()
{
- $input = $request->all();
+ $input = Input::all();
$service = new UserProfileService($this->profile_validator);
try
@@ -211,14 +209,14 @@ public function postEditProfile(Request $request)
}
return Redirect::back()
->withInput()
- ->withMessage(Config::get('acl_messages.flash.success.user_profile_edit_success'));
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.user_profile_edit_success'));
}
- public function editOwnProfile(Request $request)
+ public function editOwnProfile()
{
$logged_user = $this->auth->getLoggedUser();
- $custom_profile_repo = App::make('custom_profile_repository', [$logged_user->user_profile()->first()->id]);
+ $custom_profile_repo = App::make('custom_profile_repository', $logged_user->user_profile()->first()->id);
return View::make('laravel-authentication-acl::admin.user.self-profile')
->with([
@@ -228,9 +226,9 @@ public function editOwnProfile(Request $request)
]);
}
- public function signup(Request $request)
+ public function signup()
{
- $enable_captcha = Config::get('acl_base.captcha_signup');
+ $enable_captcha = Config::get('laravel-authentication-acl::captcha_signup');
if($enable_captcha)
{
@@ -241,31 +239,31 @@ public function signup(Request $request)
return View::make('laravel-authentication-acl::client.auth.signup');
}
- public function postSignup(Request $request)
+ public function postSignup()
{
$service = App::make('register_service');
try
{
- $service->register($request->all());
+ $service->register(Input::all());
} catch(JacopoExceptionsInterface $e)
{
- return Redirect::route('user.signup')->withErrors($service->getErrors())->withInput();
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@signup')->withErrors($service->getErrors())->withInput();
}
- return Redirect::route("user.signup-success");
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@signupSuccess');
}
- public function signupSuccess(Request $request)
+ public function signupSuccess()
{
- $email_confirmation_enabled = Config::get('acl_base.email_confirmation');
+ $email_confirmation_enabled = Config::get('laravel-authentication-acl::email_confirmation');
return $email_confirmation_enabled ? View::make('laravel-authentication-acl::client.auth.signup-email-confirmation') : View::make('laravel-authentication-acl::client.auth.signup-success');
}
- public function emailConfirmation(Request $request)
+ public function emailConfirmation()
{
- $email = $request->get('email');
- $token = $request->get('token');
+ $email = Input::get('email');
+ $token = Input::get('token');
try
{
@@ -277,56 +275,56 @@ public function emailConfirmation(Request $request)
return View::make('laravel-authentication-acl::client.auth.email-confirmation');
}
- public function addCustomFieldType(Request $request)
+ public function addCustomFieldType()
{
- $description = $request->get('description');
- $user_id = $request->get('user_id');
+ $description = Input::get('description');
+ $user_id = Input::get('user_id');
try
{
$this->custom_profile_repository->addNewType($description);
} catch(PermissionException $e)
{
- return Redirect::route('users.profile.edit', ["user_id" => $user_id])
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@postEditProfile', ["user_id" => $user_id])
->withErrors(new MessageBag(["model" => $e->getMessage()]));
}
- return Redirect::route('users.profile.edit', ["user_id" => $user_id])
- ->with('message', Config::get('acl_messages.flash.success.custom_field_added'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@postEditProfile', ["user_id" => $user_id])
+ ->with('message', Config::get('laravel-authentication-acl::messages.flash.success.custom_field_added'));
}
- public function deleteCustomFieldType(Request $request)
+ public function deleteCustomFieldType()
{
- $id = $request->get('id');
- $user_id = $request->get('user_id');
+ $id = Input::get('id');
+ $user_id = Input::get('user_id');
try
{
$this->custom_profile_repository->deleteType($id);
} catch(ModelNotFoundException $e)
{
- return Redirect::route('users.profile.edit', ["user_id" => $user_id])
- ->withErrors(new MessageBag(["model" => Config::get('acl_messages.flash.error.custom_field_not_found')]));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@postEditProfile', ["user_id" => $user_id])
+ ->withErrors(new MessageBag(["model" => Config::get('laravel-authentication-acl::messages.flash.error.custom_field_not_found')]));
} catch(PermissionException $e)
{
- return Redirect::route('users.profile.edit', ["user_id" => $user_id])
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@postEditProfile', ["user_id" => $user_id])
->withErrors(new MessageBag(["model" => $e->getMessage()]));
}
- return Redirect::route('users.profile.edit', ["user_id" => $user_id])
- ->with('message', Config::get('acl_messages.flash.success.custom_field_removed'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@postEditProfile', ["user_id" => $user_id])
+ ->with('message', Config::get('laravel-authentication-acl::messages.flash.success.custom_field_removed'));
}
- public function changeAvatar(Request $request)
+ public function changeAvatar()
{
- $user_id = $request->get('user_id');
- $profile_id = $request->get('user_profile_id');
+ $user_id = Input::get('user_id');
+ $profile_id = Input::get('user_profile_id');
// validate input
$validator = new UserProfileAvatarValidator();
- if(!$validator->validate($request->all()))
+ if(!$validator->validate(Input::all()))
{
- return Redirect::route('users.profile.edit', ['user_id' => $user_id])
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editProfile', ['user_id' => $user_id])
->withInput()->withErrors($validator->getErrors());
}
@@ -336,12 +334,12 @@ public function changeAvatar(Request $request)
$this->profile_repository->updateAvatar($profile_id);
} catch(NotFoundException $e)
{
- return Redirect::route('users.profile.edit', ['user_id' => $user_id])->withInput()
- ->withErrors(new MessageBag(['avatar' => Config::get('acl_messages.flash.error.')]));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editProfile', ['user_id' => $user_id])->withInput()
+ ->withErrors(new MessageBag(['avatar' => Config::get('laravel-authentication-acl::messages.flash.error.')]));
}
- return Redirect::route('users.profile.edit', ['user_id' => $user_id])
- ->withMessage(Config::get('acl_messages.flash.success.avatar_edit_success'));
+ return Redirect::action('Jacopo\Authentication\Controllers\UserController@editProfile', ['user_id' => $user_id])
+ ->withMessage(Config::get('laravel-authentication-acl::messages.flash.success.avatar_edit_success'));
}
public function refreshCaptcha()
@@ -349,4 +347,4 @@ public function refreshCaptcha()
return View::make('laravel-authentication-acl::client.auth.captcha-image')
->with(['captcha' => App::make('captcha_validator')]);
}
-}
+}
\ No newline at end of file
diff --git a/src/database/testing-acceptance.sqlite b/src/database/testing-acceptance.sqlite
new file mode 100644
index 0000000..ed925a2
Binary files /dev/null and b/src/database/testing-acceptance.sqlite differ
diff --git a/src/filters.php b/src/filters.php
new file mode 100755
index 0000000..444cc8a
--- /dev/null
+++ b/src/filters.php
@@ -0,0 +1,64 @@
+check()) return Redirect::to('/admin/login');
+});
+
+/*
+ * Check that the current user is logged and active and redirect to client login or
+ * to custom url if given
+ */
+Route::filter('logged', function ($request, $response, $custom_url = null) {
+ $redirect_url = $custom_url ?: '/login';
+ if(!App::make('authenticator')->check()) return Redirect::to($redirect_url);
+});
+
+/*
+|--------------------------------------------------------------------------
+| Permission Filters
+|--------------------------------------------------------------------------
+|
+| Check that the current user is logged in and has a the permission corresponding to the config menu file
+|
+*/
+
+Route::filter('can_see', function () {
+ $route_helper = new FileRouteHelper;
+ if(!$route_helper->hasPermForRoute(Route::currentRouteName())) App::abort('401');
+});
+
+/*
+ * Check that the user has one of the permission given
+ */
+Route::filter('has_perm', function () {
+ $permissions = array_slice(func_get_args(), 2);
+
+ $authentication_helper = App::make('authentication_helper');
+ if(!$authentication_helper->hasPermission($permissions)) App::abort('401');
+});
+
+/*
+|--------------------------------------------------------------------------
+| Other Filters
+|--------------------------------------------------------------------------
+|
+*/
+
+Route::filter('ajax', function () {
+ if(!Request::ajax()) {
+ return Response::error('404');
+ }
+});
\ No newline at end of file
diff --git a/database/migrations/2014_02_19_095545_create_users_table.php b/src/migrations/2014_02_19_095545_create_users_table.php
similarity index 96%
rename from database/migrations/2014_02_19_095545_create_users_table.php
rename to src/migrations/2014_02_19_095545_create_users_table.php
index 4be076d..fd052fa 100755
--- a/database/migrations/2014_02_19_095545_create_users_table.php
+++ b/src/migrations/2014_02_19_095545_create_users_table.php
@@ -12,7 +12,6 @@ class CreateUsersTable extends Migration {
*/
public function up()
{
- Schema::dropIfExists('users');
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
@@ -42,7 +41,7 @@ public function up()
*/
public function down()
{
-
+ Schema::drop('users');
}
-}
+}
\ No newline at end of file
diff --git a/database/migrations/2014_02_19_095623_create_user_groups_table.php b/src/migrations/2014_02_19_095623_create_user_groups_table.php
similarity index 93%
rename from database/migrations/2014_02_19_095623_create_user_groups_table.php
rename to src/migrations/2014_02_19_095623_create_user_groups_table.php
index 2d18704..6f493e2 100755
--- a/database/migrations/2014_02_19_095623_create_user_groups_table.php
+++ b/src/migrations/2014_02_19_095623_create_user_groups_table.php
@@ -12,7 +12,6 @@ class CreateUserGroupsTable extends Migration {
*/
public function up()
{
- Schema::dropIfExists('users_groups');
Schema::create('users_groups', function(Blueprint $table)
{
$table->integer('user_id')->unsigned();
@@ -29,7 +28,7 @@ public function up()
*/
public function down()
{
-
+ Schema::drop('users_groups');
}
}
diff --git a/database/migrations/2014_02_19_095637_create_groups_table.php b/src/migrations/2014_02_19_095637_create_groups_table.php
similarity index 94%
rename from database/migrations/2014_02_19_095637_create_groups_table.php
rename to src/migrations/2014_02_19_095637_create_groups_table.php
index 110d208..fdb545e 100755
--- a/database/migrations/2014_02_19_095637_create_groups_table.php
+++ b/src/migrations/2014_02_19_095637_create_groups_table.php
@@ -12,7 +12,6 @@ class CreateGroupsTable extends Migration {
*/
public function up()
{
- Schema::dropIfExists('groups');
Schema::create('groups', function(Blueprint $table)
{
$table->increments('id');
@@ -32,7 +31,7 @@ public function up()
*/
public function down()
{
-
+ Schema::drop('groups');
}
}
diff --git a/src/migrations/2014_02_19_095645_create_user_throttle_table.php b/src/migrations/2014_02_19_095645_create_user_throttle_table.php
new file mode 100755
index 0000000..1256205
--- /dev/null
+++ b/src/migrations/2014_02_19_095645_create_user_throttle_table.php
@@ -0,0 +1,41 @@
+increments('id');
+ $table->integer('user_id')->unsigned();
+ $table->string('ip_address')->nullable();
+ $table->integer('attempts')->default(0);
+ $table->boolean('suspended')->default(0);
+ $table->boolean('banned')->default(0);
+ $table->timestamp('last_attempt_at')->nullable();
+ $table->timestamp('suspended_at')->nullable();
+ $table->timestamp('banned_at')->nullable();
+ // setup index
+ $table->index('user_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::drop('throttle');
+ }
+
+}
\ No newline at end of file
diff --git a/database/migrations/2014_02_19_160516_create_permission_table.php b/src/migrations/2014_02_19_160516_create_permission_table.php
similarity index 93%
rename from database/migrations/2014_02_19_160516_create_permission_table.php
rename to src/migrations/2014_02_19_160516_create_permission_table.php
index f407125..51f26c6 100755
--- a/database/migrations/2014_02_19_160516_create_permission_table.php
+++ b/src/migrations/2014_02_19_160516_create_permission_table.php
@@ -12,7 +12,6 @@ class CreatePermissionTable extends Migration {
*/
public function up()
{
- Schema::dropIfExists('permission');
Schema::create('permission', function(Blueprint $table)
{
$table->increments('id');
diff --git a/database/migrations/2014_02_26_165011_create_user_profile_table.php b/src/migrations/2014_02_26_165011_create_user_profile_table.php
similarity index 96%
rename from database/migrations/2014_02_26_165011_create_user_profile_table.php
rename to src/migrations/2014_02_26_165011_create_user_profile_table.php
index 56fb527..017d074 100755
--- a/database/migrations/2014_02_26_165011_create_user_profile_table.php
+++ b/src/migrations/2014_02_26_165011_create_user_profile_table.php
@@ -12,7 +12,6 @@ class CreateUserProfileTable extends Migration {
*/
public function up()
{
- Schema::dropIfExists('user_profile');
Schema::create('user_profile', function(Blueprint $table)
{
$table->increments('id');
diff --git a/database/migrations/2014_05_06_122145_create_profile_field_types.php b/src/migrations/2014_05_06_122145_create_profile_field_types.php
old mode 100755
new mode 100644
similarity index 91%
rename from database/migrations/2014_05_06_122145_create_profile_field_types.php
rename to src/migrations/2014_05_06_122145_create_profile_field_types.php
index fad3a03..783609e
--- a/database/migrations/2014_05_06_122145_create_profile_field_types.php
+++ b/src/migrations/2014_05_06_122145_create_profile_field_types.php
@@ -12,7 +12,6 @@ class CreateProfileFieldTypes extends Migration {
*/
public function up()
{
- Schema::dropIfExists('profile_field_type');
Schema::create('profile_field_type', function(Blueprint $table)
{
$table->increments('id');
diff --git a/database/migrations/2014_05_06_122155_create_profile_field.php b/src/migrations/2014_05_06_122155_create_profile_field.php
old mode 100755
new mode 100644
similarity index 96%
rename from database/migrations/2014_05_06_122155_create_profile_field.php
rename to src/migrations/2014_05_06_122155_create_profile_field.php
index dc2021f..5119eca
--- a/database/migrations/2014_05_06_122155_create_profile_field.php
+++ b/src/migrations/2014_05_06_122155_create_profile_field.php
@@ -12,7 +12,6 @@ class CreateProfileField extends Migration {
*/
public function up()
{
- Schema::dropIfExists('profile_field');
Schema::create('profile_field', function(Blueprint $table)
{
$table->increments('id');
diff --git a/src/migrations_test/2014_10_30_221001_create_tests_data_table.php b/src/migrations_test/2014_10_30_221001_create_tests_data_table.php
new file mode 100644
index 0000000..0032eb7
--- /dev/null
+++ b/src/migrations_test/2014_10_30_221001_create_tests_data_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->string('key');
+ $table->string('value');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('test_config');
+ }
+
+}
diff --git a/src/routes.php b/src/routes.php
new file mode 100755
index 0000000..90d962a
--- /dev/null
+++ b/src/routes.php
@@ -0,0 +1,218 @@
+ "csrf",
+ "uses" => "Jacopo\\Authentication\\Controllers\\AuthController@postAdminLogin"
+]);
+Route::post('/login', [
+ "before" => "csrf",
+ "uses" => "Jacopo\\Authentication\\Controllers\\AuthController@postClientLogin"
+]);
+/**
+ * Password recovery
+ */
+Route::get('/user/change-password', 'Jacopo\Authentication\Controllers\AuthController@getChangePassword');
+Route::get('/user/recover-password', "Jacopo\\Authentication\\Controllers\\AuthController@getReminder");
+Route::post('/user/change-password/', [
+ "before" => "csrf",
+ 'uses' => "Jacopo\\Authentication\\Controllers\\AuthController@postChangePassword"
+]);
+Route::get('/user/change-password-success', function ()
+{
+ return View::make('laravel-authentication-acl::client.auth.change-password-success');
+});
+Route::post('/user/reminder', [
+ "before" => "csrf",
+ 'uses' => "Jacopo\\Authentication\\Controllers\\AuthController@postReminder"
+]);
+Route::get('/user/reminder-success', function ()
+{
+ return View::make('laravel-authentication-acl::client.auth.reminder-success');
+});
+/**
+ * User signup
+ */
+Route::post('/user/signup', [
+ "before" => "csrf",
+ 'uses' => "Jacopo\\Authentication\\Controllers\\UserController@postSignup"
+]);
+Route::get('/user/signup', [
+ 'uses' => "Jacopo\\Authentication\\Controllers\\UserController@signup"
+]);
+Route::post('captcha-ajax', [
+ "before" => "captcha-ajax",
+ 'uses' => "Jacopo\\Authentication\\Controllers\\UserController@refreshCaptcha"
+]);
+Route::get('/user/email-confirmation', ['uses' => "Jacopo\\Authentication\\Controllers\\UserController@emailConfirmation"]);
+Route::get('/user/signup-success', 'Jacopo\Authentication\Controllers\UserController@signupSuccess');
+
+/*
+ |--------------------------------------------------------------------------
+ | Admin side
+ |--------------------------------------------------------------------------
+ |
+ */
+Route::group(['before' => ['admin_logged', 'can_see']], function ()
+{
+ /**
+ * dashboard
+ */
+ Route::get('/admin/users/dashboard', [
+ 'as' => 'dashboard.default',
+ 'uses' => 'Jacopo\Authentication\Controllers\DashboardController@base'
+ ]);
+
+ /**
+ * user
+ */
+ Route::get('/admin/users/list', [
+ 'as' => 'users.list',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@getList'
+ ]);
+ Route::get('/admin/users/edit', [
+ 'as' => 'users.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@editUser'
+ ]);
+ Route::post('/admin/users/edit', [
+ "before" => "csrf",
+ 'as' => 'users.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@postEditUser'
+ ]);
+ Route::get('/admin/users/delete', [
+ "before" => "csrf",
+ 'as' => 'users.delete',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@deleteUser'
+ ]);
+ Route::post('/admin/users/groups/add', [
+ "before" => "csrf",
+ 'as' => 'users.groups.add',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@addGroup'
+ ]);
+ Route::post('/admin/users/groups/delete', [
+ "before" => "csrf",
+ 'as' => 'users.groups.delete',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@deleteGroup'
+ ]);
+ Route::post('/admin/users/editpermission', [
+ "before" => "csrf",
+ 'as' => 'users.edit.permission',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@editPermission'
+ ]);
+ Route::get('/admin/users/profile/edit', [
+ 'as' => 'users.profile.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@editProfile'
+ ]);
+ Route::post('/admin/users/profile/edit', [
+ 'before' => 'csrf',
+ 'as' => 'users.profile.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@postEditProfile'
+ ]);
+ Route::post('/admin/users/profile/addField', [
+ 'before' => 'csrf',
+ 'as' => 'users.profile.addfield',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@addCustomFieldType'
+ ]);
+ Route::post('/admin/users/profile/deleteField', [
+ 'before' => 'csrf',
+ 'as' => 'users.profile.deletefield',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@deleteCustomFieldType'
+ ]);
+ Route::post('/admin/users/profile/avatar', [
+ 'before' => 'csrf',
+ 'as' => 'users.profile.changeavatar',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@changeAvatar'
+ ]);
+ Route::get('/admin/users/profile/self', [
+ 'as' => 'users.selfprofile.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\UserController@editOwnProfile'
+ ]);
+
+ /**
+ * groups
+ */
+ Route::get('/admin/groups/list', [
+ 'as' => 'groups.list',
+ 'uses' => 'Jacopo\Authentication\Controllers\GroupController@getList'
+ ]);
+ Route::get('/admin/groups/edit', [
+ 'as' => 'groups.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\GroupController@editGroup'
+ ]);
+ Route::post('/admin/groups/edit', [
+ "before" => "csrf",
+ 'as' => 'groups.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\GroupController@postEditGroup'
+ ]);
+ Route::get('/admin/groups/delete', [
+ "before" => "csrf",
+ 'as' => 'groups.delete',
+ 'uses' => 'Jacopo\Authentication\Controllers\GroupController@deleteGroup'
+ ]);
+ Route::post('/admin/groups/editpermission', [
+ "before" => "csrf",
+ 'as' => 'groups.edit.permission',
+ 'uses' => 'Jacopo\Authentication\Controllers\GroupController@editPermission'
+ ]);
+
+ /**
+ * permissions
+ */
+ Route::get('/admin/permissions/list', [
+ 'as' => 'permission.list',
+ 'uses' => 'Jacopo\Authentication\Controllers\PermissionController@getList'
+ ]);
+ Route::get('/admin/permissions/edit', [
+ 'as' => 'permission.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\PermissionController@editPermission'
+ ]);
+ Route::post('/admin/permissions/edit', [
+ "before" => "csrf",
+ 'as' => 'permission.edit',
+ 'uses' => 'Jacopo\Authentication\Controllers\PermissionController@postEditPermission'
+ ]);
+ Route::get('/admin/permissions/delete', [
+ "before" => "csrf",
+ 'as' => 'permission.delete',
+ 'uses' => 'Jacopo\Authentication\Controllers\PermissionController@deletePermission'
+ ]);
+});
+
+//////////////////// Other routes //////////////////////////
+
+if(Config::get('laravel-authentication-acl::handle_errors'))
+{
+ App::error(function (RuntimeException $exception, $code)
+ {
+ switch($code)
+ {
+ case '404':
+ return View::make('laravel-authentication-acl::client.exceptions.404');
+ break;
+ case '401':
+ return View::make('laravel-authentication-acl::client.exceptions.401');
+ break;
+ case '500':
+ return View::make('laravel-authentication-acl::client.exceptions.500');
+ break;
+ }
+ });
+
+ App::error(function (TokenMismatchException $exception)
+ {
+ return View::make('laravel-authentication-acl::client.exceptions.500');
+ });
+}
\ No newline at end of file
diff --git a/database/seeds/DatabaseSeeder.php b/src/seeds/DbSeeder.php
similarity index 88%
rename from database/seeds/DatabaseSeeder.php
rename to src/seeds/DbSeeder.php
index c3e6792..94a924f 100755
--- a/database/seeds/DatabaseSeeder.php
+++ b/src/seeds/DbSeeder.php
@@ -1,29 +1,28 @@
-call('LaravelAcl\Database\PermissionSeeder');
- $this->call('LaravelAcl\Database\GroupsSeeder');
- $this->call('LaravelAcl\Database\UserSeeder');
+ $this->call('Jacopo\Authentication\Seeds\PermissionSeeder');
+ $this->call('Jacopo\Authentication\Seeds\GroupsSeeder');
+ $this->call('Jacopo\Authentication\Seeds\UserSeeder');
Eloquent::reguard();
}
}
-class PermissionSeeder extends Seeder
+class PermissionSeeder
{
public function run ()
{
@@ -59,7 +58,7 @@ public function run ()
/**
* @property mixed group_repository
*/
-class GroupsSeeder extends Seeder
+class GroupsSeeder
{
public function run ()
@@ -90,7 +89,7 @@ public function run ()
}
}
-class UserSeeder extends Seeder
+class UserSeeder
{
protected $admin_email = "admin@admin.com";
protected $admin_password = "password";
diff --git a/app/Authentication/subscribers.php b/src/subscribers.php
similarity index 80%
rename from app/Authentication/subscribers.php
rename to src/subscribers.php
index 23a432f..f251925 100755
--- a/app/Authentication/subscribers.php
+++ b/src/subscribers.php
@@ -7,7 +7,7 @@
| Check if the current record is editable
|
*/
-use LaravelAcl\Authentication\Events\EditableSubscriber;
+use Jacopo\Authentication\Events\EditableSubscriber;
Event::subscribe(new EditableSubscriber());
/*
|--------------------------------------------------------------------------
@@ -17,5 +17,5 @@
| Check if the current use can edit the Profile permission types
|
*/
-use LaravelAcl\Authentication\Classes\CustomProfile\Events\ProfilePermissionSubscriber;
+use Jacopo\Authentication\Classes\CustomProfile\Events\ProfilePermissionSubscriber;
Event::subscribe(new ProfilePermissionSubscriber());
diff --git a/src/validators.php b/src/validators.php
new file mode 100755
index 0000000..aeb3c61
--- /dev/null
+++ b/src/validators.php
@@ -0,0 +1,7 @@
+getErrorMessage() );
\ No newline at end of file
diff --git a/resources/views/admin/auth/login.blade.php b/src/views/admin/auth/login.blade.php
similarity index 71%
rename from resources/views/admin/auth/login.blade.php
rename to src/views/admin/auth/login.blade.php
index 88c4971..b813881 100755
--- a/resources/views/admin/auth/login.blade.php
+++ b/src/views/admin/auth/login.blade.php
@@ -7,7 +7,7 @@
- Login to {!!Config::get('acl_base.app_name')!!}
+ Login to {{Config::get('laravel-authentication-acl::app_name')}}
@if( isset($message) )
@@ -19,13 +19,13 @@
@endforeach
@endif
- {!! Form::open(array('url' => URL::route("user.login.process"), 'method' => 'post') ) !!}
+ {{Form::open(array('url' => URL::action("Jacopo\Authentication\Controllers\AuthController@postAdminLogin"), 'method' => 'post') )}}
- {!! Form::label('remember','Remember me') !!}
- {!! Form::checkbox('remember') !!}
+ {{Form::label('remember','Remember me')}}
+ {{Form::checkbox('remember')}}
- {!! Form::close() !!}
+ {{Form::close()}}
- {!! link_to_route('user.reminder.process','Forgot password?') !!}
+ {{link_to_action('Jacopo\Authentication\Controllers\AuthController@getReminder','Forgot password?')}}
diff --git a/resources/views/admin/dashboard/default.blade.php b/src/views/admin/dashboard/default.blade.php
old mode 100755
new mode 100644
similarity index 86%
rename from resources/views/admin/dashboard/default.blade.php
rename to src/views/admin/dashboard/default.blade.php
index b8cbf03..a86223b
--- a/resources/views/admin/dashboard/default.blade.php
+++ b/src/views/admin/dashboard/default.blade.php
@@ -11,13 +11,13 @@
- {!! $registered !!}
+ {{$registered}}
Total users
- {!! $active !!}
+ {{$active}}
Active users
- {!! $pending !!}
+ {{$pending}}
Pending users
- {!! $banned !!}
+ {{$banned}}
Banned users
diff --git a/resources/views/admin/group/edit.blade.php b/src/views/admin/group/edit.blade.php
similarity index 58%
rename from resources/views/admin/group/edit.blade.php
rename to src/views/admin/group/edit.blade.php
index d1f8855..781886d 100755
--- a/resources/views/admin/group/edit.blade.php
+++ b/src/views/admin/group/edit.blade.php
@@ -9,7 +9,7 @@
{{-- model general errors from the form --}}
@if($errors->has('model') )
- {!! $errors->first('model') !!}
+ {{$errors->first('model')}}
@endif
{{-- successful message --}}
@@ -19,24 +19,24 @@
@endif
- {!! isset($group->id) ? ' Edit' : ' Create' !!} group
+ {{isset($group->id) ? ' Edit' : ' Create'}} group
{{-- group base form --}}
General data
- {!! Form::model($group, [ 'url' => [URL::route('groups.edit'), $group->id], 'method' => 'post'] ) !!}
+ {{Form::model($group, [ 'url' => [URL::action('Jacopo\Authentication\Controllers\GroupController@postEditGroup'), $group->id], 'method' => 'post'] ) }}
- {!! Form::label('name','Name: *') !!}
- {!! Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'group name']) !!}
+ {{Form::label('name','Name: *')}}
+ {{Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'group name'])}}
- {!! $errors->first('name') !!}
- {!! Form::hidden('id') !!}
- Delete
- {!! Form::submit('Save', array("class"=>"btn btn-info pull-right ")) !!}
- {!! Form::close() !!}
+ {{$errors->first('name')}}
+ {{Form::hidden('id')}}
+ Delete
+ {{Form::submit('Save', array("class"=>"btn btn-info pull-right "))}}
+ {{Form::close()}}
{{-- group permission form --}}
diff --git a/resources/views/admin/group/groups-table.blade.php b/src/views/admin/group/groups-table.blade.php
similarity index 54%
rename from resources/views/admin/group/groups-table.blade.php
rename to src/views/admin/group/groups-table.blade.php
index 22856e9..fa0e4f7 100755
--- a/resources/views/admin/group/groups-table.blade.php
+++ b/src/views/admin/group/groups-table.blade.php
@@ -1,6 +1,6 @@
@if( ! $groups->isEmpty() )
@@ -14,11 +14,11 @@
@foreach($groups as $group)
- {!! $group->name !!} |
+ {{$group->name}} |
@if(! $group->protected)
-
-
+
+
@else
@@ -33,5 +33,5 @@
No results found.
@endif
- {!! $groups->appends($request->except(['page']) )->render() !!}
+ {{$groups->appends(Input::except(['page']) )->links()}}
\ No newline at end of file
diff --git a/resources/views/admin/group/list.blade.php b/src/views/admin/group/list.blade.php
similarity index 84%
rename from resources/views/admin/group/list.blade.php
rename to src/views/admin/group/list.blade.php
index 12755f0..bf62d25 100755
--- a/resources/views/admin/group/list.blade.php
+++ b/src/views/admin/group/list.blade.php
@@ -12,17 +12,17 @@
{{-- print messages --}}
@if( isset($message) )
- {!! $message !!}
+ {{$message}}
@endif
{{-- print errors --}}
@if($errors && ! $errors->isEmpty() )
@foreach($errors->all() as $error)
- {!! $error !!}
+ {{$error}}
@endforeach
@endif
- {!! $request->all() ? 'Search results:' : 'Groups' !!}
+ {{Input::all() ? 'Search results:' : 'Groups'}}
@include('laravel-authentication-acl::admin.group.groups-table')
diff --git a/resources/views/admin/group/perm.blade.php b/src/views/admin/group/perm.blade.php
similarity index 55%
rename from resources/views/admin/group/perm.blade.php
rename to src/views/admin/group/perm.blade.php
index 24673b9..e89386c 100755
--- a/resources/views/admin/group/perm.blade.php
+++ b/src/views/admin/group/perm.blade.php
@@ -1,35 +1,35 @@
-{!! Form::open(["route" => "groups.edit.permission","role"=>"form", 'class' => 'form-add-perm']) !!}
+{{Form::open(["route" => "groups.edit.permission","role"=>"form", 'class' => 'form-add-perm'])}}
@if(! $group->exists)
You need to create a group first.
@endif
-{!! Form::close() !!}
+{{Form::close()}}
@if( $presenter->permissions )
@foreach($presenter->permissions_obj as $permission)
- {!! Form::open(["route" => "groups.edit.permission", "role"=>"form", 'name' => $permission->permission]) !!}
+ {{Form::open(["route" => "groups.edit.permission", "role"=>"form", 'name' => $permission->permission])}}
- {!! Form::close() !!}
+ {{Form::close()}}
@endforeach
@elseif($group->exists)
There is no permission associated to the group.
diff --git a/src/views/admin/group/search.blade.php b/src/views/admin/group/search.blade.php
new file mode 100755
index 0000000..1b93ccb
--- /dev/null
+++ b/src/views/admin/group/search.blade.php
@@ -0,0 +1,18 @@
+
+
+ Group search
+
+
+ {{Form::open(['action' => 'Jacopo\Authentication\Controllers\GroupController@getList','method' => 'get'])}}
+
+
+ {{Form::label('name','Name:')}}
+ {{Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'group name'])}}
+
+ {{$errors->first('name')}}
+ {{Form::submit('Search', ["class" => "btn btn-info pull-right
+ "])}}
+ {{Form::close()}}
+
+
- @yield('content')
-
+@extends('laravel-authentication-acl::admin.layouts.base')
+
+@section('container')
+
+ @yield('content')
+
@stop
\ No newline at end of file
diff --git a/resources/views/admin/layouts/base-2cols.blade.php b/src/views/admin/layouts/base-2cols.blade.php
similarity index 97%
rename from resources/views/admin/layouts/base-2cols.blade.php
rename to src/views/admin/layouts/base-2cols.blade.php
index c4e1ff1..5764395 100755
--- a/resources/views/admin/layouts/base-2cols.blade.php
+++ b/src/views/admin/layouts/base-2cols.blade.php
@@ -1,12 +1,12 @@
-@extends('laravel-authentication-acl::admin.layouts.base')
-
-@section('container')
-
-
-
- @yield('content')
-
-
+@extends('laravel-authentication-acl::admin.layouts.base')
+
+@section('container')
+
+
+
+ @yield('content')
+
+
@stop
\ No newline at end of file
diff --git a/resources/views/admin/layouts/base.blade.php b/src/views/admin/layouts/base.blade.php
similarity index 62%
rename from resources/views/admin/layouts/base.blade.php
rename to src/views/admin/layouts/base.blade.php
index d9a7f80..755266b 100755
--- a/resources/views/admin/layouts/base.blade.php
+++ b/src/views/admin/layouts/base.blade.php
@@ -10,11 +10,11 @@
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/bootstrap.min.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/style.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/baselayout.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/fonts.css') !!}
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css') !!}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/bootstrap.min.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/style.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/baselayout.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/fonts.css') }}
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css') }}
@yield('head_css')
{{-- End head css --}}
@@ -38,8 +38,8 @@
{{-- Start footer scripts --}}
@yield('before_footer_scripts')
- {!! HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/jquery-1.10.2.min.js') !!}
- {!! HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/bootstrap.min.js') !!}
+ {{ HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/jquery-1.10.2.min.js') }}
+ {{ HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/bootstrap.min.js') }}
@yield('footer_scripts')
{{-- End footer scripts --}}
diff --git a/resources/views/admin/layouts/baseauth.blade.php b/src/views/admin/layouts/baseauth.blade.php
similarity index 60%
rename from resources/views/admin/layouts/baseauth.blade.php
rename to src/views/admin/layouts/baseauth.blade.php
index 3bea565..a0616e4 100755
--- a/resources/views/admin/layouts/baseauth.blade.php
+++ b/src/views/admin/layouts/baseauth.blade.php
@@ -9,10 +9,10 @@
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/bootstrap.min.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/style.css') !!}
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/fonts.css') !!}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/bootstrap.min.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/style.css') }}
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/fonts.css') }}
@yield('head_css')
{{-- End head css --}}
@@ -31,7 +31,7 @@
{{-- Start footer scripts --}}
- {!! HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/jquery-1.10.2.min.js') !!}
- {!! HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/bootstrap.min.js') !!}
+ {{ HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/jquery-1.10.2.min.js') }}
+ {{ HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/bootstrap.min.js') }}
\ No newline at end of file
diff --git a/resources/views/admin/layouts/navbar.blade.php b/src/views/admin/layouts/navbar.blade.php
similarity index 72%
rename from resources/views/admin/layouts/navbar.blade.php
rename to src/views/admin/layouts/navbar.blade.php
index 0917e55..fad1152 100755
--- a/resources/views/admin/layouts/navbar.blade.php
+++ b/src/views/admin/layouts/navbar.blade.php
@@ -13,7 +13,7 @@
@@ -21,15 +21,15 @@
@include('laravel-authentication-acl::admin.layouts.partials.avatar', ['size' => 30])
- {!! isset($logged_user) ? $logged_user->email : 'User' !!}
+ {{isset($logged_user) ? $logged_user->email : 'User'}}
diff --git a/src/views/admin/layouts/partials/avatar.blade.php b/src/views/admin/layouts/partials/avatar.blade.php
new file mode 100644
index 0000000..397a377
--- /dev/null
+++ b/src/views/admin/layouts/partials/avatar.blade.php
@@ -0,0 +1,5 @@
+@if(isset($logged_user) && $logged_user->user_profile()->count())
+
+@else
+
+@endif
\ No newline at end of file
diff --git a/src/views/admin/layouts/sidebar.blade.php b/src/views/admin/layouts/sidebar.blade.php
new file mode 100755
index 0000000..4067c4b
--- /dev/null
+++ b/src/views/admin/layouts/sidebar.blade.php
@@ -0,0 +1,7 @@
+
diff --git a/src/views/admin/mail/registration-activated-client.blade.php b/src/views/admin/mail/registration-activated-client.blade.php
new file mode 100755
index 0000000..09e97b7
--- /dev/null
+++ b/src/views/admin/mail/registration-activated-client.blade.php
@@ -0,0 +1,18 @@
+
+
+
+
+
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') }}
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') }}
+
+
+Welcome to {{Config::get('laravel-authentication-acl::app_name')}}
+
+ Dear: {{$body['email']}}
+ Your email has been confirmed succesfully.
+ You can now login to the website using the
+ Following link.
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/mail/registration-confirmed-client.blade.php b/src/views/admin/mail/registration-confirmed-client.blade.php
new file mode 100755
index 0000000..b23d642
--- /dev/null
+++ b/src/views/admin/mail/registration-confirmed-client.blade.php
@@ -0,0 +1,22 @@
+
+
+
+
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') }}
+
+
+Welcome to: {{Config::get('laravel-authentication-acl::app_name')}}
+
+ Dear: {{$body['first_name']}}
+ You account has been created. You can now login to the website using the
+ Following link.
+
+ Please find your account details below:
+
+ - Username: {{$body['email']}}
+ - Password: {{$body['password']}}
+
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/mail/registration-waiting-client.blade.php b/src/views/admin/mail/registration-waiting-client.blade.php
new file mode 100755
index 0000000..07fb4ad
--- /dev/null
+++ b/src/views/admin/mail/registration-waiting-client.blade.php
@@ -0,0 +1,22 @@
+
+
+
+
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') }}
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') }}
+
+
+ Registration request on: {{Config::get('laravel-authentication-acl::app_name')}}
+
+ Dear: {{$body['first_name']}}
+ You account has been created. However, before you can use it you need to confirm your email address first by clicking the
+ Following link
+
+ Please find your account details below:
+
+ - Username: {{$body['email']}}
+ - Password: {{$body['password']}}
+
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/mail/reminder.blade.php b/src/views/admin/mail/reminder.blade.php
new file mode 100755
index 0000000..7282432
--- /dev/null
+++ b/src/views/admin/mail/reminder.blade.php
@@ -0,0 +1,15 @@
+
+
+
+
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/mail-base.css') }}
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') }}
+
+
+ Password recovery for {{Config::get('laravel-authentication-acl::app_name')}}
+
+ We received a request to change your password, if you authorize it {{$body}}
+ Otherwise ignore this email.
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/permission/edit.blade.php b/src/views/admin/permission/edit.blade.php
new file mode 100755
index 0000000..9fb883e
--- /dev/null
+++ b/src/views/admin/permission/edit.blade.php
@@ -0,0 +1,59 @@
+@extends('laravel-authentication-acl::admin.layouts.base-2cols')
+
+@section('title')
+Admin area: edit permission
+@stop
+
+@section('content')
+
+
+
+ {{-- model general errors from the form --}}
+ @if($errors->has('model') )
+ {{$errors->first('model')}}
+ @endif
+
+ {{-- successful message --}}
+
+ @if( isset($message) )
+ {{$message}}
+ @endif
+
+
+ {{isset($permission->id) ? ' Edit' : ' Create'}} permission
+
+
+ {{Form::model($permission, [ 'url' => [URL::action('Jacopo\Authentication\Controllers\PermissionController@editPermission'), $permission->id], 'method' => 'post'] ) }}
+
+
+ {{Form::label('description','Description: *')}}
+ {{Form::text('description', null, ['class' => 'form-control', 'placeholder' => 'permission description', 'id' => 'slugme'])}}
+
+ {{$errors->first('description')}}
+
+
+ {{Form::label('permission','Permission: *')}}
+ {{Form::text('permission', null, ['class' => 'form-control', 'placeholder' => 'permission description', 'id' => 'slug'])}}
+
+ {{$errors->first('permission')}}
+ {{Form::hidden('id')}}
+ Delete
+ {{Form::submit('Save', array("class"=>"btn btn-info pull-right "))}}
+ {{Form::close()}}
+
+
+
+
+@stop
+
+@section('footer_scripts')
+{{HTML::script('packages/jacopo/laravel-authentication-acl/js/vendor/slugit.js')}}
+
+@stop
\ No newline at end of file
diff --git a/resources/views/admin/permission/list.blade.php b/src/views/admin/permission/list.blade.php
similarity index 88%
rename from resources/views/admin/permission/list.blade.php
rename to src/views/admin/permission/list.blade.php
index 5887c96..e4383c4 100755
--- a/resources/views/admin/permission/list.blade.php
+++ b/src/views/admin/permission/list.blade.php
@@ -15,9 +15,9 @@
@endif
{{-- print errors --}}
@if($errors && ! $errors->isEmpty() )
- @foreach($errors->all() as $error)
- {{$error}}
- @endforeach
+ @foreach($errors->all() as $error)
+ {{$error}}
+ @endforeach
@endif
diff --git a/resources/views/admin/permission/permission-table.blade.php b/src/views/admin/permission/permission-table.blade.php
similarity index 53%
rename from resources/views/admin/permission/permission-table.blade.php
rename to src/views/admin/permission/permission-table.blade.php
index 2acb465..3cf702f 100755
--- a/resources/views/admin/permission/permission-table.blade.php
+++ b/src/views/admin/permission/permission-table.blade.php
@@ -1,6 +1,6 @@
@if( ! $permissions->isEmpty() )
@@ -15,12 +15,12 @@
@foreach($permissions as $permission)
- {!! $permission->description !!} |
- {!! $permission->permission !!} |
+ {{$permission->description}} |
+ {{$permission->permission}} |
@if(! $permission->protected)
-
-
+
+
@else
diff --git a/resources/views/admin/user/custom-profile.blade.php b/src/views/admin/user/custom-profile.blade.php
old mode 100755
new mode 100644
similarity index 57%
rename from resources/views/admin/user/custom-profile.blade.php
rename to src/views/admin/user/custom-profile.blade.php
index 18db804..7d8d754
--- a/resources/views/admin/user/custom-profile.blade.php
+++ b/src/views/admin/user/custom-profile.blade.php
@@ -1,29 +1,29 @@
Custom fields:
{{-- add fields --}}
-{!! Form::open(["route" => 'users.profile.addfield', 'class' => 'form-add-profile-field', 'role' => 'form']) !!}
+{{Form::open(["action" => "Jacopo\Authentication\Controllers\UserController@addCustomFieldType", 'class' => 'form-add-profile-field', 'role' => 'form'])}}
-{!! Form::close() !!}
+{{Form::close()}}
{{-- delete fields --}}
@foreach($custom_profile->getAllTypesWithValues() as $profile_data)
-{!! Form::open(["route" => 'users.profile.deletefield', 'name' => $profile_data->id, 'role' => 'form']) !!}
+{{Form::open(["action" => "Jacopo\Authentication\Controllers\UserController@deleteCustomFieldType", 'name' => $profile_data->id, 'role' => 'form'])}}
-{!! Form::close() !!}
+{{Form::close()}}
@endforeach
@section('footer_scripts')
diff --git a/src/views/admin/user/edit.blade.php b/src/views/admin/user/edit.blade.php
new file mode 100755
index 0000000..053c1b9
--- /dev/null
+++ b/src/views/admin/user/edit.blade.php
@@ -0,0 +1,91 @@
+@extends('laravel-authentication-acl::admin.layouts.base-2cols')
+
+@section('title')
+Admin area: edit user
+@stop
+
+@section('content')
+
+
+
+ {{-- successful message --}}
+
+ @if( isset($message) )
+ {{$message}}
+ @endif
+ @if($errors->has('model') )
+ {{$errors->first('model')}}
+ @endif
+
+
+
+
+ {{isset($user->id) ? ' Edit' : ' Create'}} user
+
+
+
+
+
+
+ Login data
+ {{Form::model($user, [ 'url' => URL::action('Jacopo\Authentication\Controllers\UserController@postEditUser')] ) }}
+ {{-- Field hidden to fix chrome and safari autocomplete bug --}}
+ {{Form::password('__to_hide_password_autocomplete', ['class' => 'hidden'])}}
+
+
+ {{Form::label('email','Email: *')}}
+ {{Form::text('email', null, ['class' => 'form-control', 'placeholder' => 'user email', 'autocomplete' => 'off'])}}
+
+ {{$errors->first('email')}}
+
+
+ {{Form::label('password',isset($user->id) ? "Change password: " : "Password: ")}}
+ {{Form::password('password', ['class' => 'form-control', 'autocomplete' => 'off', 'placeholder' => ''])}}
+
+ {{$errors->first('password')}}
+
+
+ {{Form::label('password_confirmation',isset($user->id) ? "Confirm change password: " : "Confirm password: ")}}
+ {{Form::password('password_confirmation', ['class' => 'form-control', 'placeholder' => '','autocomplete' => 'off'])}}
+
+ {{$errors->first('password_confirmation')}}
+
+ {{Form::label("activated","User active: ")}}
+ {{Form::select('activated', ["1" => "Yes", "0" => "No"], (isset($user->activated) && $user->activated) ? $user->activated : "0", ["class"=> "form-control"] )}}
+
+
+ {{Form::label("banned","Banned: ")}}
+ {{Form::select('banned', ["1" => "Yes", "0" => "No"], (isset($user->banned) && $user->banned) ? $user->banned : "0", ["class"=> "form-control"] )}}
+
+ {{Form::hidden('id')}}
+ {{Form::hidden('form_name','user')}}
+ Delete user
+ {{Form::submit('Save', array("class"=>"btn btn-info pull-right "))}}
+ {{Form::close()}}
+
+
+ Groups
+ @include('laravel-authentication-acl::admin.user.groups')
+
+ {{-- group permission form --}}
+ Permission
+ {{-- permissions --}}
+ @include('laravel-authentication-acl::admin.user.perm')
+
+
+
+
+
+@stop
+
+@section('footer_scripts')
+
+@stop
\ No newline at end of file
diff --git a/resources/views/admin/user/groups.blade.php b/src/views/admin/user/groups.blade.php
similarity index 56%
rename from resources/views/admin/user/groups.blade.php
rename to src/views/admin/user/groups.blade.php
index 1f84cfc..d895221 100755
--- a/resources/views/admin/user/groups.blade.php
+++ b/src/views/admin/user/groups.blade.php
@@ -1,34 +1,34 @@
{{-- add group --}}
-{!! Form::open(["route" => "users.groups.add", 'class' => 'form-add-group', 'role' => 'form']) !!}
+{{Form::open(["action" => "Jacopo\Authentication\Controllers\UserController@addGroup", 'class' => 'form-add-group', 'role' => 'form'])}}
-{!! Form::hidden('id', $user->id) !!}
+{{Form::hidden('id', $user->id)}}
@if(! $user->exists)
You need to create the user first.
@endif
-{!! Form::close() !!}
+{{Form::close()}}
{{-- delete group --}}
@if( ! $user->groups->isEmpty() )
@foreach($user->groups as $group)
- {!! Form::open(["route" => "users.groups.delete", "role"=>"form", 'name' => $group->id]) !!}
+ {{Form::open(["action" => "Jacopo\Authentication\Controllers\UserController@deleteGroup", "role"=>"form", 'name' => $group->id])}}
- {!! Form::close() !!}
+ {{Form::close()}}
@endforeach
@elseif($user->exists)
There is no groups associated to the user.
diff --git a/resources/views/admin/user/list.blade.php b/src/views/admin/user/list.blade.php
similarity index 87%
rename from resources/views/admin/user/list.blade.php
rename to src/views/admin/user/list.blade.php
index 261fe82..0f16473 100755
--- a/resources/views/admin/user/list.blade.php
+++ b/src/views/admin/user/list.blade.php
@@ -11,12 +11,12 @@
{{-- print messages --}}
@if( isset($message) )
- {!! $message !!}
+ {{$message}}
@endif
{{-- print errors --}}
@if($errors && ! $errors->isEmpty() )
@foreach($errors->all() as $error)
- {!! $error !!}
+ {{$error}}
@endforeach
@endif
{{-- user lists --}}
diff --git a/src/views/admin/user/partials/avatar_upload.blade.php b/src/views/admin/user/partials/avatar_upload.blade.php
new file mode 100644
index 0000000..fa74015
--- /dev/null
+++ b/src/views/admin/user/partials/avatar_upload.blade.php
@@ -0,0 +1,22 @@
+
+
+ Avatar
+
+ ->avatar}})
+
+
+
+ {{Form::open(['action' => 'Jacopo\Authentication\Controllers\UserController@changeAvatar', 'method' => 'POST', 'files' => true])}}
+ {{Form::label('avatar',$user_profile->avatar ? 'Change avatar: ' : 'Upload avatar: ')}}
+
+ {{Form::file('avatar', ['class' => 'form-control'])}}
+ {{$errors->first('avatar')}}
+
+ {{Form::hidden('user_id', $user_profile->user_id)}}
+ {{Form::hidden('user_profile_id', $user_profile->id)}}
+
+ {{Form::submit('Update avatar', ['class' => 'btn btn-info'])}}
+
+ {{Form::close()}}
+
+
\ No newline at end of file
diff --git a/resources/views/admin/user/partials/show_gravatar.blade.php b/src/views/admin/user/partials/show_gravatar.blade.php
old mode 100755
new mode 100644
similarity index 74%
rename from resources/views/admin/user/partials/show_gravatar.blade.php
rename to src/views/admin/user/partials/show_gravatar.blade.php
index 54ed4c8..3c40e97
--- a/resources/views/admin/user/partials/show_gravatar.blade.php
+++ b/src/views/admin/user/partials/show_gravatar.blade.php
@@ -2,7 +2,7 @@
Avatar
- ->avatar(170) !!})
+
diff --git a/src/views/admin/user/partials/sorting.blade.php b/src/views/admin/user/partials/sorting.blade.php
new file mode 100644
index 0000000..9a62e14
--- /dev/null
+++ b/src/views/admin/user/partials/sorting.blade.php
@@ -0,0 +1,23 @@
+
+
+@section('footer_scripts')
+@parent
+{{ HTML::script('packages/jacopo/laravel-authentication-acl/js/custom-ordering.js') }}
+@stop
\ No newline at end of file
diff --git a/resources/views/admin/user/perm.blade.php b/src/views/admin/user/perm.blade.php
similarity index 57%
rename from resources/views/admin/user/perm.blade.php
rename to src/views/admin/user/perm.blade.php
index 707ace0..98454bd 100755
--- a/resources/views/admin/user/perm.blade.php
+++ b/src/views/admin/user/perm.blade.php
@@ -1,37 +1,37 @@
{{-- add permission --}}
-{!! Form::open(["route" => "users.edit.permission","role"=>"form", 'class' => 'form-add-perm']) !!}
+{{Form::open(["route" => "users.edit.permission","role"=>"form", 'class' => 'form-add-perm'])}}
@if(! $user->exists)
You need to create the user first.
@endif
-{!! Form::close() !!}
+{{Form::close()}}
{{-- remove permission --}}
@if( $presenter->permissions )
@foreach($presenter->permissions_obj as $permission)
-{!! Form::open(["route" => "users.edit.permission", "name" => $permission->permission, "role"=>"form"]) !!}
+{{Form::open(["route" => "users.edit.permission", "name" => $permission->permission, "role"=>"form"])}}
-{!! Form::close() !!}
+{{Form::close()}}
@endforeach
@elseif($user->exists)
There is no permission associated to the user.
diff --git a/src/views/admin/user/profile.blade.php b/src/views/admin/user/profile.blade.php
new file mode 100755
index 0000000..08627c8
--- /dev/null
+++ b/src/views/admin/user/profile.blade.php
@@ -0,0 +1,126 @@
+@extends('laravel-authentication-acl::admin.layouts.base-2cols')
+
+@section('title')
+Admin area: Edit user profile
+@stop
+
+@section('content')
+
+
+
+ {{-- success message --}}
+
+ @if( isset($message) )
+ {{$message}}
+ @endif
+ @if( $errors->has('model') )
+ {{$errors->first('model')}}
+ @endif
+
+
+
+
+
+
+ @if(! $use_gravatar)
+ @include('laravel-authentication-acl::admin.user.partials.avatar_upload')
+ @else
+ @include('laravel-authentication-acl::admin.user.partials.show_gravatar')
+ @endif
+ User data
+ {{Form::model($user_profile,['route'=>'users.profile.edit', 'method' => 'post'])}}
+
+
+ {{Form::label('code','User code:')}}
+ {{Form::text('code', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('code')}}
+
+
+ {{Form::label('first_name','First name:')}}
+ {{Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('first_name')}}
+
+
+ {{Form::label('last_name','Last name: ')}}
+ {{Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('last_name')}}
+
+
+ {{Form::label('phone','Phone: ')}}
+ {{Form::text('phone', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('phone')}}
+
+
+ {{Form::label('state','State: ')}}
+ {{Form::text('state', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('state')}}
+
+
+ {{Form::label('var','Vat: ')}}
+ {{Form::text('var', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('vat')}}
+
+
+ {{Form::label('city','City: ')}}
+ {{Form::text('city', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('city')}}
+
+
+ {{Form::label('country','Country: ')}}
+ {{Form::text('country', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('country')}}
+
+
+ {{Form::label('zip','Zip: ')}}
+ {{Form::text('zip', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('zip')}}
+
+
+ {{Form::label('address','Address: ')}}
+ {{Form::text('address', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('address')}}
+ {{-- custom profile fields --}}
+ @foreach($custom_profile->getAllTypesWithValues() as $profile_data)
+
+ {{Form::label($profile_data->description)}}
+ {{Form::text("custom_profile_{$profile_data->id}", $profile_data->value, ["class" => "form-control"])}}
+ {{-- delete field --}}
+
+ @endforeach
+
+ {{Form::hidden('user_id', $user_profile->user_id)}}
+ {{Form::hidden('id', $user_profile->id)}}
+ {{Form::submit('Save',['class' =>'btn btn-info pull-right margin-bottom-30'])}}
+ {{Form::close()}}
+
+
+ @if($can_add_fields)
+ @include('laravel-authentication-acl::admin.user.custom-profile')
+ @endif
+
+
+
+
+
+
+@stop
diff --git a/src/views/admin/user/search.blade.php b/src/views/admin/user/search.blade.php
new file mode 100755
index 0000000..fa38152
--- /dev/null
+++ b/src/views/admin/user/search.blade.php
@@ -0,0 +1,57 @@
+
+
+ User search
+
+
+ {{Form::open(['action' => 'Jacopo\Authentication\Controllers\UserController@getList','method' => 'get'])}}
+
+
+ {{Form::label('email','Email: ')}}
+ {{Form::text('email', null, ['class' => 'form-control', 'placeholder' => 'user email'])}}
+
+ {{$errors->first('email')}}
+
+
+ {{Form::label('first_name','First name: ')}}
+ {{Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => 'first name'])}}
+
+ {{$errors->first('first_name')}}
+
+
+ {{Form::label('last_name','Last name:')}}
+ {{Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => 'last name'])}}
+
+ {{$errors->first('last_name')}}
+
+
+ {{Form::label('zip','Zip:')}}
+ {{Form::text('zip', null, ['class' => 'form-control', 'placeholder' => 'zip'])}}
+
+ {{$errors->first('zip')}}
+
+
+ {{Form::label('code','User code:')}}
+ {{Form::text('code', null, ['class' => 'form-control', 'placeholder' => 'user code'])}}
+
+ {{$errors->first('code')}}
+
+ {{Form::label('activated', 'Active: ')}}
+ {{Form::select('activated', ['' => 'Any', 1 => 'Yes', 0 => 'No'], Input::get('activated',''), ["class" => "form-control"])}}
+
+
+ {{Form::label('banned', 'Banned: ')}}
+ {{Form::select('banned', ['' => 'Any', 1 => 'Yes', 0 => 'No'], Input::get('banned',''), ["class" => "form-control"])}}
+
+
+ {{Form::label('group_id', 'Group: ')}}
+
+ {{Form::select('group_id', $group_values, Input::get('group_id',''), ["class" => "form-control"])}}
+
+ @include('laravel-authentication-acl::admin.user.partials.sorting')
+
+ {{Form::close()}}
+
+
\ No newline at end of file
diff --git a/src/views/admin/user/self-profile.blade.php b/src/views/admin/user/self-profile.blade.php
new file mode 100755
index 0000000..43a02fa
--- /dev/null
+++ b/src/views/admin/user/self-profile.blade.php
@@ -0,0 +1,134 @@
+@extends('laravel-authentication-acl::admin.layouts.base-2cols')
+
+@section('title')
+Admin area: Edit user profile
+@stop
+
+@section('content')
+
+
+
+ {{-- success message --}}
+
+ @if( isset($message) )
+ {{$message}}
+ @endif
+ @if( $errors->has('model') )
+ {{$errors->first('model')}}
+ @endif
+
+
+
+
+
+ @if(! $use_gravatar)
+ @include('laravel-authentication-acl::admin.user.partials.avatar_upload')
+ @else
+ @include('laravel-authentication-acl::admin.user.partials.show_gravatar')
+ @endif
+ User data
+ {{Form::model($user_profile,['route'=>'users.profile.edit', 'method' => 'post'])}}
+
+
+ {{Form::label('password','new password:')}}
+ {{Form::password('password', ['class' => 'form-control'])}}
+
+ {{$errors->first('password')}}
+
+
+ {{Form::label('password_confirmation','confirm password:')}}
+ {{Form::password('password_confirmation', ['class' => 'form-control'])}}
+
+
+
+ {{Form::label('code','User code:')}}
+ {{Form::text('code', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('code')}}
+
+
+ {{Form::label('first_name','First name:')}}
+ {{Form::text('first_name', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('first_name')}}
+
+
+ {{Form::label('last_name','Last name: ')}}
+ {{Form::text('last_name', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('last_name')}}
+
+
+ {{Form::label('phone','Phone: ')}}
+ {{Form::text('phone', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('phone')}}
+
+
+ {{Form::label('state','State: ')}}
+ {{Form::text('state', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('state')}}
+
+
+ {{Form::label('var','Vat: ')}}
+ {{Form::text('var', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('vat')}}
+
+
+ {{Form::label('city','City: ')}}
+ {{Form::text('city', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('city')}}
+
+
+ {{Form::label('country','Country: ')}}
+ {{Form::text('country', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('country')}}
+
+
+ {{Form::label('zip','Zip: ')}}
+ {{Form::text('zip', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('zip')}}
+
+
+ {{Form::label('address','Address: ')}}
+ {{Form::text('address', null, ['class' => 'form-control', 'placeholder' => ''])}}
+
+ {{$errors->first('address')}}
+ {{-- custom profile fields --}}
+ @foreach($custom_profile->getAllTypesWithValues() as $profile_data)
+
+ {{Form::label($profile_data->description)}}
+ {{Form::text("custom_profile_{$profile_data->id}", $profile_data->value, ["class" => "form-control"])}}
+ {{-- delete field --}}
+
+ @endforeach
+
+ {{Form::hidden('user_id', $user_profile->user_id)}}
+ {{Form::hidden('id', $user_profile->id)}}
+ {{Form::submit('Save',['class' =>'btn btn-info pull-right margin-bottom-30'])}}
+ {{Form::close()}}
+
+
+
+ @if($can_add_fields)
+ @include('laravel-authentication-acl::admin.user.custom-profile')
+ @endif
+
+
+
+
+
+
+
+@stop
diff --git a/resources/views/admin/user/user-table.blade.php b/src/views/admin/user/user-table.blade.php
similarity index 52%
rename from resources/views/admin/user/user-table.blade.php
rename to src/views/admin/user/user-table.blade.php
index 73cb28f..f514291 100755
--- a/resources/views/admin/user/user-table.blade.php
+++ b/src/views/admin/user/user-table.blade.php
@@ -1,24 +1,24 @@
- {!! $request->all() ? 'Search results:' : 'Users' !!}
+ {{Input::all() ? 'Search results:' : 'Users'}}
- {!! Form::open(['method' => 'get', 'class' => 'form-inline']) !!}
+ {{Form::open(['method' => 'get', 'class' => 'form-inline'])}}
- {!! Form::select('order_by', ["" => "select column", "first_name" => "First name", "last_name" => "Last name", "email" => "Email", "last_login" => "Last login", "active" => "Active"], $request->get('order_by',''), ['class' => 'form-control']) !!}
+ {{Form::select('order_by', ["" => "select column", "first_name" => "First name", "last_name" => "Last name", "email" => "Email", "last_login" => "Last login", "active" => "Active"], Input::get('order_by',''), ['class' => 'form-control'])}}
- {!! Form::select('ordering', ["asc" => "Ascending", "desc" => "descending"], $request->get('ordering','asc'), ['class' =>'form-control']) !!}
+ {{Form::select('ordering', ["asc" => "Ascending", "desc" => "descending"], Input::get('ordering','asc'), ['class' =>'form-control'])}}
- {!! Form::submit('Order', ['class' => 'btn btn-default']) !!}
+ {{Form::submit('Order', ['class' => 'btn btn-default'])}}
- {!! Form::close() !!}
+ {{Form::close()}}
@@ -38,15 +38,15 @@
@foreach($users as $user)
- {!! $user->email !!} |
- {!! $user->first_name !!} |
- {!! $user->last_name !!} |
- {!! $user->activated ? '' : '' !!} |
- {!! $user->last_login ? $user->last_login : 'not logged yet.' !!} |
+ {{$user->email}} |
+ {{$user->first_name}} |
+ {{$user->last_name}} |
+ {{$user->activated ? '' : ''}} |
+ {{$user->last_login ? $user->last_login : 'not logged yet.'}} |
@if(! $user->protected)
-
-
+
+
@else
@@ -57,7 +57,7 @@
@endforeach
- {!! $users->appends($request->except(['page']) )->render() !!}
+ {{$users->appends(Input::except(['page']) )->links()}}
@else
No results found.
diff --git a/src/views/client/auth/captcha-image.blade.php b/src/views/client/auth/captcha-image.blade.php
new file mode 100644
index 0000000..a00ded8
--- /dev/null
+++ b/src/views/client/auth/captcha-image.blade.php
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/views/client/auth/change-password-success.blade.php b/src/views/client/auth/change-password-success.blade.php
similarity index 83%
rename from resources/views/client/auth/change-password-success.blade.php
rename to src/views/client/auth/change-password-success.blade.php
index 65776d4..b9c8259 100755
--- a/resources/views/client/auth/change-password-success.blade.php
+++ b/src/views/client/auth/change-password-success.blade.php
@@ -9,7 +9,7 @@
Password changed successfully
Your password has been changed succesfully. Now you can login to our site.
- Go to homepage
+ Go to homepage
diff --git a/resources/views/client/auth/changepassword.blade.php b/src/views/client/auth/changepassword.blade.php
similarity index 63%
rename from resources/views/client/auth/changepassword.blade.php
rename to src/views/client/auth/changepassword.blade.php
index f6f5149..7c15d94 100755
--- a/resources/views/client/auth/changepassword.blade.php
+++ b/src/views/client/auth/changepassword.blade.php
@@ -7,30 +7,30 @@
- Change your password to {!! Config::get('acl_base.app_name') !!}
+ Change your password to {{Config::get('laravel-authentication-acl::app_name')}}
@if($errors && ! $errors->isEmpty() )
@foreach($errors->all() as $error)
- {!! $error !!}
+ {{$error}}
@endforeach
@endif
diff --git a/resources/views/client/auth/email-confirmation.blade.php b/src/views/client/auth/email-confirmation.blade.php
similarity index 86%
rename from resources/views/client/auth/email-confirmation.blade.php
rename to src/views/client/auth/email-confirmation.blade.php
index ab77d3d..a035ccb 100755
--- a/resources/views/client/auth/email-confirmation.blade.php
+++ b/src/views/client/auth/email-confirmation.blade.php
@@ -11,9 +11,9 @@
Oops, something went wrong: the email is invalid
@else
Congratulations, you successfully registered to
- {!! Config::get('acl_base.app_name') !!}
+ {{Config::get('laravel-authentication-acl::app_name')}}
Your email has been confirmed.
- Now you can login to the website using the {!! link_to('/login','Following link') !!}
+ Now you can login to the website using the {{link_to('/login','Following link')}}
@endif
diff --git a/resources/views/client/auth/login.blade.php b/src/views/client/auth/login.blade.php
similarity index 60%
rename from resources/views/client/auth/login.blade.php
rename to src/views/client/auth/login.blade.php
index b9760b8..d182429 100755
--- a/resources/views/client/auth/login.blade.php
+++ b/src/views/client/auth/login.blade.php
@@ -7,25 +7,25 @@
- Login to {!! Config::get('acl_base.app_name') !!}
+ Login to {{Config::get('laravel-authentication-acl::app_name')}}
@if( isset($message) )
- {!! $message !!}
+ {{$message}}
@endif
@if($errors && ! $errors->isEmpty() )
@foreach($errors->all() as $error)
- {!! $error !!}
+ {{$error}}
@endforeach
@endif
- {!! Form::open(array('url' => URL::route("user.login"), 'method' => 'post') ) !!}
+ {{Form::open(array('url' => URL::action("Jacopo\Authentication\Controllers\AuthController@postClientLogin"), 'method' => 'post') )}}
- {!! Form::label('remember','Remember me') !!}
- {!! Form::checkbox('remember')!!}
+ {{Form::label('remember','Remember me')}}
+ {{Form::checkbox('remember')}}
- {!! Form::close() !!}
+ {{Form::close()}}
- {!! link_to_route('user.recovery-password','Forgot password?') !!}
- or Signup here
+ {{link_to_action('Jacopo\Authentication\Controllers\AuthController@getReminder','Forgot password?')}}
+ or Signup here
diff --git a/resources/views/client/auth/reminder-success.blade.php b/src/views/client/auth/reminder-success.blade.php
similarity index 100%
rename from resources/views/client/auth/reminder-success.blade.php
rename to src/views/client/auth/reminder-success.blade.php
diff --git a/resources/views/client/auth/reminder.blade.php b/src/views/client/auth/reminder.blade.php
similarity index 69%
rename from resources/views/client/auth/reminder.blade.php
rename to src/views/client/auth/reminder.blade.php
index f9d9fbb..f850933 100755
--- a/resources/views/client/auth/reminder.blade.php
+++ b/src/views/client/auth/reminder.blade.php
@@ -15,23 +15,23 @@
@endforeach
@endif
diff --git a/resources/views/client/auth/signup-email-confirmation.blade.php b/src/views/client/auth/signup-email-confirmation.blade.php
similarity index 100%
rename from resources/views/client/auth/signup-email-confirmation.blade.php
rename to src/views/client/auth/signup-email-confirmation.blade.php
diff --git a/resources/views/client/auth/signup-success.blade.php b/src/views/client/auth/signup-success.blade.php
similarity index 65%
rename from resources/views/client/auth/signup-success.blade.php
rename to src/views/client/auth/signup-success.blade.php
index 8ccc604..522a222 100755
--- a/resources/views/client/auth/signup-success.blade.php
+++ b/src/views/client/auth/signup-success.blade.php
@@ -6,9 +6,9 @@
- Congratulations, you successfully registered to {!! Config::get('acl_base.app_name') !!}
+ Congratulations, you successfully registered to {{Config::get('laravel-authentication-acl::app_name')}}
Your user has been registered succesfully.
- Now you can login to the website using the {!! link_to('/login','Following link') !!}
+ Now you can login to the website using the {{link_to('/login','Following link')}}
@stop
\ No newline at end of file
diff --git a/resources/views/client/auth/signup.blade.php b/src/views/client/auth/signup.blade.php
similarity index 67%
rename from resources/views/client/auth/signup.blade.php
rename to src/views/client/auth/signup.blade.php
index 81ab63c..4fbc89a 100755
--- a/resources/views/client/auth/signup.blade.php
+++ b/src/views/client/auth/signup.blade.php
@@ -7,11 +7,11 @@
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/bootstrap.min.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/style.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/strength.css') !!}
- {!! HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') !!}
- {!! HTML::style('packages/jacopo/laravel-authentication-acl/css/fonts.css') !!}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/bootstrap.min.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/style.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/strength.css') }}
+ {{ HTML::style('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css') }}
+ {{ HTML::style('packages/jacopo/laravel-authentication-acl/css/fonts.css') }}
| | | |