From 897a774e77df39bc63a2af702116d35a5ac1dd90 Mon Sep 17 00:00:00 2001 From: Harald Wolff Date: Mon, 18 Nov 2019 08:56:11 +0100 Subject: [PATCH] WIP --- Identity.cs | 3 ++- Role.cs | 18 ++++++++++++++++-- RoleAssignment.cs | 5 ++++- Roles.cs | 20 ++++++++++++++++++++ 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 Roles.cs diff --git a/Identity.cs b/Identity.cs index 5bb659f..7bab4d7 100644 --- a/Identity.cs +++ b/Identity.cs @@ -54,7 +54,8 @@ namespace ln.identities public void AddSecureAttribute(SecureAttribute secureAttribute) => secureAttributes.Add(secureAttribute); public void RemoveSecureAttribute(SecureAttribute secureAttribute) => secureAttributes.Remove(secureAttribute); - + public override bool Equals(object obj) => (obj is Identity other) && other.UniqueID.Equals(UniqueID); + public override int GetHashCode() => UniqueID.GetHashCode(); } } diff --git a/Role.cs b/Role.cs index f237e04..8be466a 100644 --- a/Role.cs +++ b/Role.cs @@ -3,11 +3,25 @@ namespace ln.identities { public class Role { - public String Name { get; } + public static readonly Role SuperUser = new Role(Guid.Parse("{eefca5e2-2295-44d5-9b24-000000000000}"),"SuperUser"); + public static readonly Role Owner = new Role(Guid.Parse("{eefca5e2-2295-44d5-9b24-000000000001}"), "Owner"); + public static readonly Role Editor = new Role(Guid.Parse("{eefca5e2-2295-44d5-9b24-000000000002}"), "Editor"); + public Guid UniqueID { get; } + public String Name { get; set; } - public Role() + private Role() + {} + + public Role(string roleName):this(Guid.NewGuid(),roleName){} + public Role(Guid uniqueID,string roleName) { + UniqueID = uniqueID; + Name = roleName; } + + public override bool Equals(object obj) => (obj is Role other) && other.UniqueID.Equals(UniqueID); + public override int GetHashCode() => UniqueID.GetHashCode(); + } } diff --git a/RoleAssignment.cs b/RoleAssignment.cs index 4e8ee1c..ed70884 100644 --- a/RoleAssignment.cs +++ b/RoleAssignment.cs @@ -3,7 +3,10 @@ namespace ln.identities { public class RoleAssignment { - public RoleAssignment() + public Identity EffectiveIdentity { get; } + public Role Role { get; } + + private RoleAssignment() { } } diff --git a/Roles.cs b/Roles.cs new file mode 100644 index 0000000..83578d3 --- /dev/null +++ b/Roles.cs @@ -0,0 +1,20 @@ +// /** +// * File: Roles.cs +// * Author: haraldwolff +// * +// * This file and it's content is copyrighted by the Author and / or copyright holder. +// * Any use wihtout proper permission is illegal and may lead to legal actions. +// * +// * +// **/ +using System; +namespace ln.identities +{ + public class Roles : int + { + SUPERUSER = -1, + READ = (1<<0), + WRITE = (1<<1) + OWNER, + } +}