* New features:

- New Client at estimation, ala ajax 
- Admins can now edit user's profiles
This commit is contained in:
Paul Schneider 2015-04-15 03:03:20 +02:00
commit 0755dd62b3
33 changed files with 634 additions and 234 deletions

View file

@ -179,41 +179,58 @@ namespace Yavsc.ApiControllers
};
}
private HttpResponseMessage DefaultResponse()
{
return ModelState.IsValid ?
Request.CreateResponse (System.Net.HttpStatusCode.OK) :
Request.CreateResponse (System.Net.HttpStatusCode.BadRequest,
ValidateAjaxAttribute.GetErrorModelObject (ModelState));
}
/// <summary>
/// Register the specified model.
/// </summary>
/// <param name="model">Model.</param>
/// <param name="isApprouved">if false, sends a registration validation e-mail.</param>
[Authorize(Roles="Admin")]
[Authorize()]
[ValidateAjaxAttribute]
public void Register ([FromBody] RegisterModel model, bool isApprouved=true)
public HttpResponseMessage Register ([FromBody] RegisterModel model)
{
MembershipCreateStatus mcs;
var user = Membership.CreateUser (
model.UserName,
model.Password,
model.Email,
null,
null,
isApprouved,
out mcs);
switch (mcs) {
case MembershipCreateStatus.DuplicateEmail:
ModelState.AddModelError ("Email", "Cette adresse e-mail correspond " +
if (ModelState.IsValid) {
if (model.IsApprouved)
if (!Roles.IsUserInRole ("Admin"))
if (!Roles.IsUserInRole ("FrontOffice")) {
ModelState.AddModelError ("IsApprouved",
"Since you're not member of Admin or FrontOffice groups, " +
"you cannot ask for a pre-approuved registration");
return DefaultResponse ();
}
MembershipCreateStatus mcs;
var user = Membership.CreateUser (
model.UserName,
model.Password,
model.Email,
null,
null,
model.IsApprouved,
out mcs);
switch (mcs) {
case MembershipCreateStatus.DuplicateEmail:
ModelState.AddModelError ("Email", "Cette adresse e-mail correspond " +
"à un compte utilisateur existant");
return ;
case MembershipCreateStatus.DuplicateUserName:
ModelState.AddModelError ("UserName", "Ce nom d'utilisateur est " +
break;
case MembershipCreateStatus.DuplicateUserName:
ModelState.AddModelError ("UserName", "Ce nom d'utilisateur est " +
"déjà enregistré");
return ;
case MembershipCreateStatus.Success:
if (!isApprouved)
Yavsc.Helpers.YavscHelpers.SendActivationEmail (user);
return ;
default:
throw new Exception ( string.Format( "Unexpected membership creation status : {0}", mcs.ToString() ) );
break;
case MembershipCreateStatus.Success:
if (!model.IsApprouved)
Yavsc.Helpers.YavscHelpers.SendActivationEmail (user);
break;
default:
break;
}
}
return DefaultResponse ();
}
}
}

View file

@ -62,29 +62,29 @@ namespace Yavsc.ApiControllers
[HttpGet]
[ValidateAjax]
[Authorize(Roles="Admin,FrontOffice")]
public void Register([FromBody] RegisterModel model)
public void Register([FromBody] RegisterModel userModel)
{
if (ModelState.IsValid) {
MembershipCreateStatus mcs;
var user = Membership.CreateUser (
model.UserName,
model.Password,
model.Email,
userModel.UserName,
userModel.Password,
userModel.Email,
null,
null,
model.IsApprouved,
userModel.IsApprouved,
out mcs);
switch (mcs) {
case MembershipCreateStatus.DuplicateEmail:
ModelState.AddModelError ("Email",
string.Format(LocalizedText.DuplicateEmail,model.UserName) );
string.Format(LocalizedText.DuplicateEmail,userModel.UserName) );
return ;
case MembershipCreateStatus.DuplicateUserName:
ModelState.AddModelError ("UserName",
string.Format(LocalizedText.DuplicateUserName,model.Email));
string.Format(LocalizedText.DuplicateUserName,userModel.Email));
return ;
case MembershipCreateStatus.Success:
if (!model.IsApprouved)
if (!userModel.IsApprouved)
YavscHelpers.SendActivationEmail (user);
return;
default: