Exemplo n.º 1
0
        public override void CreateRole(string roleName)
        {
            SecUtility.CheckParameter(ref roleName, true, true, true, 256, "roleName");
            try
            {
                using (var session = new MongoSession(_connectionString))
                {
                    var roles = from r in session.Roles
                                where r.RoleName == roleName
                                select r;

                    if (roles.Any())
                    {
                        throw new ProviderException(StringResources.GetString(StringResources.Provider_role_already_exists, roleName));
                    }


                    var role = new MembershipRole
                    {
                        RoleName        = roleName,
                        LoweredRoleName = roleName.ToLowerInvariant()
                    };

                    session.Add(role);
                }
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public static void InitializeRoles(Type r, string connectionString)
        {
            var session = new MongoSession(connectionString);
            List <MembershipRole>       roles       = new List <MembershipRole>();
            List <MembershipPermission> permissions = session.Permissions.ToList();
            List <string> dbRoles = session.Roles.Select(x => x.RoleName).ToList();

            foreach (FieldInfo field in r.GetFields(BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.Public))
            {
                string value = field.GetRawConstantValue().ToString();
                if (!dbRoles.Contains(value))
                {
                    MembershipRole role = new MembershipRole {
                        RoleName = value
                    };

                    if (value == DefaultRoles.Admin)
                    {
                        foreach (var p in permissions)
                        {
                            role.Permissions.Add(p.Name);
                        }
                    }

                    session.Save(role);
                }
            }
        }
Exemplo n.º 3
0
        public override void CreateRole(string roleName)
        {
            SecUtility.CheckParameter(ref roleName, true, true, true, 256, "roleName");
            try
            {
                var roles = from r in _session.Roles
                            where r.RoleName == roleName
                            select r;

                if (roles.Any())
                {
                    throw new ProviderException(StringResources.GetString(StringResources.Provider_role_already_exists, roleName));
                }

                var role = new MembershipRole
                               {
                                   RoleName = roleName,
                                   LoweredRoleName = roleName.ToLowerInvariant()
                               };

                _session.Add(role);

            }
            catch
            {
                throw;
            }
        }
        private static void ProcessActionPermissionsToRole(List<MembershipPermission> permissions, MembershipRole role, List<MembershipAccount> usersInRole, Func<List<string>, string, List<string>> processOpUnderPermissions)
        {
            foreach (var perm in permissions)
            {
                if (perm != null)
                {
                    if (!role.Permissions.Contains(perm.Name))
                    {
                        processOpUnderPermissions(role.Permissions, perm.Name);

                        foreach (var user in usersInRole)
                        {
                            var roleToChange = user.Roles.FirstOrDefault(x => x.RoleName == role.RoleName);
                            processOpUnderPermissions(roleToChange.Permissions, perm.Name);
                        }
                    }
                }
            }
            _session.Save(role);
            foreach (var user in usersInRole)
            {
                _session.Save(user);
            }
        }
Exemplo n.º 5
0
        public static void InitializeRoles(Type r, string connectionString)
        {
            var session = new MongoSession(connectionString);
            List<MembershipRole> roles = new List<MembershipRole>();
            List<MembershipPermission> permissions = session.Permissions.ToList();
            List<string> dbRoles = session.Roles.Select(x => x.RoleName).ToList();

            foreach (FieldInfo field in r.GetFields(BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.Public))
            {
                string value = field.GetRawConstantValue().ToString();
                if (!dbRoles.Contains(value))
                {
                    MembershipRole role = new MembershipRole { RoleName = value };

                    if (value == DefaultRoles.Admin)
                    {
                        foreach (var p in permissions)
                        {
                            role.Permissions.Add(p.Name);
                        }
                    }

                    session.Save(role);
                }

            }
        }
Exemplo n.º 6
0
        private static void ProcessActionPermissionsToRole(List <MembershipPermission> permissions, MembershipRole role, List <MembershipAccount> usersInRole, Func <List <string>, string, List <string> > processOpUnderPermissions)
        {
            foreach (var perm in permissions)
            {
                if (perm != null)
                {
                    if (!role.Permissions.Contains(perm.Name))
                    {
                        processOpUnderPermissions(role.Permissions, perm.Name);

                        foreach (var user in usersInRole)
                        {
                            var roleToChange = user.Roles.FirstOrDefault(x => x.RoleName == role.RoleName);
                            processOpUnderPermissions(roleToChange.Permissions, perm.Name);
                        }
                    }
                }
            }
            _session.Save(role);
            foreach (var user in usersInRole)
            {
                _session.Save(user);
            }
        }