RemUserCreateACL Method |
Namespace: Paperwork.Connect
public a_GenericResult CreateACL( a_ACLInfo ud )
public void CreateAcl()
{
a_ACLInfo acl = new a_ACLInfo();
acl.ACLName = new ObjectName("Test Acl");
acl.Description = "Test için oluşturuldu";
acl.IsInternal = 0;
acl.IsPublic = 1;
acl.Owner = string.Empty; //acli yaratan kullanıcının giriş adı verilecek
acl.Members = new List<a_ACLMemberInfo>();
//nesneyi yaratan kullanıcının nesne üzerindeki hakları
a_ACLMemberInfo pw_owner = new a_ACLMemberInfo()
{
Name = new ObjectName(Definitions.PW_OWNER),
DisplayName = Definitions.PW_OWNER,
MemberType = MemberTYPES.ROLE,
ObjectId = new ObjectID("0000000000000001"),
BasicPerm = 0, // hak verilmiyor
ExtPerm = 0 // hak verilmiyor
};
acl.Members.Add(pw_owner);
//yetki seti dışında kalan kullanıcıların nesne üzerindeki hakları
a_ACLMemberInfo pw_word = new a_ACLMemberInfo()
{
Name = new ObjectName(Definitions.PW_WORLD),
DisplayName = Definitions.PW_WORLD,
MemberType = MemberTYPES.ROLE,
ObjectId = new ObjectID("0000000000000002"),
BasicPerm = 15,
ExtPerm = 280856484642816
};
acl.Members.Add(pw_word);
//bilet kullanıcının nesne üzerindeki hakları
a_ACLMemberInfo pw_ticket = new a_ACLMemberInfo()
{
Name = new ObjectName(Definitions.PW_TICKET_USER),
DisplayName = Definitions.PW_TICKET_USER,
MemberType = MemberTYPES.ROLE,
ObjectId = new ObjectID("0000000000000003"),
BasicPerm = 0, // hak verilmiyor
ExtPerm = 0 // hak verilmiyor
};
acl.Members.Add(pw_ticket);
//yetki setine kullanıcı eklemek için;
a_UserInfo user = p.rUser.LoadUser(new ObjectName("test"));
a_ACLMemberInfo m_user = new a_ACLMemberInfo()
{
Name = user.UserLogin,
DisplayName = user.UserName,
MemberType = MemberTYPES.USER,
ObjectId = user.ObjectId,
BasicPerm = 15,
ExtPerm = 280856484642816
};
acl.Members.Add(m_user);
//yetki setine grup eklemek için;
ObjectID group_id = getGroupID("Test group");
a_GroupInfo group = p.rUser.LoadGroup(group_id);
a_ACLMemberInfo m_group = new a_ACLMemberInfo()
{
Name = group.GroupName,
DisplayName = string.Empty,
MemberType = MemberTYPES.GROUP,
ObjectId = group.ObjectId,
BasicPerm = 15,
ExtPerm = 280856484642816
};
acl.Members.Add(m_group);
//yetki seti içindeki kullanıcının temel yetkileri değiştirilmek isteniyor ise aşağıdaki gibi yapılabilir
pw_word.setPerms(ACLRights.READ, ACLRights.WRITE);
//yetki seti içindeki kullanıcıya tüm haklar verilmek isteniyorsa aşağıdaki gibi yapılabilir
pw_owner.BasicPerm = 15;
pw_owner.ExtPerm = 280856484642816;
a_GenericResult retval = p.rUser.CreateACL(acl);
if (retval.ErrorCode != 0)
throw new Exception(retval.Message);
else
{
string acl_id = retval.Result;
Console.Write("Yetki seti nesne numarası :{0}", acl_id);
}
}
private ObjectID getGroupID(string group_name)
{
a_GroupList grps = p.rUser.GetGroups(group_name, false, 0);
if (grps.Items.Count == 0)
throw new Exception("Grup bulunamadı");
else if (grps.Items.Count == 1)
return grps.Items[0].ObjectId;
else
{
foreach (a_GroupInfo grp in grps.Items)
if (grp.GroupName.Value.Equals(group_name))
return grp.ObjectId;
throw new Exception("Grup bulunamadı!");
}
}