예제 #1
0
        public static bool HasOwnUpdatePermission(this Role role, Rbac rbac, IUtilizer utilizer)
        {
            if (rbac.Action.Slug != Rbac.GetSegment(Rbac.CrudActions.Update).Slug)
            {
                return(false);
            }

            if (rbac.Resource == "users" && utilizer.UtilizerType == Utilizer.UtilizerType.User)
            {
                if (rbac.Object == utilizer.Id)
                {
                    return(true);
                }
            }

            if (rbac.Resource == "applications" && utilizer.UtilizerType == Utilizer.UtilizerType.Application)
            {
                if (rbac.Object == utilizer.Id)
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="action"></param>
 public RbacActionAttribute(Rbac.CrudActions action)
 {
     this.ActionSegment = Rbac.GetSegment(action);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="action"></param>
 public RbacActionAttribute(Rbac.CrudActions action) : base(Rbac.GetSegment(action))
 {
 }