コード例 #1
0
        /// <summary>
        /// Cria um objeto <see cref="IExtendedPrincipal"/>, com base no <see cref="ISimpleAppUser"/>
        /// passado. Dificilmente será necessário sobrecrever esse método.
        /// </summary>
        protected virtual IExtendedPrincipal CriaIPrincipal(ISimpleAppUser user, bool autenticado)
        {
            if (user == null)
            {
                return(null);
            }

            var bld = new UserBuilder(user.Id, autenticado, user.Name)
            {
                Login = user.Login
            };

            if (user.Roles != null)
            {
                foreach (IAppRole role in user.Roles)
#pragma warning disable 618,612
                {
                    foreach (IAppPermission p in role.Permissions)
                    {
                        bld.AddPermission(role.Name, Permission.SetPermission(p.Id, p.Name));
                    }
                }
#pragma warning restore 618,612
            }

            IExtendedPrincipal u = bld.Build();
            if (user.Roles != null)
            {
                foreach (IAppRole role in user.Roles)
                {
#pragma warning disable 618,612
                    if (role != null && role.Profile != null)
                    {
                        u.Properties["skin"] = role.Profile.Skin;
                        u.Properties["home"] = role.Profile.Home;
                    }
#pragma warning restore 618,612
                }
            }
            return(u);
        }