diff --git a/core/lib/Thelia/Config/Resources/config.xml b/core/lib/Thelia/Config/Resources/config.xml
index 3857b0a4b..6731152c4 100755
--- a/core/lib/Thelia/Config/Resources/config.xml
+++ b/core/lib/Thelia/Config/Resources/config.xml
@@ -106,6 +106,8 @@
+
+
diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml
index 180077a4c..e6a545297 100755
--- a/core/lib/Thelia/Config/Resources/routing/admin.xml
+++ b/core/lib/Thelia/Config/Resources/routing/admin.xml
@@ -545,6 +545,15 @@
+
+
+
+ Thelia\Controller\Admin\AdminProfileController::defaultAction
+
+
+
+
+
diff --git a/core/lib/Thelia/Controller/Admin/AdminProfileController.php b/core/lib/Thelia/Controller/Admin/AdminProfileController.php
new file mode 100644
index 000000000..91f3f2031
--- /dev/null
+++ b/core/lib/Thelia/Controller/Admin/AdminProfileController.php
@@ -0,0 +1,39 @@
+. */
+/* */
+/*************************************************************************************/
+
+namespace Thelia\Controller\Admin;
+
+/**
+ * Class AdminProfileController
+ * @package Thelia\Controller\Admin
+ * @author Manuel Raynaud
+ */
+class AdminProfileController extends BaseAdminController
+{
+ public function defaultAction()
+ {
+ if (null !== $response = $this->checkAuth("admin.admin-profile.view")) return $response;
+ return $this->render("admin-profiles", array("display_admin_profile" => 20));
+ }
+
+}
\ No newline at end of file
diff --git a/core/lib/Thelia/Form/AdminProfileCreationForm.php b/core/lib/Thelia/Form/AdminProfileCreationForm.php
new file mode 100644
index 000000000..34ce7556b
--- /dev/null
+++ b/core/lib/Thelia/Form/AdminProfileCreationForm.php
@@ -0,0 +1,65 @@
+. */
+/* */
+/*************************************************************************************/
+namespace Thelia\Form;
+
+use Symfony\Component\Validator\Constraints;
+use Symfony\Component\Validator\Constraints\NotBlank;
+use Thelia\Core\Translation\Translator;
+
+class AdminProfileCreationForm extends BaseForm
+{
+ protected function buildForm()
+ {
+ $this->formBuilder
+ ->add("wording" , "text" , array(
+ "constraints" => array(
+ new NotBlank()
+ ),
+ "label" => Translator::getInstance()->trans("Wording *"),
+ "label_attr" => array(
+ "for" => "wording"
+ ))
+ )
+ ->add("name" , "text" , array(
+ "constraints" => array(
+ new NotBlank()
+ ),
+ "label" => Translator::getInstance()->trans("Name *"),
+ "label_attr" => array(
+ "for" => "name"
+ ))
+ )
+ ->add("description" , "text" , array(
+ "label" => Translator::getInstance()->trans("Description"),
+ "label_attr" => array(
+ "for" => "description"
+ ))
+ )
+ ;
+ }
+
+ public function getName()
+ {
+ return "thelia_admin_profile_creation";
+ }
+}
\ No newline at end of file
diff --git a/templates/admin/default/admin-profiles.html b/templates/admin/default/admin-profiles.html
new file mode 100644
index 000000000..b0d84b04a
--- /dev/null
+++ b/templates/admin/default/admin-profiles.html
@@ -0,0 +1,219 @@
+{extends file="admin-layout.tpl"}
+
+{block name="page-title"}{intl l='Admin profiles'}{/block}
+
+{block name="check-permissions"}admin.admin-profiles.view{/block}
+
+{block name="main-content"}
+
+
+
+
+
+
+ {loop type="auth" name="can_create" roles="ADMIN" permissions="admin.admin-profiles.create"}
+
+
+
+ {/loop}
+
+
+ {module_include location='admin_profiles_top'}
+
+
+
+
+
+
+
+
+
+
+ {intl l="General rights"}
+
+
+
+ {intl l="Authorization"}
+ {intl l="Description"}
+ {intl l="Access"}
+
+
+
+
+ Access to customers
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur, saepe, libero, veniam ab quod.
+
+
+
+
+
+
+
+
+ Access to orders
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur, saepe, libero, veniam ab quod.
+
+
+
+
+
+
+
+
+ Access to catalog
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur, saepe, libero, veniam ab quod.
+
+
+
+
+
+
+
+
+
+
+
+ {intl l="Save"}
+
+
+
+
+
+
+
+
+
+
+ {module_include location='admin_profiles_bottom'}
+
+
+
+
+{* Creation dialog *}
+
+{form name="thelia.admin.admin-profile.creation"}
+
+ {* Capture the dialog body, to pass it to the generic dialog *}
+ {capture "creation_dialog"}
+
+ {form_hidden_fields form=$form}
+
+ {* Be sure to get the language_id, even if the form could not be validated *}
+
+
+ {form_field form=$form field='success_url'}
+ {* on success, redirect to the edition page, _ID_ is replaced with the created object ID, see controller *}
+
+ {/form_field}
+
+ {form_field form=$form field='wording'}
+
+ {intl l="{$label}"} :
+
+
+ {/form_field}
+
+ {form_field form=$form field='name'}
+
+ {intl l="{$label}"} :
+
+
+ {/form_field}
+
+ {form_field form=$form field='description'}
+
+ {intl l="{$label}"} :
+
+
+ {/form_field}
+
+ {module_include location='admin_profile_create_form'}
+
+ {/capture}
+
+ {include
+ file = "includes/generic-create-dialog.html"
+
+ dialog_id = "creation_dialog"
+ dialog_title = {intl l="Create a new admin profile"}
+ dialog_body = {$smarty.capture.creation_dialog nofilter}
+
+ dialog_ok_label = {intl l="Create this admin profile"}
+
+ form_action = {url path='/admin/configuration/admin_profile/create'}
+ form_enctype = {form_enctype form=$form}
+ form_error_message = $form_error_message
+ }
+{/form}
+
+{/block}
+
+{block name="javascript-initialization"}
+
+ {javascripts file='assets/js/bootstrap-switch/bootstrap-switch.js'}
+
+ {/javascripts}
+
+ {javascripts file='assets/js/bootstrap-select/bootstrap-select.js'}
+
+ {/javascripts}
+
+ {javascripts file='assets/js/main.js'}
+
+ {/javascripts}
+{/block}
\ No newline at end of file