From 52f77ac06b03acfcef269bf302bacfed2a88b51e Mon Sep 17 00:00:00 2001 From: MaksimChegulov Date: Tue, 6 Dec 2022 01:48:02 +0300 Subject: [PATCH] Common: added interface IRuleData --- .../Security/Authorizing/Domain/Role.cs | 5 +-- .../Security/Authorizing/Interfaces/IRole.cs | 2 +- common/ASC.Common/Security/RuleData.cs | 32 +++++++++++++++++++ common/ASC.Core.Common/Core/GroupInfo.cs | 1 + 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 common/ASC.Common/Security/RuleData.cs diff --git a/common/ASC.Common/Security/Authorizing/Domain/Role.cs b/common/ASC.Common/Security/Authorizing/Domain/Role.cs index 197acb8ccf..59976ac8bc 100644 --- a/common/ASC.Common/Security/Authorizing/Domain/Role.cs +++ b/common/ASC.Common/Security/Authorizing/Domain/Role.cs @@ -38,8 +38,9 @@ public sealed class Role : IRole public Guid ID { get; internal set; } public string Name { get; internal set; } public string AuthenticationType => "ASC"; - public bool IsAuthenticated => false; - + public bool IsAuthenticated => false; + + public string Key => ID.ToString(); public Role(Guid id, string name) { diff --git a/common/ASC.Common/Security/Authorizing/Interfaces/IRole.cs b/common/ASC.Common/Security/Authorizing/Interfaces/IRole.cs index ab8e135310..d596a3593d 100644 --- a/common/ASC.Common/Security/Authorizing/Interfaces/IRole.cs +++ b/common/ASC.Common/Security/Authorizing/Interfaces/IRole.cs @@ -26,4 +26,4 @@ namespace ASC.Common.Security.Authorizing; -public interface IRole : ISubject { } +public interface IRole : ISubject, IRuleData { } diff --git a/common/ASC.Common/Security/RuleData.cs b/common/ASC.Common/Security/RuleData.cs new file mode 100644 index 0000000000..7814095b94 --- /dev/null +++ b/common/ASC.Common/Security/RuleData.cs @@ -0,0 +1,32 @@ +// (c) Copyright Ascensio System SIA 2010-2022 +// +// This program is a free software product. +// You can redistribute it and/or modify it under the terms +// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software +// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended +// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of +// any third-party rights. +// +// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty +// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see +// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html +// +// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021. +// +// The interactive user interfaces in modified source and object code versions of the Program must +// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3. +// +// Pursuant to Section 7(b) of the License you must retain the original Product logo when +// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under +// trademark law for use of our trademarks. +// +// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing +// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 +// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode + +namespace ASC.Common.Security; + +public interface IRuleData +{ + public string Key { get; } +} diff --git a/common/ASC.Core.Common/Core/GroupInfo.cs b/common/ASC.Core.Common/Core/GroupInfo.cs index 46680b9cb6..84f2f294ba 100644 --- a/common/ASC.Core.Common/Core/GroupInfo.cs +++ b/common/ASC.Core.Common/Core/GroupInfo.cs @@ -71,4 +71,5 @@ public class GroupInfo : IRole, IRecipientsGroup string IRecipient.Name => Name; public string AuthenticationType => "ASC"; public bool IsAuthenticated => false; + public string Key => ID.ToString(); }