public async Task <bool> RevokeBySubjectAndKindAsync(PermissionKind permissionKind, string subjectId) { _dbContext.Permissions.RemoveRange(_dbContext.Permissions .Where(d => d.PermissionType == permissionKind && d.SubjectId == subjectId)); return(await _dbContext.SaveChangesAsync() > 0); }
public bool Has(PermissionKind perm) { if (perm == PermissionKind.EmptyMask) { return(true); } if (perm == PermissionKind.FullMask) { return((this.m_high & 32767u) == 32767u && this.m_low == 65535u); } int num = perm - PermissionKind.ViewListItems; uint num2 = 1u; if (num >= 0 && num < 32) { num2 <<= num; return(0u != (this.m_low & num2)); } if (num >= 32 && num < 64) { num2 <<= num - 32; return(0u != (this.m_high & num2)); } return(false); }
/// <summary> /// Initializes a new instance of the <see cref="Permission"/> class. /// Public constructor with required data. /// </summary> /// <param name="kind">The permission kind.</param> /// <param name="value">The value of this permission.</param> public Permission(PermissionKind kind, bool value) { Kind = kind; Value = value; Init(); }
public void Set(PermissionKind perm) { if (perm == PermissionKind.FullMask) { this.m_low = 65535u; this.m_high = 32767u; return; } if (perm == PermissionKind.EmptyMask) { this.m_low = 0u; this.m_high = 0u; return; } int num = perm - PermissionKind.ViewListItems; uint num2 = 1u; if (num >= 0 && num < 32) { num2 <<= num; this.m_low |= num2; return; } if (num >= 32 && num < 64) { num2 <<= num - 32; this.m_high |= num2; } }
/// <summary> /// Sets the given permission kind to the provided value. /// </summary> /// <param name="kind">The permission kind.</param> /// <param name="value">The value to set.</param> public void SetPermission(PermissionKind kind, bool value) { var currentPermission = Permissions.FirstOrDefault(p => p.Kind == kind); if (currentPermission == null) { Permissions.Add(new Permission(kind, value)); } else { currentPermission.Value = value; } }
public static bool HasPermission <TEntity>(this IQueryable <TEntity> source, PermissionKind permission) where TEntity : class, IListItemEntity, new() { Check.NotNull(source, nameof(source)); if (source is SpEntityQueryable <TEntity, ISpEntryDataContext> ) { var executor = (source as SpEntityQueryable <TEntity, ISpEntryDataContext>).GetExecutor(); if (executor != null) { var list = executor.GetList(true); if (list != null) { return(list.EffectiveBasePermissions.Has(permission)); } } } return(false); }
public void Clear(PermissionKind perm) { int num = perm - PermissionKind.ViewListItems; uint num2 = 1u; if (num >= 0 && num < 32) { num2 <<= num; num2 = ~num2; this.m_low &= num2; return; } if (num >= 32 && num < 64) { num2 <<= num - 32; num2 = ~num2; this.m_high &= num2; } }
/// <summary> /// Sets the given permission kind to the provided value. /// </summary> /// <param name="kind">The permission kind.</param> /// <param name="value">The value to set.</param> public void SetPermission(PermissionKind kind, bool value) { Permissions.First(p => p.Kind == kind).Value = value; }
/// <summary> /// Checks whether the user has the specified permission. /// </summary> /// <param name="kind">The permission kind.</param> /// <returns><c>True</c> if the user has the specified permission.</returns> public bool HasPermission(PermissionKind kind) { return(Permissions.First(p => p.Kind == kind).Value); }
public async Task <List <Permission> > GetByKindAsync(PermissionKind permissionKind) { return(await _dbContext.Permissions.Where(d => d.PermissionType == permissionKind) .AsNoTracking() .ToListAsync()); }
/// <summary> /// Determines whether user has a particular permission on the list /// </summary> /// <param name="clientContext">Client context</param> /// <param name="listName">List name</param> /// <param name="permission">Permission to be checked</param> /// <returns>Success flag</returns> public static bool CheckPermissionOnList(ClientContext clientContext, string listName, PermissionKind permission) { bool returnValue = false; if (null != clientContext && !string.IsNullOrWhiteSpace(listName)) { ListCollection listCollection = clientContext.Web.Lists; clientContext.Load(listCollection, lists => lists.Include(list => list.Title, list => list.EffectiveBasePermissions).Where(list => list.Title == listName)); clientContext.ExecuteQuery(); if (0 < listCollection.Count) { returnValue = listCollection[0].EffectiveBasePermissions.Has(permission); } } return(returnValue); }
/// <summary> /// Determines whether user has a particular permission on the list /// </summary> /// <param name="clientContext">Client context</param> /// <param name="listName">List name</param> /// <param name="permission">Permission to be checked</param> /// <returns>Success flag</returns> public static bool CheckPermissionOnList(ClientContext clientContext, string listName, PermissionKind permission) { bool returnValue = false; if (null != clientContext && !string.IsNullOrWhiteSpace(listName)) { ListCollection listCollection = clientContext.Web.Lists; clientContext.Load(listCollection, lists => lists.Include(list => list.Title, list => list.EffectiveBasePermissions).Where(list => list.Title == listName)); clientContext.ExecuteQuery(); if (0 < listCollection.Count) { returnValue = listCollection[0].EffectiveBasePermissions.Has(permission); } } return returnValue; }
/// <summary> /// Static create function (for use in LINQ queries, etc.) /// </summary> /// <param name="kind">The permission kind.</param> /// <param name="value">The value of this permission.</param> /// <returns>The newly created instance.</returns> public static Permission Create(PermissionKind kind, bool value) { return(new Permission(kind, value)); }
/// <summary> /// Checks whether the user has the specified permission. /// </summary> /// <param name="kind">The permission kind.</param> /// <returns><c>True</c> if the user has the specified permission.</returns> public bool HasPermission(PermissionKind kind) { return(Permissions.FirstOrDefault(p => p.Kind == kind)?.Value ?? false); }
/// <summary> /// Determines whether user has a particular permission on the list /// </summary> /// <param name="clientContext">Client context</param> /// <param name="listName">List name</param> /// <param name="permission">Permission to be checked</param> /// <returns>Success flag</returns> public bool CheckPermissionOnList(ClientContext clientContext, string listName, PermissionKind permission) { try { bool returnValue = false; if (null != clientContext && !string.IsNullOrWhiteSpace(listName)) { ListCollection listCollection = clientContext.Web.Lists; clientContext.Load(listCollection, lists => lists.Include(list => list.Title, list => list.EffectiveBasePermissions).Where(list => list.Title == listName)); clientContext.ExecuteQuery(); if (0 < listCollection.Count) { returnValue = listCollection[0].EffectiveBasePermissions.Has(permission); } } return returnValue; } catch (Exception ex) { customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable); throw; } }
/// <summary> /// Determines whether user has a particular permission on the list /// </summary> /// <param name="clientContext">Client context</param> /// <param name="listName">List name</param> /// <param name="permission">Permission to be checked</param> /// <returns>Success flag</returns> public bool CheckPermissionOnList(Client client, string listName, PermissionKind permission) { try { ClientContext clientContext = spoAuthorization.GetClientContext(client.Url); return CheckPermissionOnList(clientContext, listName, permission); } catch (Exception exception) { customLogger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable); throw; } }