Nouvelles fonctionalités:
- Gestion des déploiement de configurations - Ajout et suppression d'utilisateurs au groupes (autres que celui des admins) - Page à customiser en cas d'accès à une ressource d'accès restreint, qui par défaut n'indique que le nom de controleur et celui de la methode concérnée, et qui ajoute, seulement dans le cas ou l'utilisateur est administrateur, les noms de groupes ou d'utilisateur autorisés, avec la mentions "admins only" invitant à la discretion. * Microsoft.Web.XmlTransform.dll: Copié de l'import Nuget de Mono.Web.Xdt (transformations de fichiers de configuration) * yavsc.admin.js: Implémente les méthodes Javascript de l'interface utilisateur de suppression et d'ajout d'un utilisateur à un groupe: un widget jQuery pour la suppression, l'accès à l'API * RestrictedArea.aspx: Page vue par l'utilisateur si par malheur il suivait un lien vers un contenu d'accès restreint, à la place d'un code Http 404 ou autre. Si cet utilisateur est administrateur, la page lui affiche les rôles ou utilisateurs autorisés à accèder au contenu. * RestrictedArea.aspx: * RestrictedArea.aspx: * RestrictedArea.aspx: * RestrictedArea.aspx: * RestrictedArea.aspx: * RestrictedArea.aspx: * RestrictedArea.aspx: Page vue par l'utilisateur si par malheur il suivait un lien vers un contenu d'accès restreint, à la place d'un code Http 404 ou autre. Si cet utilisateur est administrateur, la page lui affiche les rôles ou utilisateurs autorisés à accèder au contenu. * Makefile: retour au débuggage de la copie de travaille, et pas de la déployée. La copie de travail sera avec les mots de passe, et donc toujours différente de celle sous git, mais c'est pas grave. * AccountController.cs: Evite de mettre à jour un mot de passe avec des valeures non attendues * style.css: corrige un mouvement de la disposition au survol de la souris * AuthorizeAttribute.cs: enlève la redirection à l'accès restreint, et fixe pas la même la transmission des données `Roles` et `Users` de la vue * AdminController.cs: Evite de supprimer un utilisateur d'un groupe avec des valeures non attendues * HomeController.cs: Il n'y avait pas à créer de methode pour la vue publique de l'accès restreint. * YavscAjaxHelper.cs: évite d'avoir à convertir en chaine les valeurs de la vue. * App.master: Cette page maître affiche encore beaucoup de billets de blog, on y installe le coteur, de base. Ça changera quand les blogs auront (enfin) leur page maître dédiée. * AppAdmin.master: synchronisation avec la page maître principale (thémes) * NoLogin.master: synchronisation avec la page maître principale.(thémes) * yavsc.rate.js: supprime l'initialisation de tous les type de cotes depuis le script global. C'est fait sur les pages qui en ont besoin, et seulement pour les types de cotes concernés. * AddUserToRole.ascx: Ce formulaire est maintenant à la fois opérationel depuis une interface web sans javascript, et à la Ajax quand Javascript activé. * UsersInRole.aspx: implémente l'interface utilisateur pour l'ajout et la suppression d'un utilisateur à un groupe * Skills.aspx: initialise le coteur js des compétences site * UserSkills.aspx: initialise le coteur js de compétences utilisateur * Web.csproj: un script et des pages d'erreur d'accès, il en faut une par controlleur s'il veut restreindre ses accès sans rendre de code Http 403 ou 404. * UserNameBase.cs: Permet l'usage des espaces dans les noms d'utilisateurs, à la création legacy, ou autres usage du nom d'utilisateur.
This commit is contained in:
parent
029a80e2c4
commit
77eed811f5
30 changed files with 348 additions and 63 deletions
|
|
@ -1,3 +1,8 @@
|
||||||
|
2015-11-21 Paul Schneider <paul@pschneider.fr>
|
||||||
|
|
||||||
|
* Makefile: retour au débuggage de la copie de travaille, et
|
||||||
|
pas de la déployée
|
||||||
|
|
||||||
2015-11-19 Paul Schneider <paul@pschneider.fr>
|
2015-11-19 Paul Schneider <paul@pschneider.fr>
|
||||||
|
|
||||||
* .gitignore: ignore my new config transformation sources
|
* .gitignore: ignore my new config transformation sources
|
||||||
|
|
|
||||||
6
Makefile
6
Makefile
|
|
@ -59,8 +59,8 @@ distclean: clean
|
||||||
sourcepkg:
|
sourcepkg:
|
||||||
git archive --format=tar --prefix=yavsc-$(CONFIG)/ $(CONFIG) | bzip2 > yavsc-$(CONFIG).tar.bz2
|
git archive --format=tar --prefix=yavsc-$(CONFIG)/ $(CONFIG) | bzip2 > yavsc-$(CONFIG).tar.bz2
|
||||||
|
|
||||||
start_xsp: deploy
|
start_xsp: build
|
||||||
(cd $(LDYDESTDIR); export MONO_OPTIONS=--debug; xsp4 --port 8080)
|
(cd web; export MONO_OPTIONS=--debug; xsp4 --port 8080)
|
||||||
|
|
||||||
xmldoc: $(patsubst %,web/bin/%,$(DOCASSBS))
|
xmldoc: $(patsubst %,web/bin/%,$(DOCASSBS))
|
||||||
mdoc-update $^ $(patsubst %.dll,-i%.xml,$^) --out web/xmldoc
|
mdoc-update $^ $(patsubst %.dll,-i%.xml,$^) --out web/xmldoc
|
||||||
|
|
@ -84,3 +84,5 @@ nuget_restore:
|
||||||
|
|
||||||
nuget_update:
|
nuget_update:
|
||||||
for prj in ITContentProvider NpgsqlBlogProvider NpgsqlContentProvider NpgsqlMRPProviders Presta SalesCatalog TestAPI web WebControls yavscclient yavscModel; do nuget update "$${prj}/packages.config" ; done
|
for prj in ITContentProvider NpgsqlBlogProvider NpgsqlContentProvider NpgsqlMRPProviders Presta SalesCatalog TestAPI web WebControls yavscclient yavscModel; do nuget update "$${prj}/packages.config" ; done
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,20 +96,32 @@ namespace Yavsc.ApiControllers
|
||||||
[ValidateAjax]
|
[ValidateAjax]
|
||||||
public void ResetPassword (LostPasswordModel model)
|
public void ResetPassword (LostPasswordModel model)
|
||||||
{
|
{
|
||||||
StringDictionary errors;
|
if (ModelState.IsValid) {
|
||||||
MembershipUser user;
|
StringDictionary errors;
|
||||||
YavscHelpers.ValidatePasswordReset (model, out errors, out user);
|
MembershipUser user;
|
||||||
foreach (string key in errors.Keys)
|
YavscHelpers.ValidatePasswordReset (model, out errors, out user);
|
||||||
ModelState.AddModelError (key, errors [key]);
|
foreach (string key in errors.Keys)
|
||||||
if (user != null && ModelState.IsValid)
|
ModelState.AddModelError (key, errors [key]);
|
||||||
Url.SendActivationMessage (user);
|
if (user != null && ModelState.IsValid)
|
||||||
|
Url.SendActivationMessage (user);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[ValidateAjax]
|
[ValidateAjax]
|
||||||
[Authorize(Roles="Admin")]
|
[Authorize(Roles="Admin")]
|
||||||
public void AddUserToRole(UserRole model)
|
public void AddUserToRole(UserRole model)
|
||||||
{
|
{
|
||||||
Roles.AddUserToRole (model.UserName, model.Role);
|
if (ModelState.IsValid)
|
||||||
|
Roles.AddUserToRole (model.UserName, model.Role);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ValidateAjax]
|
||||||
|
[Authorize(Roles="Admin")]
|
||||||
|
public void RemoveUserFromRole(UserRole model)
|
||||||
|
{
|
||||||
|
if (ModelState.IsValid)
|
||||||
|
Roles.RemoveUserFromRoles (model.UserName,
|
||||||
|
new string [] { model.Role } );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -154,13 +154,16 @@ ul.editablelist>li {
|
||||||
border: solid grey 1px;
|
border: solid grey 1px;
|
||||||
border-radius: 1em;
|
border-radius: 1em;
|
||||||
}
|
}
|
||||||
|
ul.editablelist>li:before {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
content: "\f007";
|
||||||
|
}
|
||||||
ul.editablelist>li:hover {
|
ul.editablelist>li:hover {
|
||||||
background-color: rgba(128,0,0,0.5);
|
background-color: rgba(128,0,0,0.5);
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.editablelist>li:hover:after {
|
ul.editablelist>li:hover:before {
|
||||||
font-family: 'FontAwesome';
|
font-family: 'FontAwesome';
|
||||||
content: "\f00d";
|
content: "\f00d";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,16 @@ namespace Yavsc
|
||||||
{
|
{
|
||||||
// let the client know which role were allowed here
|
// let the client know which role were allowed here
|
||||||
// filterContext.ActionDescriptor.ControllerDescriptor.
|
// filterContext.ActionDescriptor.ControllerDescriptor.
|
||||||
filterContext.Result = new System.Web.Mvc.RedirectResult ("~/Home/RestrictedArea");
|
var result = new System.Web.Mvc.ViewResult();
|
||||||
|
|
||||||
filterContext.Controller.ViewData ["ActionName"] = filterContext.ActionDescriptor.ActionName;
|
filterContext.Controller.ViewData ["ActionName"] = filterContext.ActionDescriptor.ActionName;
|
||||||
filterContext.Controller.ViewData ["ControllerName"] = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
|
filterContext.Controller.ViewData ["ControllerName"] = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
|
||||||
filterContext.Controller.ViewData ["Roles"] = Roles;
|
filterContext.Controller.ViewData ["Roles"] = Roles;
|
||||||
filterContext.Controller.ViewData ["Users"] = Users;
|
filterContext.Controller.ViewData ["Users"] = Users;
|
||||||
|
result.ViewName = "RestrictedArea";
|
||||||
|
result.ViewData = filterContext.Controller.ViewData;
|
||||||
|
filterContext.Result = result;
|
||||||
|
|
||||||
}
|
}
|
||||||
else filterContext.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
|
else filterContext.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,87 @@
|
||||||
|
2015-11-21 Paul Schneider <paul@pschneider.fr>
|
||||||
|
|
||||||
|
* Microsoft.Web.XmlTransform.dll: Copié de l'import Nuget de
|
||||||
|
Mono.Web.Xdt (transformations de fichiers de configuration)
|
||||||
|
|
||||||
|
* yavsc.admin.js: Implémente les méthodes Javascript de
|
||||||
|
l'interface utilisateur de suppression et d'ajout d'un
|
||||||
|
utilisateur à un groupe:
|
||||||
|
un widget jQuery pour la suppression, l'accès à l'API
|
||||||
|
|
||||||
|
* RestrictedArea.aspx: Page vue par l'utilisateur si par
|
||||||
|
malheur il suivait un lien vers un contenu d'accès restreint,
|
||||||
|
à la place d'un code Http 404 ou autre.
|
||||||
|
Si cet utilisateur est administrateur, la page lui affiche les
|
||||||
|
rôles ou utilisateurs autorisés à accèder au contenu.
|
||||||
|
|
||||||
|
|
||||||
|
* RestrictedArea.aspx:
|
||||||
|
* RestrictedArea.aspx:
|
||||||
|
* RestrictedArea.aspx:
|
||||||
|
* RestrictedArea.aspx:
|
||||||
|
* RestrictedArea.aspx:
|
||||||
|
* RestrictedArea.aspx:
|
||||||
|
* RestrictedArea.aspx: Page vue par l'utilisateur si par
|
||||||
|
malheur il suivait un lien vers un contenu d'accès restreint,
|
||||||
|
à la place d'un code Http 404 ou autre.
|
||||||
|
Si cet utilisateur est administrateur, la page lui affiche les
|
||||||
|
rôles ou utilisateurs autorisés à accèder au contenu.
|
||||||
|
|
||||||
|
* AccountController.cs: Evite de mettre à jour un mot de passe
|
||||||
|
avec des valeures non attendues
|
||||||
|
|
||||||
|
* style.css: corrige un mouvement de la disposition au survol
|
||||||
|
de la souris
|
||||||
|
|
||||||
|
* AuthorizeAttribute.cs: enlève la redirection à l'accès
|
||||||
|
restreint, et fixe pas la même la transmission des données
|
||||||
|
`Roles` et `Users` de la vue
|
||||||
|
|
||||||
|
|
||||||
|
* AdminController.cs: Evite de supprimer un utilisateur d'un
|
||||||
|
groupe avec des valeures non attendues
|
||||||
|
|
||||||
|
* HomeController.cs: Il n'y avait pas à créer de methode pour
|
||||||
|
la vue publique de l'accès restreint.
|
||||||
|
|
||||||
|
* YavscAjaxHelper.cs: évite d'avoir à convertir en chaine les
|
||||||
|
valeurs de la vue.
|
||||||
|
|
||||||
|
|
||||||
|
* App.master: Cette page maître affiche encore beaucoup de
|
||||||
|
billets de blog, on y installe le coteur, de base. Ça changera
|
||||||
|
quand les blogs auront (enfin) leur page maître dédiée.
|
||||||
|
|
||||||
|
|
||||||
|
* AppAdmin.master: synchronisation avec la page maître
|
||||||
|
principale (thémes)
|
||||||
|
|
||||||
|
* NoLogin.master: synchronisation avec la page maître
|
||||||
|
principale.(thémes)
|
||||||
|
|
||||||
|
* yavsc.rate.js: supprime l'initialisation de tous les type de
|
||||||
|
cotes depuis le script global.
|
||||||
|
C'est fait sur les pages qui en ont besoin, et seulement pour
|
||||||
|
les types de cotes concernés.
|
||||||
|
|
||||||
|
* AddUserToRole.ascx: Ce formulaire est maintenant à la fois
|
||||||
|
opérationel depuis une interface web sans javascript, et à la
|
||||||
|
Ajax quand Javascript activé.
|
||||||
|
|
||||||
|
|
||||||
|
* UsersInRole.aspx: implémente l'interface utilisateur pour
|
||||||
|
l'ajout et la suppression d'un utilisateur à un groupe
|
||||||
|
|
||||||
|
* Skills.aspx: initialise le coteur js des compétences site
|
||||||
|
|
||||||
|
* UserSkills.aspx: initialise le coteur js de compétences
|
||||||
|
utilisateur
|
||||||
|
|
||||||
|
* Web.csproj: un script et des pages d'erreur d'accès, il en
|
||||||
|
faut une par controlleur
|
||||||
|
qui restreint quelque de ses accès.
|
||||||
|
|
||||||
|
|
||||||
2015-11-19 Paul Schneider <paul@pschneider.fr>
|
2015-11-19 Paul Schneider <paul@pschneider.fr>
|
||||||
|
|
||||||
* PayPalController.cs: implements a Paypal controller
|
* PayPalController.cs: implements a Paypal controller
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,7 @@ namespace Yavsc.Controllers
|
||||||
BuildBackupList (datac);
|
BuildBackupList (datac);
|
||||||
return View (datac);
|
return View (datac);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BuildBackupList(DataAccess datac)
|
private void BuildBackupList(DataAccess datac)
|
||||||
{
|
{
|
||||||
// build ViewData ["Backups"];
|
// build ViewData ["Backups"];
|
||||||
|
|
@ -151,16 +152,18 @@ namespace Yavsc.Controllers
|
||||||
/// <param name="rolename">Rolename.</param>
|
/// <param name="rolename">Rolename.</param>
|
||||||
/// <param name="returnUrl">Return URL.</param>
|
/// <param name="returnUrl">Return URL.</param>
|
||||||
[Authorize(Roles="Admin")]
|
[Authorize(Roles="Admin")]
|
||||||
public ActionResult RemoveFromRole(string username, string rolename, string returnUrl)
|
public ActionResult RemoveUserFromRole(string username, string rolename, string returnUrl)
|
||||||
{
|
{
|
||||||
Roles.RemoveUserFromRole(username,rolename);
|
if (ModelState.IsValid)
|
||||||
|
Roles.RemoveUserFromRole(username,rolename);
|
||||||
return Redirect(returnUrl);
|
return Redirect(returnUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Authorize(Roles="Admin")]
|
[Authorize(Roles="Admin")]
|
||||||
public ActionResult AddUserToRole(string username, string rolename, string returnUrl)
|
public ActionResult AddUserToRole(string username, string rolename, string returnUrl)
|
||||||
{
|
{
|
||||||
Roles.AddUsersToRole(new string[] { username } ,rolename);
|
if (ModelState.IsValid)
|
||||||
|
Roles.AddUsersToRole(new string[] { username } ,rolename);
|
||||||
return Redirect(returnUrl);
|
return Redirect(returnUrl);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -101,10 +101,6 @@ namespace Yavsc.Controllers
|
||||||
return View ();
|
return View ();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult RestrictedArea ()
|
|
||||||
{
|
|
||||||
return View ();
|
|
||||||
}
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Contact the specified email, reason and body.
|
/// Contact the specified email, reason and body.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -36,12 +36,12 @@ namespace Yavsc.Helpers
|
||||||
/// <param name="helper">Helper.</param>
|
/// <param name="helper">Helper.</param>
|
||||||
/// <param name="message">Message.</param>
|
/// <param name="message">Message.</param>
|
||||||
/// <param name="click_action">Click action.</param>
|
/// <param name="click_action">Click action.</param>
|
||||||
public static void Notify(this AjaxHelper helper, string message, string click_action=null) {
|
public static void Notify(this AjaxHelper helper, object message, string click_action=null) {
|
||||||
|
|
||||||
if (helper.ViewData ["Notifications"] == null)
|
if (helper.ViewData ["Notifications"] == null)
|
||||||
helper.ViewData ["Notifications"] = new List<Notification> ();
|
helper.ViewData ["Notifications"] = new List<Notification> ();
|
||||||
(helper.ViewData ["Notifications"] as List<Notification>).Add (
|
(helper.ViewData ["Notifications"] as List<Notification>).Add (
|
||||||
new Notification { body = QuoteJavascriptString(message),
|
new Notification { body = QuoteJavascriptString((string)message),
|
||||||
click_action = click_action } ) ;
|
click_action = click_action } ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -50,15 +50,21 @@ namespace Yavsc.Helpers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>The javascript string.</returns>
|
/// <returns>The javascript string.</returns>
|
||||||
/// <param name="str">String.</param>
|
/// <param name="str">String.</param>
|
||||||
public static string QuoteJavascriptString(string str)
|
public static string QuoteJavascriptString(object str)
|
||||||
{
|
{
|
||||||
str = str.Replace ("\n", "\\n");
|
string tmpstr = (string) str;
|
||||||
if (str.Contains ("'"))
|
tmpstr = tmpstr.Replace ("\n", "\\n");
|
||||||
if (str.Contains ("\""))
|
if (tmpstr.Contains ("'"))
|
||||||
return "'" + str.Replace ("'", "\\'") + "'";
|
if (tmpstr.Contains ("\""))
|
||||||
|
return "'" + tmpstr.Replace ("'", "\\'") + "'";
|
||||||
else
|
else
|
||||||
return "\"" + str + "\"";
|
return "\"" + tmpstr + "\"";
|
||||||
return "'" + str + "'";
|
return "'" + tmpstr + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string JString(this AjaxHelper helper, object str)
|
||||||
|
{
|
||||||
|
return QuoteJavascriptString (str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
web/Microsoft.Web.XmlTransform.dll
Executable file
BIN
web/Microsoft.Web.XmlTransform.dll
Executable file
Binary file not shown.
|
|
@ -23,6 +23,9 @@ Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
||||||
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('[data-type="rate-bill"]').rate({target: 'Blogs/Rate'});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<%=Ajax.GlobalizationScript()%>
|
<%=Ajax.GlobalizationScript()%>
|
||||||
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
||||||
|
|
|
||||||
|
|
@ -4,18 +4,14 @@
|
||||||
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
||||||
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
|
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
|
||||||
Page.Theme = (string) Profile.UITheme;
|
Page.Theme = (string) Profile.UITheme;
|
||||||
Page.StyleSheetTheme = (string) Profile.UITheme;
|
Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
||||||
|
|
||||||
%>
|
|
||||||
<asp:ContentPlaceHolder id="init" runat="server">
|
<asp:ContentPlaceHolder id="init" runat="server">
|
||||||
</asp:ContentPlaceHolder>
|
</asp:ContentPlaceHolder>
|
||||||
|
|
||||||
<head runat="server">
|
<head runat="server">
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/"+Page.StyleSheetTheme+"/style.css")%>" />
|
<%= Html.ThemeCSSLinks(Page.StyleSheetTheme,"style")%>
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/style.css")%>" />
|
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/prettify.css")%>" />
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/prettify.css")%>" />
|
||||||
|
|
@ -49,7 +45,7 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
<% foreach (Notification note in (IEnumerable<Notification>) ViewData ["Notifications"] ) {
|
<% foreach (Notification note in (IEnumerable<Notification>) ViewData ["Notifications"] ) {
|
||||||
if (note.click_action == null) {%> Yavsc.notice(<%=note.body%>); <% }
|
if (note.click_action == null) {%> Yavsc.notice(<%=note.body%>); <% }
|
||||||
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>); <% } %>
|
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_action_name%>); <% } %>
|
||||||
<% } %>
|
<% } %>
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -4,18 +4,14 @@
|
||||||
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
||||||
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
|
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
|
||||||
Page.Theme = (string) Profile.UITheme;
|
Page.Theme = (string) Profile.UITheme;
|
||||||
Page.StyleSheetTheme = (string) Profile.UITheme;
|
Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
||||||
|
|
||||||
%>
|
|
||||||
<asp:ContentPlaceHolder id="init" runat="server">
|
<asp:ContentPlaceHolder id="init" runat="server">
|
||||||
</asp:ContentPlaceHolder>
|
</asp:ContentPlaceHolder>
|
||||||
|
|
||||||
<head runat="server">
|
<head runat="server">
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/"+Page.StyleSheetTheme+"/style.css")%>" />
|
<%= Html.ThemeCSSLinks(Page.StyleSheetTheme,"style")%>
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/style.css")%>" />
|
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
|
||||||
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/prettify.css")%>" />
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/prettify.css")%>" />
|
||||||
|
|
@ -27,9 +23,14 @@ Page.StyleSheetTheme = (string) Profile.UITheme;
|
||||||
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('[data-type="rate-bill"]').rate({target: 'Blogs/Rate'});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<%=Ajax.GlobalizationScript()%>
|
<%=Ajax.GlobalizationScript()%>
|
||||||
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
||||||
|
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
|
||||||
|
<script src="<%=Url.Content("~/Scripts/yavsc.rate.js")%>"></script>
|
||||||
<asp:ContentPlaceHolder id="head" runat="server">
|
<asp:ContentPlaceHolder id="head" runat="server">
|
||||||
</asp:ContentPlaceHolder>
|
</asp:ContentPlaceHolder>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
37
web/Scripts/yavsc.admin.js
Normal file
37
web/Scripts/yavsc.admin.js
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
|
||||||
|
var Admin = (function(){
|
||||||
|
var self = {};
|
||||||
|
self.addUserToRole = function (user,role,callback) {
|
||||||
|
Yavsc.ajax('Account/AddUserToRole',
|
||||||
|
{ username: user, role: role }, callback );
|
||||||
|
};
|
||||||
|
self.removeUserFromRole = function (user,role,callback) {
|
||||||
|
Yavsc.ajax('Account/RemoveUserFromRole',
|
||||||
|
{ username: user, role: role }, callback );
|
||||||
|
}
|
||||||
|
|
||||||
|
return self;
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
(function(jQuery) {
|
||||||
|
return jQuery.widget('Yavsc.decharger', {
|
||||||
|
options: {
|
||||||
|
roleName: 'Admin',
|
||||||
|
},
|
||||||
|
_create: function() {
|
||||||
|
var _this = this;
|
||||||
|
var $bgobj = $(this.element);
|
||||||
|
// console.log ('Dechargeable:'+$bgobj.text());
|
||||||
|
$bgobj.click(function() {
|
||||||
|
var user = $bgobj.text();
|
||||||
|
Admin.removeUserFromRole(user,_this.options.roleName,
|
||||||
|
function() {
|
||||||
|
$bgobj.remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})(jQuery);
|
||||||
|
}).call(this);
|
||||||
|
|
||||||
|
|
@ -49,9 +49,3 @@
|
||||||
},
|
},
|
||||||
})})(jQuery);
|
})})(jQuery);
|
||||||
}).call(this);
|
}).call(this);
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$('[data-type="rate-site-skill"]').rate({target: 'Skill/RateSkill'});
|
|
||||||
$('[data-type="rate-user-skill"]').rate({target: 'Skill/RateUserSkill'});
|
|
||||||
$('[data-type="rate-bill"]').rate({target: 'Blogs/Rate'});
|
|
||||||
});
|
|
||||||
|
|
|
||||||
13
web/Views/Account/RestrictedArea.aspx
Normal file
13
web/Views/Account/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
|
|
@ -1,18 +1,17 @@
|
||||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
|
||||||
<%= Html.ValidationSummary() %>
|
<%= Html.ValidationSummary() %>
|
||||||
<% using(Html.BeginForm("AddUserToRole", "Admin"))
|
<form action="AddUserToRole" method="POST" id="frmAUTR">
|
||||||
{ %>
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div id="roleaddedresult"></div>
|
|
||||||
<% if (ViewData ["UserName"] != null) { %>
|
<% if (ViewData ["UserName"] != null) { %>
|
||||||
<%= Html.Hidden("RoleName",ViewData ["RoleName"]) %>
|
<%= Html.Hidden("RoleName",ViewData ["RoleName"]) %>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
<div>
|
<div>
|
||||||
<label for="UserName" >Utilisateur : </label><input type="text" name="UserName" id="UserName">
|
<label for="UserName" >Utilisateur : </label>
|
||||||
|
<div id="Err_model_UserName"></div>
|
||||||
|
<input type="text" name="UserName" id="UserName">
|
||||||
<%= Html.ValidationMessage("UserName", "*") %>
|
<%= Html.ValidationMessage("UserName", "*") %>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
<% if (ViewData ["RoleName"] != null) { %>
|
<% if (ViewData ["RoleName"] != null) { %>
|
||||||
<%= Html.Hidden("RoleName",ViewData ["RoleName"]) %>
|
<%= Html.Hidden("RoleName",ViewData ["RoleName"]) %>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
|
|
@ -22,8 +21,20 @@
|
||||||
<%= Html.ValidationMessage("RoleName", "*") %>
|
<%= Html.ValidationMessage("RoleName", "*") %>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
<script>
|
||||||
<%= Html.Hidden("ReturnUrl", Request.Url.PathAndQuery ) %>
|
$("form").on ('submit', function (e) { return e.preventDefault(); } );
|
||||||
<input type="submit">
|
function ajaxSubmit() {
|
||||||
|
var user = $('#UserName').val();
|
||||||
|
var role = $('#RoleName').val();
|
||||||
|
Admin.addUserToRole(user, role,
|
||||||
|
function () { $('#UserName').val('');
|
||||||
|
$('[data-type="userlist"]').filter('[data-role='+role+']').each(function() {
|
||||||
|
$('<li>'+user+'</li>').decharger({roleName: <%= YavscAjaxHelper.QuoteJavascriptString((string)ViewData["RoleName"]) %>}).appendTo(this);
|
||||||
|
});
|
||||||
|
} );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<input type="submit" value="Ajouter l'utilisateur au rôle <%=ViewData ["RoleName"]%>" onclick="return ajaxSubmit();" >
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<% } %>
|
</form>
|
||||||
|
|
|
||||||
13
web/Views/Admin/RestrictedArea.aspx
Normal file
13
web/Views/Admin/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
|
|
@ -2,7 +2,16 @@
|
||||||
<asp:Content ContentPlaceHolderID="init" ID="init1" runat="server">
|
<asp:Content ContentPlaceHolderID="init" ID="init1" runat="server">
|
||||||
<% ViewState["orgtitle"] = string.Format ( LocalizedText.UsersInRole , Html.Encode(ViewData["RoleName"])); %>
|
<% ViewState["orgtitle"] = string.Format ( LocalizedText.UsersInRole , Html.Encode(ViewData["RoleName"])); %>
|
||||||
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName; %>
|
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName; %>
|
||||||
|
</asp:Content>
|
||||||
|
<asp:Content ContentPlaceHolderID="head" ID="head1" runat="server">
|
||||||
|
<script src="<%=Url.Content("~/Scripts/yavsc.admin.js")%>"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('[data-type="userlist"]').children().each(function() {
|
||||||
|
$(this).decharger({roleName: <%= YavscAjaxHelper.QuoteJavascriptString((string)ViewData["RoleName"]) %>});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
|
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
|
||||||
<h1><a href="<%= Url.RouteUrl("Default", new { action = "UsersInRole", RoleName = ViewData["RoleName"] } )%>">
|
<h1><a href="<%= Url.RouteUrl("Default", new { action = "UsersInRole", RoleName = ViewData["RoleName"] } )%>">
|
||||||
|
|
@ -11,7 +20,8 @@
|
||||||
</h1>
|
</h1>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
<ul class="editablelist userlist">
|
<ul class="editablelist" data-role="<%=ViewData["RoleName"]%>" data-type="userlist">
|
||||||
|
|
||||||
<%foreach (string username in (string[]) ViewData["UsersInRole"]){ %>
|
<%foreach (string username in (string[]) ViewData["UsersInRole"]){ %>
|
||||||
<li><%= username %></li>
|
<li><%= username %></li>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
|
||||||
13
web/Views/BackOffice/RestrictedArea.aspx
Normal file
13
web/Views/BackOffice/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
13
web/Views/Blogs/RestrictedArea.aspx
Normal file
13
web/Views/Blogs/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
13
web/Views/FileSystem/RestrictedArea.aspx
Normal file
13
web/Views/FileSystem/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
13
web/Views/FrontOffice/RestrictedArea.aspx
Normal file
13
web/Views/FrontOffice/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
<asp:Content ID="headContent" ContentPlaceHolderID="head" runat="server">
|
<asp:Content ID="headContent" ContentPlaceHolderID="head" runat="server">
|
||||||
<script src="<%=Url.Content("~/Scripts/yavsc.skills.js")%>"></script>
|
<script src="<%=Url.Content("~/Scripts/yavsc.skills.js")%>"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('[data-type="rate-site-skill"]').rate({target: 'Skill/RateSkill'});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
|
||||||
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
|
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
<asp:Content ID="headContent" ContentPlaceHolderID="head" runat="server">
|
<asp:Content ID="headContent" ContentPlaceHolderID="head" runat="server">
|
||||||
<script src="<%=Url.Content("~/Scripts/yavsc.skills.js")%>"></script>
|
<script src="<%=Url.Content("~/Scripts/yavsc.skills.js")%>"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('[data-type="rate-user-skill"]').rate({target: 'Skill/RateUserSkill'});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
|
||||||
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
|
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||||
|
|
|
||||||
13
web/Views/Google/RestrictedArea.aspx
Normal file
13
web/Views/Google/RestrictedArea.aspx
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
|
||||||
|
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
|
||||||
|
Ce contenu est d'accès restreint :<br>
|
||||||
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
|
</asp:Content>
|
||||||
|
|
@ -3,9 +3,11 @@
|
||||||
Ce contenu est d'accès restreint :<br>
|
Ce contenu est d'accès restreint :<br>
|
||||||
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
<<%= Html.Encode(ViewData["ControllerName"]) %>/<%= Html.Encode(ViewData["ActionName"]) %>><br>
|
||||||
|
|
||||||
|
<% if (Roles.IsUserInRole("Admin")) { %>
|
||||||
|
<i>Admin only:</i>
|
||||||
Ci après les tièrces parties autorisée actuellement :<br>
|
Ci après les tièrces parties autorisée actuellement :<br>
|
||||||
|
|
||||||
Roles autorisés :<%= Html.Encode(ViewData["Roles"]) %><br>
|
Roles autorisés : <%= Html.Encode(ViewData["Roles"]) %><br>
|
||||||
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
Utilisateurs autorisés :<%= Html.Encode(ViewData["Users"]) %><br>
|
||||||
|
<% } %>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
|
@ -498,6 +498,14 @@
|
||||||
<Content Include="Views\PayPal\IPN.aspx" />
|
<Content Include="Views\PayPal\IPN.aspx" />
|
||||||
<Content Include="Web.Debug.config" />
|
<Content Include="Web.Debug.config" />
|
||||||
<Content Include="Web.Lua.config" />
|
<Content Include="Web.Lua.config" />
|
||||||
|
<Content Include="Scripts\yavsc.admin.js" />
|
||||||
|
<Content Include="Views\FrontOffice\RestrictedArea.aspx" />
|
||||||
|
<Content Include="Views\Admin\RestrictedArea.aspx" />
|
||||||
|
<Content Include="Views\Blogs\RestrictedArea.aspx" />
|
||||||
|
<Content Include="Views\Google\RestrictedArea.aspx" />
|
||||||
|
<Content Include="Views\FileSystem\RestrictedArea.aspx" />
|
||||||
|
<Content Include="Views\BackOffice\RestrictedArea.aspx" />
|
||||||
|
<Content Include="Views\Account\RestrictedArea.aspx" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
|
2015-11-21 Paul Schneider <paul@pschneider.fr>
|
||||||
|
|
||||||
|
* UserNameBase.cs: Permet l'usage des espaces dans les noms
|
||||||
|
d'utilisateurs,
|
||||||
|
à la création legacy, ou autres usage du nom d'utilisateur.
|
||||||
|
|
||||||
2015-11-19 Paul Schneider <paul@pschneider.fr>
|
2015-11-19 Paul Schneider <paul@pschneider.fr>
|
||||||
|
|
||||||
* YavscModel.csproj: Lua config
|
* YavscModel.csproj: Lua config
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ namespace Yavsc.Model.RolesAndMembers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The name of the user.</value>
|
/// <value>The name of the user.</value>
|
||||||
[Localizable(true), Required(ErrorMessage = "S'il vous plait, entrez un nom d'utilisateur")
|
[Localizable(true), Required(ErrorMessage = "S'il vous plait, entrez un nom d'utilisateur")
|
||||||
,Display(ResourceType=typeof(LocalizedText),Name="User_name"),RegularExpression("([a-z]|[A-Z]|[0-9] )+")]
|
,Display(ResourceType=typeof(LocalizedText),Name="User_name"),RegularExpression(@"^[a-zA-Z .-_#]{1,100}$")]
|
||||||
public string UserName { get; set; }
|
public string UserName { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue