/// <summary> /// Grant roles to access specific action /// </summary> /// <param name="action"> Enum (ex: Get,Put,Delete) </param> /// <param name="roles"> string of one or more role seperated by ',' as string </param> private void SetActionRoles(Actions action, string roles) { if (AuthorizRole == null) { AuthorizRole = new GenericAuthorizRoles <T>(); } if (AuthorizRole.ActionRoles == null) { AuthorizRole.ActionRoles = new List <GenericActionRoles>(); } var actionRoles = AuthorizRole.ActionRoles.Find(x => x.Action == action); if (actionRoles == null) { actionRoles = new GenericActionRoles() { Action = action, Roles = roles }; AuthorizRole.ActionRoles.Add(actionRoles); } else { actionRoles.Roles = roles; } }
/// <summary> /// Add constrain in roles when request action /// </summary> /// <param name="action"> Enum of actions</param> /// <param name="roles"> string of one or more role seperated by ',' </param> /// <param name="ConstrainsExpression"></param> public void AddActionDataConstrains(Actions action, string roles, Expression <Func <T, bool> > ConstrainsExpression) { if (AuthorizRole == null) { AuthorizRole = new GenericAuthorizRoles <T>(); } if (AuthorizRole.DataAccess == null) { AuthorizRole.DataAccess = new List <GenericDataAccess <T> >(); } GenericDataAccess <T> dataAccessRole = new GenericDataAccess <T>() { Action = action, Roles = roles, ExpressionFunc = ConstrainsExpression }; AuthorizRole.DataAccess.Add(dataAccessRole); }