Exemple #1
0
 public void CastPermissions(IList <PermissionBE> permissions, IList <PermissionViewModel> permissionViewModels)
 {
     foreach (var per in permissions)
     {
         if (typeof(PermissionsGroupBE) == per.GetType())
         {
             PermissionsGroupBE pg = (PermissionsGroupBE)per;
             //var pergrvm = Mapper.Map<PermissionsGroupBE, PermissionsGroupViewModel>(pg);
             PermissionsGroupViewModel pergrvm = new PermissionsGroupViewModel()
             {
                 Id   = pg.Id,
                 Name = pg.Name
             };
             permissionViewModels.Add(pergrvm);
             //permissionViewModels.Remove(permissionViewModels.Where(p=>p.Id == pergrvm.Id).FirstOrDefault());
             CastPermissions(pg.Permissions, pergrvm.Permissions);
         }
         else if (typeof(PermissionBE) == per.GetType())
         {
             PermissionBE        p     = (PermissionBE)per;
             PermissionViewModel pervm = new PermissionViewModel()
             {
                 Id   = p.Id,
                 Name = p.Name
             };
             permissionViewModels.Add(pervm);
         }
     }
 }
Exemple #2
0
 private static void AddChildren(List <PermissionBE> permissions, DataSet ds, PermissionsGroupBE node)
 {
     try
     {
         foreach (var per in permissions)
         {
             List <PermissionBE> list = new List <PermissionBE>();
             foreach (DataRow dr in ds.Tables[0].Rows)
             {
                 if (node.Id.ToString() == dr["ParentID"].ToString())
                 {
                     if (dr["PermissionID"].ToString() == per.Id.ToString())
                     {
                         if (!node.Permissions.Any(p => p == per))
                         {
                             node.Permissions.Add(per);
                         }
                         foreach (var child in node.Permissions)
                         {
                             if (typeof(PermissionsGroupBE) == child.GetType())
                             {
                                 AddChildren(permissions, ds, (PermissionsGroupBE)child);
                             }
                         }
                         break;
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception(Messages.Generic_Error);
     }
 }
Exemple #3
0
        private bool VerifyLoginPermission(IList <PermissionBE> permissions)
        {
            bool result = false;

            foreach (var per in permissions)
            {
                if (typeof(PermissionBE) == per.GetType())
                {
                    if (per.Check("Login"))
                    {
                        result = true;
                    }
                }
                else
                {
                    PermissionsGroupBE pg = (PermissionsGroupBE)per;

                    result = VerifyLoginPermission(pg.Permissions);
                }
                if (result)
                {
                    break;
                }
            }

            return(result);
        }
 public ClaimsIdentity ListPermissions(IList <PermissionBE> permissions, ClaimsIdentity identity)
 {
     foreach (PermissionBE per in permissions)
     {
         if (per is PermissionsGroupBE)
         {
             PermissionsGroupBE pergr = per as PermissionsGroupBE;
             ListPermissions(pergr.Permissions, identity);
         }
         else
         {
             identity.AddClaim(new Claim(ClaimTypes.Role, per.Name));
         }
     }
     return(identity);
 }
Exemple #5
0
        private IList <PermissionBE> ReturnPermissionsTree(DataSet dataSet)
        {
            List <PermissionBE> permissions = new List <PermissionBE>();
            List <PermissionBE> roots       = new List <PermissionBE>();

            foreach (DataRow dr in dataSet.Tables[0].Rows)
            {
                Guid         parent = dr["ParentID"].ToString() == string.Empty ? Guid.Empty : Guid.Parse(dr["ParentID"].ToString());
                PermissionBE permission;
                bool         exists = false;

                foreach (PermissionBE per in permissions)
                {
                    if (per.Id == Guid.Parse(dr["PermissionID"].ToString()))
                    {
                        exists = true;
                    }
                }
                if (!exists)
                {
                    if (Convert.ToBoolean(dr["IsGroup"]))
                    {
                        permission = new PermissionsGroupBE()
                        {
                            Id   = Guid.Parse(dr["PermissionID"].ToString()),
                            Name = dr["Name"].ToString()
                        };
                    }
                    else
                    {
                        permission = new PermissionBE()
                        {
                            Id   = Guid.Parse(dr["PermissionID"].ToString()),
                            Name = dr["Name"].ToString()
                        };
                    }

                    if (parent == Guid.Empty)
                    {
                        roots.Add(permission);
                    }
                    else
                    {
                        permissions.Add(permission);
                    }
                }
            }

            if (roots.ToList().Count > 0)
            {
                foreach (var root in roots)
                {
                    if (typeof(PermissionsGroupBE) == root.GetType())
                    {
                        AddChildren(permissions, dataSet, (PermissionsGroupBE)root);
                    }
                }
            }

            return(roots);
        }