Пример #1
0
        public ScriptUserDefinition GetUserData()
        {
            var result = new ScriptUserDefinition();
            var user   = Authorization.UserDefinition as UserDefinition;

            if (user == null)
            {
                result.Permissions = new Dictionary <string, bool>();
                return(result);
            }

            result.Username    = user.Username;
            result.DisplayName = user.DisplayName;
            result.IsAdmin     = user.Username == "admin";

            result.Permissions = TwoLevelCache.GetLocalStoreOnly("ScriptUserPermissions:" + user.Id, TimeSpan.Zero,
                                                                 UserPermissionRow.Fields.GenerationKey, () =>
            {
                var permissions = new Dictionary <string, bool>(StringComparer.OrdinalIgnoreCase);

                if (permissionsUsedFromScript == null)
                {
                    permissionsUsedFromScript = new UserPermissionRepository().ListPermissionKeys().Entities
                                                .Where(permissionKey =>
                    {
                        // this sends permission information for all permission keys to client side.
                        // if you don't need all of them to be available from script, filter them here.
                        // this is recommended for security / performance reasons...
                        return(true);
                    }).ToArray();
                }

                foreach (var permissionKey in permissionsUsedFromScript)
                {
                    if (Authorization.HasPermission(permissionKey))
                    {
                        permissions[permissionKey] = true;
                    }
                }

                return(permissions);
            });

            return(result);
        }
Пример #2
0
        public ScriptUserDefinition GetUserData()
        {
            var result = new ScriptUserDefinition();
            var user = Authorization.UserDefinition as UserDefinition;

            if (user == null)
            {
                result.Permissions = new Dictionary<string, bool>();
                return result;
            }

            result.Username = user.Username;
            result.DisplayName = user.DisplayName;

            result.Permissions = TwoLevelCache.GetLocalStoreOnly("UserPermissions:" + user.Id, TimeSpan.Zero,
                UserPermissionRow.Fields.GenerationKey, () =>
                {
                    var permissions = new Dictionary<string, bool>(StringComparer.OrdinalIgnoreCase);

                    if (permissionsUsedFromScript == null)
                    {
                        permissionsUsedFromScript = new UserPermissionRepository().ListPermissionKeys().Entities
                            .Where(permissionKey =>
                            {
                                // this sends permission information for all permission keys to client side.
                                // if you don't need all of them to be available from script, filter them here.
                                // this is recommended for security / performance reasons...
                                return true;
                            }).ToArray();
                    }

                    foreach (var permissionKey in permissionsUsedFromScript)
                    {
                        if (Authorization.HasPermission(permissionKey))
                            permissions[permissionKey] = true;
                    }

                    return permissions;
                });

            return result;
        }
Пример #3
0
        public ScriptUserDefinition GetUserData()
        {
            var result = new ScriptUserDefinition();
            var user   = Authorization.UserDefinition as UserDefinition;

            if (user == null)
            {
                result.Permissions = new Dictionary <string, bool>();
                return(result);
            }

            result.Username    = user.Username;
            result.DisplayName = user.DisplayName;
            result.IsAdmin     = user.Username == "admin";
            result.UserRoles   = user.UserRoles;
            result.Ktp         = user.Ktp;
            result.UserRoles   = user.UserRoles;

            //using (var connection = SqlConnections.NewFor<UserRoleRow>())
            //{
            //    UserRoleListRequest request = new UserRoleListRequest();
            //    request.UserID = user.UserId;
            //    List<int> userRoleList = new UserRoleRepository().List(connection, request).Entities;
            //    List<string> arrRole = new List<string>();
            //    foreach (var roleId in userRoleList)
            //    {
            //        RetrieveRequest roleRequest = new RetrieveRequest();
            //        roleRequest.EntityId = roleId;
            //        var roleName = new RoleRepository().GetRoleName(connection, roleId);
            //        arrRole.Add(roleName);
            //    }
            //    user.UserRoles = string.Join(",", arrRole.ToArray());
            //    result.Roles = user.UserRoles;
            //}

            result.Permissions = TwoLevelCache.GetLocalStoreOnly("ScriptUserPermissions:" + user.Id, TimeSpan.Zero,
                                                                 UserPermissionRow.Fields.GenerationKey, () =>
            {
                var permissions = new Dictionary <string, bool>(StringComparer.OrdinalIgnoreCase);

                if (permissionsUsedFromScript == null)
                {
                    permissionsUsedFromScript = new UserPermissionRepository().ListPermissionKeys().Entities
                                                .Where(permissionKey =>
                    {
                        // this sends permission information for all permission keys to client side.
                        // if you don't need all of them to be available from script, filter them here.
                        // this is recommended for security / performance reasons...
                        return(true);
                    }).ToArray();
                }

                foreach (var permissionKey in permissionsUsedFromScript)
                {
                    if (Authorization.HasPermission(permissionKey))
                    {
                        permissions[permissionKey] = true;
                    }
                }

                return(permissions);
            });

            return(result);
        }