public AbstractPermission addSecurityKey(string duz, AbstractPermission p)
{
// No empty args
if (p == null || String.IsNullOrEmpty(p.Name) || String.IsNullOrEmpty(duz))
{
throw new ArgumentNullException("Missing arguments");
}
// No bogus security keys
p.PermissionId = getSecurityKeyIen(p.Name);
if (!StringUtils.isNumeric(p.PermissionId))
{
throw new ArgumentException("No such security key");
}
// No bogus users
if (!isUser(duz))
{
throw new ArgumentException("No such user");
}
// Make sure user does not already have this key
if (hasSecurityKey(duz, p))
{
throw new ArgumentException("User already has key");
}
p.RecordId = addSecurityKeyByName(p.Name, duz);
return p;
}