- 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.
106 lines
5.0 KiB
Plaintext
106 lines
5.0 KiB
Plaintext
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
|
|
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
|
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
|
|
Page.Theme = (string) Profile.UITheme;
|
|
Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
|
<asp:ContentPlaceHolder id="init" runat="server">
|
|
</asp:ContentPlaceHolder>
|
|
<head runat="server">
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<%= Html.ThemeCSSLinks(Page.StyleSheetTheme,"style")%>
|
|
<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/prettify.css")%>" />
|
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/doxy.css")%>" />
|
|
<link rel="icon" type="image/png" href="/favicon.png?v=3" />
|
|
<script src="<%=Url.Content("~/Scripts/jquery-2.1.4.min.js")%>"></script>
|
|
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.min.js")%>"></script>
|
|
<script src="<%=Url.Content("~/Scripts/parallax.js")%>"></script>
|
|
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
|
<script type="text/javascript">
|
|
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
|
</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>
|
|
</head>
|
|
<body>
|
|
<header data-type="background" data-speed="8" >
|
|
<asp:ContentPlaceHolder ID="overHeaderOne" runat="server">
|
|
<h1><a href="<%= Url.RouteUrl("Default") %>">
|
|
<%=ViewState["orgtitle"]%></a>
|
|
- <a href="<%= Url.RouteUrl("Default", new {controller = "Home" , action = "Index" }) %>"><%= YavscHelpers.SiteName %></a>
|
|
</h1>
|
|
</asp:ContentPlaceHolder>
|
|
<asp:ContentPlaceHolder ID="header" runat="server"></asp:ContentPlaceHolder>
|
|
<div id="notifications"></div>
|
|
<% if (ViewData ["Notifications"]!=null) { %>
|
|
<script>
|
|
$(document).ready(function(){
|
|
<% foreach (Notification note in (IEnumerable<Notification>) ViewData ["Notifications"] ) {
|
|
if (note.click_action == null) {%> Yavsc.notice(<%=note.body%>); <% }
|
|
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_action_name%>); <% } %>
|
|
<% } %>
|
|
});
|
|
</script>
|
|
<% } %>
|
|
</header>
|
|
<nav data-type="background" data-speed="5">
|
|
<% if (Membership.GetUser()==null) { %>
|
|
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Login", returnUrl=Request.Url.PathAndQuery}) %>" class="menuitem" accesskey = "C">
|
|
<i class="fa fa-sign-in">Connexion</i>
|
|
</a>
|
|
<% } else { %>
|
|
<ul>
|
|
<li><%= Html.ActionLink("Backups","Backups") %></li>
|
|
<li><%= Html.ActionLink("Restaurations", "Restore") %></li>
|
|
<li><%= Html.ActionLink("Create backup","CreateBackup") %></li>
|
|
<li><%= Html.ActionLink("Remove user", "RemoveUser") %></li>
|
|
<li><%= Html.ActionLink("Add a Role ", "AddRole") %></li>
|
|
<li><%= Html.ActionLink("Remove role", "RemoveRoleQuery") %></li>
|
|
<li><%= Html.ActionLink("User list", "UserList") %></li>
|
|
<li><%= Html.ActionLink("Role list", "RoleList") %></li>
|
|
</ul>
|
|
|
|
<a href="<%=Url.RouteUrl("Blogs", new { user = HttpContext.Current.User.Identity.Name } )%>" accesskey = "B" class="menuitem" >
|
|
<img src="<%=Url.AvatarUrl(HttpContext.Current.User.Identity.Name)%>" alt="vos billets" class="iconsmall" />
|
|
<span class="hint">Vos billets</span>
|
|
</a>
|
|
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Profile", id = HttpContext.Current.User.Identity.Name} ) %>" accesskey="P" class="menuitem fa fa-user">
|
|
<%= HttpContext.Current.User.Identity.Name %>
|
|
<span class="hint"> Édition de votre profile </span>
|
|
</a>
|
|
<a href="/Blogs/Post" accesskey="P" class="menuitem fa fa-pencil">
|
|
<u>P</u>oster
|
|
<span class="hint">Édition d'un nouveau billet </span>
|
|
</a>
|
|
|
|
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Logout", returnUrl=Request.Url.PathAndQuery}) %>" accesskey = "C" class="menuitem fa fa-sign-out">
|
|
<%=Html.Translate("Logout")%></a>
|
|
<% } %>
|
|
</nav>
|
|
<main data-type="background" data-speed="10" data-emheight="10" data-posx="0" data-posy="22" >
|
|
<asp:ContentPlaceHolder ID="MainContent" runat="server">
|
|
</asp:ContentPlaceHolder>
|
|
</main>
|
|
<footer data-type="background" data-speed="5" >
|
|
<div id="copyr">
|
|
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">© 2015 GNU GENERAL PUBLIC LICENSE <i>Version 3, 29 June 2007</i></a>
|
|
</div>
|
|
<%= Html.ActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
|
|
<% foreach ( Link link in Html.Thanks()) { %>
|
|
<a class="thanks" href="<%=link.Url%>"><% if (link.Image !=null) {
|
|
%><img src="<%= link.Image %>" alt="<%= link.Text %>"/></a>
|
|
<% } else { %>
|
|
<a class="thanks" href="<%=link.Url%>"><%= link.Text %></a>
|
|
<% }} %>
|
|
</footer><div class="modal"></div>
|
|
</body>
|
|
</html>
|