Esempio n. 1
0
        //-------------------------------------------
        protected virtual void savePermissions()
        {
            StringBuilder sb = new StringBuilder();

            // 默认使用 SiteRole
            IList roles = GetRoles();
            foreach (IRole role in roles) {
                IList roleActions = GetActionsByRole( role );

                //SecurityString ss = new SecurityString( role.TypeFullName, role.TypeId, roleActions );
                SecurityString ss = new SecurityString( role.Role.GetType().FullName, role.Role.Id, roleActions );

                sb.Append( ss.ToString() );
                sb.Append( SecurityString.roleSeperator );
            }

            _securityString = sb.ToString();
            if (strUtil.HasText( _securityString )) _securityString = _securityString.TrimEnd( SecurityString.roleSeperator );
            _objSecurity.Security = _securityString;

            _objSecurity.update();
        }
Esempio n. 2
0
        public virtual IDictionary GetRoleActionsAll()
        {
            if (_roleActionsAll != null) return _roleActionsAll;
            if (strUtil.IsNullOrEmpty( _securityString )) return new Hashtable();

            _roleActionsAll = new Hashtable();
            IList actions = GetActionAll();
            string[] arrRolePermission = _securityString.Split( SecurityString.roleSeperator );

            if (arrRolePermission.Length > 0) {
                for (int i = 0; i < arrRolePermission.Length; i++) {

                    if (strUtil.IsNullOrEmpty( arrRolePermission[i] )) continue;

                    SecurityString ss = new SecurityString( arrRolePermission[i] );
                    if (ss.IsError()) continue;

                    _roleActionsAll.Add( ss.GetKey(), ss.GetActions( actions ) );

                }
            }

            return _roleActionsAll;
        }