125 lines
2.4 KiB
C#
125 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Xml;
|
|
using System.Xml.XPath;
|
|
|
|
using umbraco.cms.businesslogic;
|
|
using umbraco.cms.businesslogic.member;
|
|
using umbraco.cms.businesslogic.property;
|
|
|
|
namespace Umbraco.Web.BaseRest
|
|
{
|
|
public static class MemberRest
|
|
{
|
|
public static int GetCurrentMemberId()
|
|
{
|
|
return Member.CurrentMemberId();
|
|
}
|
|
|
|
public static Member GetCurrentMember()
|
|
{
|
|
return Member.GetCurrentMember();
|
|
}
|
|
|
|
public static int Login(string login, string password)
|
|
{
|
|
Member m = Member.GetMemberFromLoginNameAndPassword(login, password);
|
|
var id = GetCurrentMemberId();
|
|
if (id == 0)
|
|
{
|
|
if (m == null)
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
Member.AddMemberToCache(m);
|
|
return m.Id;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return id;
|
|
}
|
|
}
|
|
|
|
public static int Logout()
|
|
{
|
|
var currentId = GetCurrentMemberId();
|
|
if (currentId > 0)
|
|
{
|
|
Member.RemoveMemberFromCache(currentId);
|
|
Member.ClearMemberFromClient(currentId);
|
|
return currentId;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
public static XPathNodeIterator GetCurrentMemberAsXml()
|
|
{
|
|
var m = GetCurrentMember();
|
|
if (m != null)
|
|
{
|
|
XmlDocument doc = new XmlDocument();
|
|
doc.LoadXml(m.ToXml(doc, false).OuterXml);
|
|
XPathNavigator nav = doc.CreateNavigator();
|
|
return nav.Select("/node");
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static string SetProperty(string alias, object value)
|
|
{
|
|
string ret = "False";
|
|
|
|
try
|
|
{
|
|
var m = GetCurrentMember();
|
|
|
|
if (m != null)
|
|
{
|
|
var prop = m.getProperty(alias);
|
|
|
|
if (m.ContentType != null && MemberType.GetByAlias(m.ContentType.Alias).MemberCanEdit(prop.PropertyType))
|
|
{
|
|
|
|
if (prop.PropertyType.ValidationRegExp.Trim() != "")
|
|
{
|
|
Regex regex = new Regex(m.getProperty(alias).PropertyType.ValidationRegExp);
|
|
|
|
if (regex.IsMatch(value.ToString()))
|
|
{
|
|
prop.Value = value;
|
|
ret = "True";
|
|
m.XmlGenerate(new XmlDocument());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
prop.Value = value;
|
|
ret = "True";
|
|
m.XmlGenerate(new XmlDocument());
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
ret = e.Message;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
}
|
|
}
|